web-dev-qa-db-ja.com

アジャイル開発と反復開発および増分開発の違い

アジャイル開発と反復開発およびインクリメンタル開発の違いは何ですか?アジャイルは反復的かつ漸進的と見なされますか?アジャイルが最新の反復型および増分型であることを示す情報があります。これについて明確な説明が必要です。

40
Sonia Yunni
  • 反復-一度に機能を完成させることはありません。あなたはコードの中にいます>>フィードバックを得る>>コード>> ...サイクル。完了するまで繰り返し続けます。
  • 増分-必要なだけビルドします。必要性が証明されない限り、過剰なエンジニアリングや柔軟性の追加を行いません。必要に応じて、既存のものの上に構築します。 (注:新しいものを追加しているという点で、反復型とは異なります。
  • アジャイル- アジャイルマニフェスト にリストされているものと同じものを評価すれば、アジャイルです。また、「アジャイルを行う」ための標準のテンプレート、チェックリスト、または手順がないことも意味します。過剰に指定することはありません。「アジャイル」にするために必要なプラクティスを使用できるとだけ述べています。スクラム、XP、カンバンは、同じ一連の値を共有するため、より規範的な「アジャイル」方法論の一部です。継続的かつ早期のフィードバック、頻繁なリリース/デモ、デザインの進化など。したがって、それらは反復的かつ漸進的です。
48
Gishu

インクリメンタル開発とは、プロジェクトの1つまたはいくつかのマイルストーンですべての異なる部分を組み立てるモノリシックアプローチではなく、ソフトウェアプロジェクトの異なる部分が全体に継続的に統合されることを意味します。

反復とは、コンポーネントの最初のバージョンが完了すると、テスト、レビューが行われ、その結果がすぐにこのコンポーネントの新しいバージョン(反復)に変換されることを意味します。

したがって、最初の結果として、反復開発はインクリメンタルである必要はなく、その逆も同様ですが、これらの方法は適しています。

アジャイル開発は、ソフトウェアプロジェクトの大規模なプレーニングオーバーヘッドを削減して、変化に対する迅速な対応を可能にすることを目的としています。顧客の希望で。漸進的および反復的な開発は、ほとんどの場合、アジャイル開発戦略の一部です。アジャイル開発にはいくつかのアプローチがあります(例:スクラム)。

9
Sheba

Google ChromeやMozilla Firefoxなどの重要で正常に実行されたソフトウェアプロジェクトは、反復的なソフトウェア開発とインクリメンタルなソフトウェア開発の好例です。

このアプローチを説明する、ars technicaの素晴らしい記事を引用します。 http://arstechnica.com/information-technology/2010/07/chrome-team-sets-six-week-cadence-for-new-major-バージョン/

ChromeプログラムマネージャーAnthony Laforgeによると、ペースの向上は3つの主な目標に対応するように設計されています。1つはユーザーに新機能をより早く提供することです。 3番目の、そして最も直感に反する直感的な方法は、Chrome開発者のストレスレベルを削減することです。Laforgeは、短く、予測可能なリリース間の期間は、「Grand Central Stationを出発する列車」に似ています。準備が整った新機能は、完了に時間がかかる他の人を待つ必要はありません。現在のリリースの「列車」に飛び乗ることができます。 6週間後には別のリリーストレインが予定されているため、開発者にRushへのプレッシャーを与えずに、他の機能を完成させます。

0
jjpcondor

反復的な開発とは、製品の耐用期間中に通常のウォーターフォールモデルの手順を再検討することを意味します。ステージは重複することもあります。つまり、エンドツーエンドのテストを行っている間に、すでに新しい要件の準備を開始できます。

段階的な開発とは、機能をロードマップし、段階的に実装することを意味します。

アジャイルは、あらゆるスプリントの後に「潜在的に出荷可能な製品」を作成することを目指しています。それを達成する方法は別の話です。アジャイルは、さまざまな分野の「最高の」テクニック(極端なプログラミングなど)を採用しようとします。アジャイルは、増分開発も反復開発も実行することを除外しません。

0
Roman Saveljev