アジャイル開発手法について
ウォーターフォール
従来のソフトウェア開発手法には次のことが必要です。
- 問題の特定。
- 要件の分析。
- 必要なコードのビルドとテスト。
- ユーザーへのデリバリー成果。
通常、すべてがウォーターフォール アプローチと呼ばれます。
ウォーターフォール モデルは順序に従います。 プロジェクト開発チームは、前の手順が正常に完了した場合にのみ、次の開発フェーズまたはテストに進みます。
これは、橋や建物を建築するときにエンジニアが行うことです。 そのため、ソフトウェア プロジェクトにも適しているように思われるかもしれません。
しかし、ウォーターフォール手法にはいくつかの欠点があります。 1 つは顧客の要件に関連しています。
たとえば、顧客の要件がプロジェクトの開始時に正確に定義されているかどうかは重要ではありません。
通常、プロジェクトには長い時間がかかり、成果は顧客のニーズと一致しなくなることがあります。
最初に顧客の要件を収集することに真の問題があります。
提供するのに長い時間がかかると、顧客に依頼されたとおりのものをビルドした場合でも、顧客が必要とするものとは異なるものになることがあります。
顧客は、見るまでは何が必要なのかわかっていなかったり、必要なものを説明できなかったりすることがよくあります。
アジャイル
これに対して、アジャイル方法論では、継続的な改善による適応型の計画と早期のデリバリーが常に重視されています。
開発を厳密な仕様に制限するのではなく、変更が発生したときに迅速かつ柔軟に対応することを促進します。
2001 年に、高く評価されている開発者のグループが、アジャイル ソフトウェア開発宣言を公開しました。
次のように述べています。
- 開発では、プロセスとツールよりも個人と対話を優先する必要があります。
- 包括的なドキュメントよりも動作するソフトウェア。
- 契約交渉よりも顧客とのコラボレーション。
- 計画に従った変化への対応。
アジャイル ソフトウェア開発方法は、リリースと反復に基づいています。
- 1 つのリリースは複数の反復で構成される場合があります。
- 各反復は、小さな独立したプロジェクトに似ています。
- 見積もりと優先順位付けが行われた後:
- 機能、バグ修正、拡張機能、リファクタリングの幅がリリースに割り当てられます。
- その後、通常は優先順位に基づいて、リリース内の特定の反復に再度割り当てられます。
- 各反復の終了時に、作業コードをテストする必要があります。
- 各反復では、チームは前の反復の成果に焦点を当て、それらから学習する必要があります。
チームがより短期的な成果を重視することは、チームが機能を過剰性能にして時間を無駄にする可能性も低くなるということです。 そうでないと、不要なスコープクリープを発生させてしまいます。
アジャイル ソフトウェア開発は、チームがビジネスの成果に集中できるようにするために役立ちます。
ウォーターフォールとアジャイルの手法の比較
ウォーターフォール | アジャイル |
---|---|
別個のフェーズに分かれています。 | プロジェクト開発ライフサイクルをスプリントに分けます。 |
厳格にすることができます。 | 柔軟性で知られています。 |
設計、開発、テストなど、すべてのプロジェクト開発フェーズが一度で完了します。 | 各フェーズが複数回表れることができるように、反復開発アプローチに従います。 |
ほとんど変更を必要としないプロジェクトの開始時に、要件を定義します。 | 要件は変更され、進化することが予期されます。 |
プロジェクトの完了に重点を置きます。 | 顧客の要求を満たすことに重点を置きます。 |