アジャイル開発と反復型開発およびインクリメンタル開発の違いは何ですか?アジャイルは反復型および増分型と見なされますか?アジャイルが最新の反復型および増分型であることを示すいくつかの情報。これについて明確に説明する必要があります。
5 に答える
- 反復-機能を一度に終了することはありません。あなたはコードにいます>>フィードバックを得る>>コード>>...サイクル。完了するまで繰り返します。
- インクリメンタル-あなたは今必要なだけビルドします。必要性が証明されない限り、過度に設計したり、柔軟性を追加したりすることはありません。必要が生じたときは、既存のものの上に構築します。(注:新しいものを追加するという点で反復とは異なります。何かを洗練するのとは異なります)。
- アジャイル-アジャイルマニフェストにリストされているものと同じものを評価する場合、あなたはアジャイルです。また、「アジャイルを実行する」ための標準のテンプレート、チェックリスト、または手順がないことも意味します。過剰に指定することはありません。「アジャイルになる」ために必要なあらゆるプラクティスを使用できると述べているだけです。スクラム、XP、かんばんは、同じ値のセットを共有するため、より規範的な「アジャイル」手法の一部です。継続的かつ早期のフィードバック、頻繁なリリース/デモ、進化する設計など。したがって、反復的かつ段階的に行うことができます。
インクリメンタル開発とは、ソフトウェア プロジェクトのさまざまな部分がプロジェクトの 1 つまたはいくつかのマイルストーンで組み立てられるモノリシックなアプローチではなく、ソフトウェア プロジェクトのさまざまな部分が継続的に全体に統合されることを意味します。
反復とは、コンポーネントの最初のバージョンが完成すると、テストとレビューが行われ、その結果がすぐにこのコンポーネントの新しいバージョン (反復) に変換されることを意味します。
したがって、最初の結果として、反復開発はインクリメンタルである必要はなく、その逆も同様ですが、これらの方法は適切です。
アジャイル開発の目的は、ソフトウェア プロジェクトの膨大な計画オーバーヘッドを削減して、顧客の希望などに迅速に対応できるようにすることです。漸進的で反復的な開発は、ほとんどの場合、アジャイル開発戦略の一部です。アジャイル開発にはいくつかのアプローチがあります (スクラムなど)。
反復的な開発とは、製品寿命の過程で通常のウォーターフォール モデルの手順を再検討することを意味します。段階が重なることさえあります。つまり、エンド ツー エンドのテストを行っている間に、新しい要件の準備をすでに開始している可能性があります。
インクリメンタル開発とは、機能のロードマップを作成し、段階的に実装することを意味します。
アジャイルは、スプリントごとに「出荷可能な製品」を作成することを目指しています。それをどのように達成するかは別の話です。アジャイルは、さまざまな分野 (エクストリーム プログラミングなど) から「最良の」技術を採用しようとします。アジャイルは、漸進的開発でも反復的開発でもない実行を除外しません。
Google Chrome や Mozilla Firefox など、重要かつ成功裏に実行されたソフトウェア プロジェクトは、反復的および漸進的なソフトウェア開発の良い例です。
このアプローチについて説明している ars technica の素晴らしい記事を引用します。
Chrome プログラム マネージャーの Anthony Laforge 氏によると、ペースの増加は 3 つの主な目標に対処するために設計されています。1 つは、新しい機能をユーザーにより早く提供することです。2 つ目は、リリース スケジュールを予測できるようにすることです。これにより、どの機能を含め、どの機能を今後のリリースの対象にするかを計画しやすくなります。3 つ目の最も直感に反することは、Chrome 開発者のストレスを軽減することです。Laforge は、リリース間の短い予測可能な期間は、「グランド セントラル駅を出発する列車」に似ていると説明しています。準備が整った新機能は、完了までに時間がかかる他の機能を待つ必要はありません。現在のリリースの「トレーニング」に飛び乗ることができます。これにより、開発者が他の機能を急いで完成させなければならないというプレッシャーを取り除くことができます。別のリリース トレインが 6 週間後に来るからです。仕事のせいで電車が駅を離れることはないので安心です。<<