現代主流の開発手法と呼べるウォーターフォールモデルとアジャイル開発への理解はチームでの開発に携わる上で必須と言えるでしょう。この記事ではそれぞれの開発手法の特徴やメリット及びデメリットについて解説をしていきます。
ウォーターフォールモデルは1970年に提唱された開発手法であり、各開発プロセスの役割を明確にし上流工程から下流工程にかけて水が滝のように流れることをイメージして名付けられたと言われております。
ウォーターフォールモデルにおけるメリットを解説します。
ウォーターフォールモデルでは上流工程から下流工程に向かって順序をしっかり守って作業を進めていくことがルールとなっております。ようするにプロジェクトの開始時点である要件定義段階から開発の全容がイメージすることが出来ます。そのため具体的に各工程(開発プロセス)を計画に落としやすいというメリットがあります。
ウォーターフォールモデルでは要件定義段階で開発の全容を具体的に計画に落とし込む為、各工程(開発プロセス)の必要リソースについて明確にされております。各工程を確実に完了させてから次の工程に進むこのモデルでは現在の進捗や必要な工数がはっきりとしているため進捗・工数管理がしやすいというメリットがあります。
ウォーターフォールモデルにおけるデメリットを解説します。
上流工程から下流工程に向かって順序をしっかり守って作業を行うウォーターフォールモデルでは最後の工程までシステムの確認をすることが出来ません。よってお客様と開発者との間でシステムイメージのズレが生まれてしまう機会は珍しくありません。
各工程を確実に完了させてから次の工程に進むウォーターフォールモデルで何かしらの変更を実施することは、それまでに着手してきた各工程(開発プロセス)を否定する形になりいくつかの前提条件を覆すことになってしまいます。工程を戻すことが発生してしまう場合、開発リソースの追加が余儀なくされるため、当初の想定に無い追加予算や人員調達などが必要とされます。
アジャイル開発とは1990年頃に提唱された開発手法であり、ウォーターフォールモデルと反して短い単位での開発要件を切り取って作業を進めることでリスクを最小限に抑えるという特徴があります。アジャイルというその名には「素早い」や「機敏な」という意味があります。お客様の声を作業過程で取り込みながら行えるその開発手法はリスクも少なく短期間で進められるという利点もあり近年採用する開発チームが増えております。
アジャイル開発におけるメリットを解説します。
アジャイル開発ではリストを最小に抑えることを目的としてプロジェクトを小さい単位で計画し設計、実装、テストを行っているため不具合が生じた際にも工数負担を少ないというメリットがあります。
アジャイル開発ではウォーターフォールモデルの要件定義等の綿密に行う初期計画と比較して小さい単位で計画を行う分初期計画時の負担が少ないというメリットがあります。
アジャイル開発におけるデメリットを解説します。
お客様の声を取り込みながら作業を進めることの出来るアジャイル開発だからこそ変更や修正を容易に行える分、当初予定していた開発の方向性がブレてしまうことは珍しく有りません。
細かい単位(機能ごと)で開発を行うアジャイル開発では開発要件から離れて迷走してしまったり、仕様変更が度々起こることで納期が後ろ倒しになってしまうことも珍しく有りません。予め開発要件の根本を明確化して望みましょう。
ウォーターフォールモデル、アジャイル開発それぞれの特徴とメリット・デメリットをご紹介させて頂きました。どちらの開発手法を扱うかは開発要件(規模や納期)そしてプロジェクトの特性などを踏まえた上で決めることが大切でしょう。また今回ご紹介の主流2つの開発手法いずれか一方に偏った開発手法を採用するのではなく、それぞれの利点を生かしてプロジェクトを創っていくことも良い手段かと思います。