すべてのプロジェクトを成功させる“銀の弾丸”となる開発プロセスはない。一気呵成のウォーターフォール開発と繰り返し型のアジャイル開発を使い分けることで多様なプロジェクトを成功に導ける。ここではアジャイル開発が適する四つのケースを解説する。

坂本 直紀(さかもと なおき)
ウルシステムズ シニアコンサルタント
東京工業大学大学院理工学研究科卒。外資系システムインテグレータを経て2005年より現職。各種開発プロセスに精通したITコンサルタントとして、発注者・受注者双方に対してプロジェクトマネジメントの支援を提供している。
図1●情報システム部門やプロジェクトの特性に応じて、アジャイル開発とウォーターフォール開発を使い分ける
図1●情報システム部門やプロジェクトの特性に応じて、アジャイル開発とウォーターフォール開発を使い分ける
アジャイル開発は短期間の開発を繰り返すため要件を徐々に固めたり仕様変更が多い開発に向く。一方のウォーターフォール開発は要件を最初に確定させて、それに沿って開発を一気に進める
[画像のクリックで拡大表示]

 今回は、情報システム部門や開発プロジェクトの特性に応じてウォーターフォール開発とアジャイル開発を適材適所で使い分けられるように、そのポイントを解説する(図1)。

 情報処理推進機構がITベンダーに対して調査したところ、国内のシステム開発の実に95%以上がウォーターフォール型で開発を進めているという。おそらくユーザー企業の側でも採用の比率は同様だろう。

 しかし、すべてのプロジェクトにウォーターフォール開発が適しているわけではない。システム開発は一つひとつに特性があり、特性が違えば開発の進め方も変わってくるためだ。

 全プロジェクトに適用できる“銀の弾丸”となる開発プロセスは存在しないため、特性に合わせて複数の開発プロセスを使い分けることが欠かせない。ここで筆者が勧めたいのは、ウォーターフォール開発とアジャイル開発を使い分けることである。

 この二つに絞るのは開発プロセスの性格が全く異なるためだ。ウォーターフォール型は最初に要件と計画を決めてそれに従って開発を進める。後戻りすることなく一気に大規模なシステムを開発できる。

 一方のアジャイル型は「アジャイル:俊敏な」という言葉が示す通り、要件の変化を俊敏に受け入れる。開発チームと利用部門は密にコミュニケーションを取りながら開発とリリースを繰り返してシステムを完成させる。自社の標準プロセスをこの二つの開発プロセスに絞れば、開発プロセスの学習コストを最小限に抑えつつ、多くのシステム開発プロジェクトをカバーできる。

 プロジェクトに応じてどちらを選ぶかは情報システム部門が決める。開発プロセスの選択は、システムの特性だけではなく、利用部門や経営層、協力会社といった組織の特性から判断することが必要だ。全体を見わたす役割は情報システム部門にしか果たせない。

 慣れているからといってウォーターフォール開発だけを採用するのではなく、注目されているからといってむやみにアジャイル開発を採用するのでもなく、特性に応じて使い分けるスキルを身に付けてほしい。以下ではアジャイル開発が合う場合を四つ解説する。