アジャイル開発手法の定義
アジャイル開発とは、必要最低限のことをシンプルにムダなく実施して良いソフトウェアを開発することであり、それを実現するための開発手法には様々なものがあります。2001年2月にアジャイル開発の分野で著名な17名の開発方法論者が集まり、彼らが提唱する個々の方法論の重要な部分を「アジャイルソフトウェア開発宣言」としてまとめ、アジャイル開発の価値と原則を定義しました。アジャイル開発の価値は以下のように定義されています。
- プロセスやツールよりも個人や相互作用
- 分かりやすいドキュメントよりも動くソフトウェア
- 契約上の駆け引きよりも顧客とのコラボレーション
- 計画を硬直的に守るよりも変化に対応する
上記の価値をウォーターフォール開発と比較して具体的に表現すると、次のようになります。
ウォーターフォールモデル | アジャイル開発 |
---|---|
開発手法で定義されているドキュメントは必ず作成する | プロジェクトを成功させるために価値が少ないドキュメント作成を極限まで省く |
ユーザーは要求仕様書を確認して要求の承認を行う | ユーザーには文書ではなく動くソフトウェアを使って要求を確認する |
要求仕様書の承認によって確定した要求を変更することは許さない | ユーザーの要求はビジネス環境の変化に応じてプロジェクトの途中で変化するものと考える |
プロジェクト当初に策定した計画を遵守できるように管理を行う | PDCAサイクルを短く回し、プロジェクトの状況にあわせた管理を行う |
それぞれの項目について説明しましょう。
●価値が少ないドキュメント作成を極限まで省く
ウォーターフォール型の開発では各工程の終了は定義されているドキュメント類が完成し承認済みかどうかで判断されます。そのため、プロジェクトのゴール、つまりソフトウェアを完成させるという目的から見て価値の少ないものであっても定義されているものは必ず作成する必要があります。アジャイル開発では形式的なドキュメントよりも、コミュニケーションによりゴールを目指してプロジェクトを運営していくことを大切にします。
●ユーザーには文書ではなく動くソフトウェアを使って要求を確認する
ユーザーは業務の専門家ですが、システムの専門家ではないため、システムの担当者が記述した仕様書をみたところで、自分の要求どおりのシステムになっているのかを判断することは困難です。そのためにシステムがリリースされてから、機能に対して持っていたイメージと異なっていたことが判明し、問題が発生するような場合があります。ドキュメントの数を増やして、記述する情報の数を増やすよりも、動くソフトウェアを見せることによって、ユーザーは要求がどのようにシステムとして実現されるかを知ることができ、評価がしやすくなります。
●ユーザーの要求はビジネス環境の変化に応じて途中で変化する
ユーザーの要求は元を正せばビジネス上のゴールに到達するために必要な業務という観点から発生しているはずです。ビジネス環境の変化スピードが増している現在、システム開発プロジェクトの間に要求が変更されることは特別なことではないでしょう。ウォーターフォール型の開発のようにプロジェクトの初期段階で決定した要件を変更できないとすると、システムリリース時にはすでにビジネス上の価値が乏しいものになっている可能性もあります。
●PDCAサイクルを短く回し、プロジェクトの状況にあわせた管理を行う
ウォーターフォール型の開発ではプロジェクト初期段階で各工程の計画をきっちりと定め、それに対する進捗を管理するという形でプロジェクト管理が行われます。したがって、計画自体が正しくなかった場合でも、進捗管理のためのベースとなっているため計画を遵守することを第一とします。アジャイル開発手法の場合は、短いサイクルの中で要件定義から実装・テストまで行うため、各イテレーションでの反省を生かして計画を再考し、状況にあわせた管理を行うことができます。