ウォーターフォールやアジャイルと言った言葉を聞いたことがあるでしょうか。これらはどちらもシステム開発モデルの名称で、従来のように要件定義から納品までを段階的に進める手法をウォーターフォール、一機能ごとに期間を区切って開発していく手法をアジャイルと呼びます。
とは言え、それだけを聞いてもどのように仕事を進めるのか、イメージするのは難しいですよね。そこで今回は、旅行計画を例に挙げ、それぞれの特徴を解説していきたいと思います。
ウォーターフォールの旅行計画とは
まずは、従来のウォーターフォールでの旅行計画を見てみましょう。
このケースでは、目的地や時間、交通機関など、全てのスケジュールを積み上げていきます。それぞれにどれくらいの時間がかかるかを見積もり、それに合わせて帰りの新幹線のチケットを購入します。
寄り道はできないことはありませんが、スケジュール全体の見直しが必要になるため、極力避けなければなりません。
どうしても寄り道が必要になった場合は、旅行を延長することになったとしても、全ての目的地を巡ることを優先します。
これを開発モデルに当てはめたのが、以下のような特徴です。
① 要件定義や設計、製造などの人月を積み上げる。
② 合計の工数を見積った上で納期を決める。
③ 仕様追加・仕様変更の対応は厳しい。
④ 最悪納期を伸ばしてでも、全ての機能を完成させた上での納品となる。
アジャイルの旅行計画とは
ウォーターフォールと比較すると、アジャイルではキッチリとしたスケジュールは立てません。行きたい場所をリストアップした後、優先順位を決め、期間内に行けるだけ行こう、というのが基本になります。
行き先はフレキシブルに変えることができ、寄り道も可能ですが、旅行日程を伸ばすことはできません。そのため、寄り道が多くなると、最初にリストアップした目的地全てを周ることは出来なくなります。
ウォーターフォールと同じように、こちらも開発モデルに当てはめてみましょう。
① 最初に決めるのは、おおよその要件と開発の優先順位、納期のみ。
② 仕様追加、仕様変更は常に対応できる。
③ 優先順位も状況に応じて変えられる。
④ スケジュール上、全ての機能を完成させることは目的としていない。
それぞれのメリット・デメリットとは
ウォーターフォールとアジャイルについて、大まかにイメージすることが出来たでしょうか。これらの特徴から見られる、それぞれのメリット・デメリットについては、以下のようなことが考えられます。
■ウォーターフォールモデル
〇メリット
・プロジェクトの早い段階で全体像を構築できるため、進捗管理がしやすい。
・全ての機能を搭載する前提で、リリース時の機能の網羅性が高い。
×デメリット
・要件定義や設計など、各工程を遡る前提ではないため、仕様変更に対応しにくい。
・全ての機能を開発し終えるまで、リリースができない。
■アジャイル
〇メリット
・一機能ごとに開発 ⇒ 納品というサイクルを繰り返すため、提供スピードが速い。
・常に優先順位を切り替えられるため、仕様変更がしやすい。
×デメリット
・スケジュールが常に変動するため、進捗管理が難しい。
・納期の段階では全ての機能を提供できるとは限らない
どちらを選ぶかはプロジェクト次第
ここまでの章をご覧いただいたことで分かる通り、それぞれの大きな違いは全体スケジュールと提供スピードについてです。当然、どちらが優れているというわけではなく、プロジェクトの本質に応じて、相応しい開発モデルも変わります。
マネージメントにおいて重要なのは、どちらかのやり方に特化するのではなく、状況に合わせて柔軟に対応できるようにすることです。
どんなプロジェクトも成功に導けるよう、アジャイルについての手法についても、予め学んでおきましょう。