web-dev-qa-db-ja.com

2週間ごとにウォーターフォールを実行することはアジャイル開発と見なされますか?

ウォーターフォールサイクルの長さが1〜2週間であるウォーターフォールタイプの開発アプローチをアジャイルとして分類できるかどうか疑問に思っていました。

6
Martin Blore

従来の(正しくない)ウォーターフォールは、ライフサイクルのフェーズを1回繰り返すだけです。まず、要件エンジニアリングを実行します。これらの要件を使用して、システムを設計および設計し、それらの設計を検証/妥当性確認します。次に、システムを実装します。システムが実装されたら、システムをテストして、意図したとおりに機能することを確認します。最後に、展開と使用のために顧客に出荷します。プロジェクトは、プロジェクトが終了するまで、バグを修正して更新をリリースするメンテナンスサイクルに入ります。プロセスは次のようになります。

Winston Royce's "Waterfall"

実際には、これはソフトウェア開発にとって悪いモデルです。多くの人が滝について学んだ論文は、実際には非常に異なる何かを提案しました。これには、各フェーズでの高レベルの顧客の関与と、アーティファクトを修正および修正するために前のフェーズに戻ることが含まれます。詳細については Royceの論文、Managing the Development of Development of Large Software Systems を参照してください。それはもっと似ています:

Winston Royce's SDLC

最後に、アジャイルアプローチがあります。これは 反復型および増分型開発モデル です。反復モデルと増分モデルには多くのバリアントがあります。それらすべての考え方は、顧客が製品を終了するまで、製品のライフサイクルのすべてのフェーズ(要件、アーキテクチャ、設計、実装、テスト、リリース)を何度も実行することです。多くのバリエーションがあるため、反復型開発とインクリメンタル開発がどのように見えるかについての実際の詳細な図はありませんが、結果は通常、フィードバックループになります。

11
Thomas Owens

アジャイル開発により、次のことが可能になります。

  1. 作業機能を迅速に提供
  2. 変化する要件に対応する

ポイントの1つは、anythingが配信される前にyearsの間続いた従来のWaterfall開発がもたらしたBig Design UpFrontの問題全体を回避することです。

したがって、2週間ごとに何かを配信している場合は、アジャイル(小文字の「a」に注意)を効果的に実行していますが、アジャイル(大文字の「A」を使用)は実行していません。現在のイテレーションの設計のみを行っており、逸脱していない「大きな設計」がない限り、変更に対応できるはずです。

4
ChrisF

簡単な答えは、いいえです。アジャイルは反復的で適応的な開発を意味しますが、ウォーターフォールは設計を事前に意味します。つまり、アジャイルを行っていないか、ウォーターフォールを行っていないか、または(おそらく)どちらも行っていません。

1
afeygin

タフコール。

あなたが説明するような場合、私はおそらく設計エラーのコストを決定要素として使用します。

  • たとえば、テスト段階で発見された設計エラーから回復するのに1〜2か月かかり、それが痛みを引き起こすほど頻繁に発生する場合、それは確かに典型的な ウォーターフォールの問題 のようなにおいがします。それ以外の場合は、用語について心配するのをやめるのに十分なようです。
1
gnat

2週間ごとにバージョンを出荷する場合は、少し変わったものが必要です。

ビジネスが絶えず変化している、各サイクルで実施している実装のサイズが非常に小さい、またはユーザーが要件の全体像を提供していないかのいずれかです。

上記のすべては非常にリスクが高く、適切な事前分析と設計によって修正できます。

2週間ごとにソフトウェアをリリースする場合、回帰テスト、ドキュメント、プロダクションサポートの教育、ユーザートレーニングなどにかなりの時間を費やす必要がある可能性があります。また、ウォーターフォールスタイルは反復サイクルに基づいておらず、回帰のための調整機能がありません。テスト。

また、2週間ごとにソフトウェアが変更されることに対するエンドユーザーの気持ちも心配です。個人的には、アプリケーションに新しいメニュー項目が頻繁に表示されることはありません。

もし私があなたなら、2週間のサイクルを持つことの真の価値を研究するでしょう。

1
NoChance