アジャイル開発プロセスでは1つの開発サイクルを小さく(1サイクルの要求を小さく)し、
開発の各サイクルをプロジェクトが完了するまで反復します。
問題を細分化し、段階的に開発を進めていきます。
アジャイルプロセスの中には、XP、アジャイル統一プロセス(RUP)、
SCRUM等のさまざまな方法論があります。
例えばRUPにおいては、ただやみくもにサイクルを実行するのではなく、各サイクルを
「方向付け」「推敲(すいこう)」「作成」「移行」という4つのフェーズに分類し、これらのフェーズを経て
リリースにいたります。各フェーズは1つ以上の反復で構成されます。
このように、短いスパンで成果物をリリースし、その都度評価を行うことにより、
リスクを最小化しようとしたのがRUPのアジャイルプロセスです。
このように書くと、前述の問題をきれいに解決するかに見えるアジャイル開発ですが、
実際に反復型のアプローチを実行していくのは言うほど簡単ではありません。
アジャイルでは以下の要素すべてが成り立たない限り、コミュニケーションコストだけが増大して
プロジェクトは崩壊します。
・メンバー間の意思疎通
・問題の理解
・解決策の提案
つまり、このプロセスはプロダクトオーナーに負担が掛かりやすいと言えます。
開発者を用意してプロセスに乗せるだけで、希望したものができてくるということはありません。
しかし、これは「アジャイルだから」という問題ではなく、アジャイルの本質を理解しないまま
似非(えせ)アジャイルを実践することによる問題です。アジャイルプロセスの理解は、
ウォーターフォールのそれよりもはるかに困難です。 |