目次
ウォーターフォールモデルのメリット・デメリット・ユースケース
ウォーターフォールモデルは簡潔に言うと「要件定義」から「リリース」までの工程を順番に進めていく手法です。約4割の日本企業がウォーターフォールモデル型を採用していることからも広く一般的な手法であることがうかがえます。
システムを開発する際は一般的に以下の工程で進みます。
・要件定義
・設計
・実装
・テスト
・リリース
ウォーターフォールモデルを採択するメリットは以下3点です。
・進捗管理がしやすい
・経験者が多く、人員が確保しやすい
・作るものが事前に明確である
進捗管理がしやすく、事前にクライアントと作成物を握れるという意味ではかなりコンサルにとってやりやすい手法とも言えます。
ウォーターフォールモデルのデメリットは以下2点です。
・手戻りが発生すると時間を大幅にロスする
・仕様変更が難しい
ウォーターフォールモデルは一つ一つの工程を漏れなく完了する必要があり、もし漏れがあった場合は手戻りによる大幅な時間ロスが生じます。もちろん納品期限は決まっているため、人員を追加することが理想的ですが、出来ない場合は炎上の可能性もあり注意が必要です。
上記のメリット・デメリットを踏まえ、ウォーターフォールモデルが向いていると言われるケースは以下の通りです。
・大規模なシステム
・要件が変化しないシステム
・品質が重視されるシステム
大規模プロジェクトではリソース管理やコスト管理が課題となりがちです。ウォーターフォールモデルであれば、事前に人員・コストの見通しが立てやすく、見積もりをより正確に行うことも可能です。要件が法律などによって、変化しにくい案件や品質がもっとも重要視される銀行の基幹システムプロジェクトなどもウォーターフォールモデルが向いている案件と言えるでしょう。
アジャイルモデルのメリット・デメリット・ユースケース
伝統的なウォーターフォールモデルとは違った手法で、近年普及しつつあるのが「アジャイルモデル」です。アジャイルモデルはその名の通り、素早い開発を意味しており、「計画→設計→実装→テスト」という開発工程を機能単位の小さなサイクルで繰り返す手法です。
アジャイルモデルは開発サイクルを短くすることが特徴ですが、それによるメリットが以下3点です。
・問題発生の際の手戻りが少ない
・仕様変更に柔軟な対応が可能
・ユーザーの要望を反映しやすい
まずはなんといっても、エラーなどが生じた際に手戻りが少ないというのはアジャイルモデルの大きな魅力です。アジャイル開発では小さな機能単位で計画→テストの工程を行うので、その機能の開発のみが手戻りの範囲となります。
小さな検証サイクルを回せるのが、アジャイル開発の強みですが、もちろんデメリットもあります。代表的なデメリットは以下の通りです。
・全体像の把握が難しく、進捗管理しにくい
・アジャイルに精通している人材が少ない
まず強みの裏返しではありますが、機能を切り出して開発サイクルを回すため、全体像の把握が非常に難しいです。本来コンサルタントであれば、プロジェクトの初めでWBSなどを書き出して進捗管理を行うことになるかと思いますが、アジャイル開発には不向きです。
またアジャイル開発は近年普及しているものの、旧来のウォーターフォール開発などと比べると人材が不足しています。そのため、クライアントからアジャイル開発の要望を受けても在籍しているファームでは対応できないというパターンも少なからずあります。
アジャイル開発が向いているとされるケースは以下のようなものです。
・小規模なシステム
・仕様変更が必要になりそうなシステム
・自社内で使用するシステム
まず小規模なシステムであれば少人数での開発が基本です。アジャイル開発ではコミュニケーションが開発の重要な部分を担うため、少人数で進められるシステム開発に向きます。
ウォーターフォール型とアジャイル型手法の3つの違い
まずは開発のスピード感が違います。もちろんどこまでを「完成」としてみるかによって変わりますが、プロトタイプという意味では圧倒的にアジャイル型開発のスピード感が優れています。プロトタイプとは言え、具体的なプロダクトを見ながらクライアントと話が出来るので、クライアントとしても要件を伝えやすいというのもポイントです。
またエラーや仕様変更への対応がアジャイル型開発ではウォーターフォール型開発に比べて非常に柔軟です。アジャイル型では変更前提でシステムを開発していくので、あとからの仕様変更も全く問題はありません。
一方、ウォーターフォールモデルでは事前に顧客と握った要件で開発を進めていくので、変化に柔軟に対応することは不可能です。もちろん多少の変更を設計・実装フェーズなどに対応することは可能でしょうが、後半のフェーズになると追加要望があっても実装が難しいケースがほとんどです。
最後にスケジュール管理の観点ではウォーターフォールモデルが優れていると言えます。そもそもアジャイルモデルではウォーターフォールモデルで行うような、綿密なスケジュール管理は困難です。この観点においてはウォーターフォールモデルが優れていると言え、コンサルタントとしてもWBSを作成することで安心してプロジェクト参画することができます。
両者それぞれの違いはあくまでアプローチの差からくるものであり、手法の優劣を決めるわけではないですが、向き不向きをしっかり理解しておくことはコンサルタントにとって重要です。
ウォーターフォールモデルの開発事例
実際にウォーターフォールモデルで開発されたシステム事例を紹介します。
ジョブマッチングシステム(株式会社キノバ)
こちらの案件は自治体向けの案件で地域に住む住民と企業のための短期的なマッチングシステムを作成した事例となっています。
自治体ということもあり、それほど大規模な案件ではないですが、ウォーターフォールモデルが採択されています。
(キノバ|開発事例)
データ送受信システム(株式会社イー・シー・エス)
こちらは官公庁向けのプロジェクトでデータの送受信をするシステムです。より詳細には公共のある特有のデータを受信し、リアルタイムに編集・加工し、他の総合システムに送信するシステムで、異常を検知するアラーム機能・メールによる通知機能を備えているようです。
工数が14人月ということなので、こちらもそれほど大規模ではないですが、官公庁向けプロジェクトの質の担保という観点でウォーターフォールモデルが採択されたのではと推察されます。
(イー・シー・エス|導入事例)
アジャイルモデルの開発事例
比較的新しいアジャイルモデルにて開発された事例もいくつか出てきているので、ご紹介します。
カーシェアリングサービス(日本ビジネスシステムズ株式会社)
本田技研工業株式会社が展開する「EveryGo(エブリ・ゴー)」というカーシェアリングサービスの運営システムの開発です。顧客との関係性や機能追加などを考慮にいれて、アジャイルモデルを採択されているようです。機能構成なども掲載されており、コンサルタントからするとイメージが湧きやすいかもしれません。
(JBS|開発事例)
決済サービス(株式会社エヌ・ティ・ティ・データ)
30年以上にわたりNTTデータが提供している決済サービスCAFISの開発事例です。決済システムという緻密さが求められるシステムながらアジャイルモデルを採択している点は非常に興味深い事例です。なぜアジャイルモデル採択に至ったかの詳細な経緯も記載されているため、是非一度目を通してみることをおすすめします。
(NTT DATA|DATA INSIGHT)
旧来のウォーターフォールモデルと近年普及しているアジャイルモデルについて解説しました。両者はあくまでアプローチの違う開発手法であり、どちらが優れているというわけではありません。
コンサルタントが目を向けるべきはそれぞれの特徴を開発にどう生かすかであり、必要とされることは向き不向きを見分ける力です。本記事がベストな開発手法を採択する一助となれば幸いです。
まとめ
今回の記事ではアジャイル開発とウォーターフォール開発について解説しました。コンサルティング案件などを探している方、事例を知りたい方は、ぜひfoRProまでご相談ください。