PM

CCPMとアジャイルについて考えてみる 2

ソフトウェア開発において、プロジェクトの終盤になればなるほど、バグ修正のコストは膨大に膨れ上がるというのは一般によく言われることですし、おそらくほとんどのみなさんが実感されていることだと思います。
まさに無限地獄。取っても取っても終わらない。あっちを直せばこっちが壊れる。

そのために、おかしなものを後から直すのではなくて、最初から正しいものを作ることを、みんな考えています。

アジャイルの特徴は、
「何が正しいかは、最初から全部はわからない」
「正しいことは、途中で変わる」

ということを前提にしています。

その条件の中で、「正しいものしか作らない」
逆に言えば、「今正しいかどうかわからないものは作らない」

ライブラリから整備しようとか、とりあえずDB周りを整備しておこうとか、
そんなことはやめて、

「今必要なものを検証可能な状態で作る」ことが原則です。

そのかわり、「正しいことがわかったら、正しいことが変わったら、すぐに対応する。」

そのために、
xUnitを使った単体テストとか、テストファーストとか、テスト駆動開発(TDD)とか、イテレーションとか、コーディング規約とか、誰でもソースコードを触れる原則とか、こまめなビルドとか、
いろんな手法が考えられています。

変化に対応できるように、フットワークを軽くしておく、
無駄なものは作らない、
正しいものしか作らない、作ったらすぐに検証できるようにしておく。

どうせ変更になるんだから、それ前提で計画しておく、という考え方が前提にあります。
その部分が、CCPMと共通しているのではないかと、考えています。