「アジャイル」と「ウォーターフォール」という 2 つの一般的なソフトウェア開発モデルを紹介します。

上部に次のように書きます。

アジャイル開発モデルはプロジェクトベースのシステムに適しており、ウォーターフォール開発モデルは設計後に複数の反復を行う製品ベースのシステムに適しています。

上記は私の個人的な理解ですので、異なる意見も歓迎します。

ソフトウェアを開発する場合、プロジェクト実装の最初の決定でよく直面するのは、「どの開発方法論を使用するべきか?」ということですが、これは多くの議論 (および激しい議論) を引き起こすトピックです。これまでこの方法を使用したことがない場合は、開発方法論と理論を正しく理解する必要がありますが、簡単に言うと、ソフトウェア開発作業を整理する方法です。これは、プロジェクト管理のスタイルや特定の技術的アプローチとは何の関係もありませんが、この用語が混同されたり、同じ意味で使用されたりすることはよくあります。最も一般的な 2 つの基本的な手法は、ウォーターフォール開発とアジャイル開発です。どちらの方法も利用でき、確立された方法です。

さて、アジャイル モデルとウォーターフォール モデルに関して言えば、アジャイル開発が今後のプロジェクト実装のトレンドであり、ウォーターフォール実装はあまりにも時代遅れで時代遅れだと考えている人も多いでしょう。さらに、ソニーやレノボなどの一部の多国籍企業も、一部のプロジェクトを実行するためにアジャイル手法を使用していることは事実です。しかし実際には、大多数の企業が依然としてウォーターフォール方式でプロジェクトを実装していることがわかります。この記事では主にアジャイルとウォーターフォールの違いやメリット・デメリットを簡単に紹介します。

アジャイル開発とウォーターフォール開発
1. ウォーターフォールモデル
ウォーターフォールモデルとは、プロジェクトを限られた段階に分解してソフトウェアを開発する手法です。開発は、前のフェーズがレビューされ検証された場合にのみ次のフェーズに進む必要があります。ウォーターフォール モデルでは、ステージは重なりません。このアプローチでは、一連のイベントは次のようになります。
- 要件が収集され文書化される
- 設計
- コードと単体テスト
- システム テストが実行される
- ユーザー受け入れテスト (UAT) が実行される
- 問題が解決される
- 最終製品が納品される

ウォーターフォール開発モデルの観点から見ると、依然として非常に信頼できる作業ロジックを持っているように見えます. プロジェクトまたはプロジェクトは複数の段階に分割され、対応するリソースが各段階に投資されてこの段階の作業を完了します。各段階から次の段階までは明確なインプットとアウトプットの成果物があり、各段階が必要なインプットに応じて作業活動を行った後、それぞれの段階でのアウトプットを生成し、次の段階の作業に投入します。不安がある場合は、各段階に承認リンクを追加すると、次のリンクに投資する前に各リンクが確実に承認されるようになります。

SDLC ウォーターフォール モデルは通常、次のような状況で使用されます: 要件が安定しており、頻繁に変更されない、アプリケーションが小規模である、不明瞭な要件がない、環境が安定している、使用されるツールとテクノロジが安定している、動的ではない、リソースご利用いただけます。

2. アジャイル モデル
アジャイルは、反復的なチームベースの開発手法です。このアプローチでは、アプリケーションを完全な機能コンポーネントとして迅速に配信することに重点を置いています。すべての時間は、「固定タイムボックス」によって「スプリント (イテレーションと呼ばれることが多い)」に分割されます。タスクやスケジュールを作成する代わりに。各反復サイクルには定義された期間 (通常は数週間) があり、反復の開始時に計画された成果物の実行リストが含まれています。成果物は、顧客が決定したビジネス価値に基づいて優先順位が付けられます。反復内で計画されたすべての作業を完了できない場合、作業は再順序付けされ、この情報は将来の反復計画に使用されます。作業が完了すると、プロジェクト チームとクライアントは、毎日のビルドと反復デモを通じてレビューと評価を行うことができます。アジャイルは、プロジェクト全体を通じて、特にレビュー中に非常に高いレベルの顧客の関与に依存します。

アジャイルの視点から見ると、すべての内容を理解することはできない場合が多く、理解したとしても内容が変わらないとは保証できません。まず、メインパスに従って、主要な機能を完了した後、作業を​​改善するための反復を継続します。これにより、変更を加えたときに覆す作業負荷も小さく、新しい要件の変更を迅速に完了できます。このような継続的な変更と再構築により、お客様に比較的満足していただける製品を得ることができます。

アジャイルを支持する多くの学生は、ウォーターフォール手法と比較して、アジャイルのリスクがはるかに小さいと言うでしょう。その理由は、小さく、十分にテストされた、独立した価値のある機能を提供することに重点を置いているためです。したがって、リスクは分散されます。1 つの機能に問題が発生しても、他の機能に影響を与えることはありません。この点に関して、私たちは今でも反復的に作業を計画しており、各反復の終わりにリリースしています。一方、ウォーターフォールではビジネスとのコミュニケーションや反復が不足しているため、プロジェクトの後半で要件の変更が発見されると、プロジェクトが失敗するか、プロジェクトの再起動が必要になる可能性があります。この図は、ウォーターフォール開発がしばしば直面するジレンマも説明しているようです。

高効率を維持し、変化を受け入れるという旗の下では、アジャイル モードが最良の開発モードであるようです。対照的に、ウォーターフォールモードは、そのような叫び声の中で、古くて硬直していることを反映して、ペースについていくことができていないように見えます。

「アジャイル」に対する「ウォーターフォール」
アジャイル自体はプロジェクト管理フレームワークでも、「方法論」でもありません。これは製品開発に関連する一連の原則と価値観であり、特にインターネット製品はアジャイル手法を使用して開発されることがよくあります。ただし、プロジェクト管理フレームワークではなく、製品開発方法論であるアジャイル原則に基づく方法論があります。

需要の変更に関しては、ウォーターフォールは需要の変更を検討し、変更申請を送信し、段階的に手順に従ってワークロードを計画することもできます。アジャイルより遅いですが、私のプロセス全体は信頼できます。なぜ滝は硬直していて時代遅れだと言えるのでしょうか?

ウォーターフォールのアプローチには何の問題もないようですが、次の手順に従って作業を完了してみてはいかがでしょうか。このようなプロセスは非常に信頼できるように思えます。私には明確な段階があり、明確な承認があり、明確な変更プロセスがあります。非常に多くのプロジェクトがウォーターフォール モードで開発されていることから、ウォーターフォール モードが効果的な実装方法であることが証明されていますね。

さらに、アジャイルによって批判されるウォーターフォール プロジェクトは、非常に重大なエラーが発生した場合に失敗することがよくあります。これは実際には、プロジェクトに対する制御が非常に不十分な場合にのみ発生します。ウォーターフォールプロジェクトにはイテレーションやユーザーからの複数のフィードバックがないのも誤りです。多くのプロジェクトでは製品のプロトタイプ図や事業部門を通じて動作プロセスを確認できますが、この方法は多くのプロジェクトでは使用されていません。

フォーカス コリジョン アジャイル
モード、2 週間に 1 回の反復。各反復で特定の機能モジュールを提供できるため、ユーザーは成果物をより早く確認できます (一部のみではあります)。また、変更が発生したときにユーザーが自分の意見を提出することもできます。次のイテレーションでも変更を加え、ユーザーが再度確認できるようにします。

この観点から見ると、この 2 つの衝突は、納期の適時性と変化に直面するコストに大きな変化をもたらします。ウォーターフォールは納品段階の比較的遅い段階にあり、納品されるモジュールも比較的完成度が高いため、変更に直面した場合、変更の影響範囲が比較的大きく、変更コストが非常に高くなります。問題発見の段階が遅くなるほど、問題解決にかかるコストは高くなります。このように、このようなシナリオではウォーターフォールよりもアジャイルの利点が反映されます。

アジャイルとウォーターフォールを選択する際の主な考慮事項は、時間とコストのようです。将来は、将来の選択をより適切に導くことができます。アジャイルとウォーターフォールの長所と短所については、以下で詳しく説明します。

アジャイル開発の利点:
• 段階的な開発結果が開発プロセスのできるだけ早い段階でレビューされ、プロジェクトのリスクが軽減されます;
• 要件が明確でない状況にも適用できます。要件が明確ではないため、継続的な反復のプロセスで徐々に開発し、要件を明確にする必要があります。
• 高い柔軟性、要件はいつでも変更可能;
• アジャイルは開発者とビジネス ユーザーの間の頻繁なコミュニケーションを奨励しますが、ビジネス ユーザーの不当な要求や開発者の誤解はこれらの頻繁なコミュニケーションに反映されます 常に見直し、更新されます
。はるかに高く、通常はより高品質の製品を開発できます;
• 急速に変化するプロジェクト、特にフロントエンドのビジネス担当者向けの CRM システム プロジェクトに適しており、ビジネスの変化や変化に適応するのが簡単です。

I アジャイル開発の欠点:
• アジャイルの概念の受け入れ度はそれほど高くなく、最初の試みはあまり成功しない可能性があります
;
ビジネス担当者と IT 担当者は、コミュニケーションの前に多くの準備作業を行う必要がありますが、多くの場合、ビジネス コミュニケーションの時間が保証されません; • 当事者
B からのサプライヤーがいる場合、俊敏性はより大きな課題に直面します。クライアントは多くの場合、プロジェクトのインプットをできるだけ早く理解したいと考えています。プロジェクトの時間とコストを見積もるのは困難です;
• アジャイル プロジェクトの最大の問題は、事業部門が最終期限を設定したくないことかもしれません。

I ウォーターフォール開発の利点:
• 適切に管理されたプロジェクトでは、ウォーターフォールは早期に納品に自信を与えることができます;
• プロジェクト チームのメンバーが同じ場所で頻繁にコミュニケーションする必要がなく
、より適切なアプローチです;
• ウォーターフォール プロジェクトはツールを使用してモデル化および管理します基本製品開発以外に多くのインターフェイスと依存関係がある場合は、これらのインターフェイスと依存関係。

ウォーターフォール開発のデメリット:
• 多くの企業やビジネス関係者にとって、初期段階で要件を明確に定義するのは実際には簡単ではなく、初期計画に基づいて想定される要件には大きなリスクが伴う可能性があります; • コミュニケーションのリスクがはるかに高くなります - 特に多くのプロジェクトは
、初期段階では一方的なコミュニケーションがあり、後期段階ではプロジェクトとビジネス担当者の期待は大きく異なります; • ウォーターフォール
プロジェクトは、無効な前提に基づいた要件によってプロジェクトが失敗する可能性があるため、一般にリスクが高くなります。無限に広がります。そのため、多くのウォーターフォール プロジェクトが予算を超えたり、遅れたりしていることがわかります。

結論:
アジャイルとウォーターフォールの実装方法は依然として大きく異なります。ウォーターフォールは、ほぼあらゆる種類のプロジェクト、特に大規模なプロジェクトに適用できるようになりました。アジャイル手法は過去 2 年間でますます人気が高まっており、企業 (国防総省や連邦政府機関も含む)、特に Salesforce などの現在の SaaS ソフトウェアで多数のアジャイル手法が採用されているのが見られるようになりました。独自の開発プラットフォームを備えた SAP など。初期プロトタイプを構築し、SaaS 製品を迅速に反復するのは非常に簡単です。しかし一般に、アジャイルはウォーターフォールを完全に置き換えることはできず、別の良い選択肢を提供するだけです。

アジャイル手法とウォーターフォール手法を組み合わせたハイブリッド アジャイル アプローチも、現在では組織にとって一般的です。使用する基本的な方法を決定したら、プロジェクトの目標に最も合うようにプロセスをさらに改良できます。結局のところ、私たちの仕事のやり方は重要ですが、顧客のニーズを満たす信頼性が高く保守可能な製品を提供することが重要です。

おすすめ

転載: blog.csdn.net/Alex_81D/article/details/131574536