makotan _at_ gmail dot com

開発プロセス

開発プロセスというと即CMMやXPを思い出す人がかなりの割合要ると思うんですけど、実は開発プロセスと呼ばれているモノの中には「モデル」と「プロセス(実装)」の二つに分かれているんです。たとえば、ウォータフォールモデルと一言に言っても各メーカ毎に違うプロセスがありましたよね。(それを標準プロセスと呼んでたと思いますが)その結果、工程の名称を聞くだけでどこの会社かおおよその想像が出来るとか・・・
この「モデル」と「プロセス」の関係はほぼClassとObjectの関係みたいなもので、モデルの実装の方法としてプロセスがあり、プロセスの実現方法や支援技術としてプラクティスがあるんです。
この関係を理解する事がまずはとっても重要。
で、普通に開発しているところにプロセスがないのかというと、確実に開発プロセスがあります。それは非公式なものだろうが組織に伝わるものだろうがソフトウェア開発をしている限りは必ず存在してます。
で、そこに新たなプラクティスを持ち込むとどうなるか・・・有名なところでISO9000が実はある種のプラクティスを持ち込んだ例だったんですが、実際にはコスト増にしかなってない(orコスト増にしかならなかった)って風になるんです
これは組織として開発プロセスを変えずにプラクティスを持ち込んだ例として個人的には見てます。
開発プロセスを変えようとする(新たなプラクティスを持ち込もうとする)には

  • ラクティスを持ち込んだ後の作業イメージを作る
  • その効果と影響を説明する
  • あとは定着するまで徹底的にサポートする

こんな感じです。前のやり方を変えようとしない組織にいればいるほど失敗の可能性がどんどんあがります。そんなときはその会社辞めちゃえ!(笑)