Waterfallソフトウェア開発方法論はまだ実行可能ですか?


14

私の経験では、Waterfallモデルは柔軟性に欠け、要件の変更に無反応であることが証明されており、ソフトウェア開発の現代世界で実行可能な方法と見なされているようです。より俊敏で反復的な方法の成長と実証済みの実績は、プロジェクトの開始から製品の提供までほとんど変わらないことを前提とするリジッドブロックのプロセスに従う必要がある理由がないことを示しているようです。

ウォーターフォール開発方法論は、時間、コスト、および品質に関して、ソフトウェアシステムを提供するためにまだ実行可能ですか?


3
それで、あなたがそれを経験しておらず、それを経験したくないなら、それは死んでしまいますか?私がそれを支持しているわけではありませんが、それは奇妙な前提のようです。
木曜日

9
死んでいません。それはただの現在の流行/傾向/「容認できる」ではない
ポール

2
@GrandmasterB「死んだ」とは、「最善の方法ではないことが十分に証明されている」ことを意味しました
-CFL_ジェフ

3
@Rachelソフトウェア開発タグを読み続けないでください。これは、将来のクリーンアップのために予定されているメタタグです
トーマスオーエンズ

3
死んでいるのではなく、ただ休んでいるだけです。フィヨルドの固定。;)
FrustratedWithFormsDesigner

回答:


20

参照しているウォーターフォールモデルは、実際のプロジェクトで使用されるプロセスモデルを意図したものではありませんでした。代わりに、それはストローマンです。ソフトウェアプロジェクトに存在する主要なフェーズとアクティビティ、およびそれらの間の最も基本的なフローを特定します。ソフトウェアを開発する方法のこの単純化は欠陥があり、そのように提示されました。

ウィキペディアの記事から:

ウォーターフォールモデルの最初の正式な説明は、Winston W. Royceによる1970年の記事としてよく引用されますが、この記事では「ウォーターフォール」という用語を使用しませんでした。Royceは、このモデルを欠陥のある非稼働モデルの例として提示しました。

議論された論文のタイトルは、「大規模ソフトウェアシステムの開発の管理」です。その中で、Royceは2ページ目にそのモデルを提示しています。ただし、画像表現のすぐ下のテキストは読み続けます。

私はこの概念を信じていますが、上記の実装は危険であり、失敗を招きます。

彼はこれに続いて、開発フェーズの「完了」に続くテストの問題、ここでの失敗がどのように大幅な再設計とコード変更につながるか、これらがどのようにコストとスケジュールの大幅なオーバーランにつながるかについて議論します。論文全体を通して、彼は元のモデルをプロジェクトで実際に実行可能なものに改良します。最終的に、彼はプロトタイピング、顧客との対話、および成果物の洗練を導入するモデルになります。最終的には、1990年代後半から2000年代初頭に始まったアジャイルムーブメントに不可欠なアイデアになります。

あなたの質問に答えるために:あなたが尋ねているウォーターフォールは、時間と予算で合理的な量の品質でソフトウェアプロジェクトを提供するための実行可能な方法ではありません。ただし、プロジェクトで作業を実行できるアジャイルとは反対の、計画主導型の方法論が他にもあります。


アジャイルに関する多くの記事では、「伝統的な方法」を使用して滝について言及していますが、その暗黙の滝は常に20世紀に使用されていました。今、私は自分が間違っていることを知っています。
明唐

@ThomasOwensこれらのいくつかを引用してもother plan-driven methodologies that lie opposite of agile that can and do work on projectいいですか?
ライヴ

@Laivスパイラルモデルは、アジャイルアプローチよりも計画主導型になる傾向があります。実際のソフトウェアを開発する前に、より多くの計画と分析を行います。Cap Gemini SDMは別の例です。ただし、後の改訂ではplan-do-check-actサイクルが追加されますが、このプロセスにもかなりの量の事前計画と分析が組み込まれています。多くはウォーターフォールのバリエーションですが、何らかのフィードバックループが組み込まれている可能性があります。ドメインの理解が深く、要件が比較的安定している場合は、アジャイルメソッドのタイトなフィードバックループは必要なく、より良い計画を立てることができます。
トーマスオーエンズ

9

人々は教科書のウォーターフォールモデルを使用せず、おそらく使用しないでしょう。

これは、システム開発の手順について考えることを目的とする理想的な理論上の構成要素です。大きなポイントは、できるだけ多くの変更をできるだけ早く行うことです。多くのコードが作成されると、大きな変更を行う時間もお金もなくなるからです。

プロセスというよりも思考の方法であるという事実にもかかわらず、それは多くの人がまだソフトウェア(または家、潜水艦、その他何でも...)を構築しようとしている多くの方法と同じです。

現実の世界では、フェーズ間の完全に厳密なカットオフはありません。また、小さなサブプロジェクトの場合、前のフェーズにループバックすることがあります。方法論があなたに言うことは、「これらのことは許されない」ということではありません。それはあなたに「これらのことはあなたにお金や時間を要します」と言っているので、将来はそれを避けるようにしてください。

Agile Snobs(TM)が「昔ながらの」開発者と彼らの趣のある、機能しないウォーターフォールの方法論に目を向けるのは、すべてうまくいきますが、問題の事実は、アジャイルも万能薬ではないということです。一部のプロジェクトはアジャイルを使用して構築することができず、アジャイルであると考える多くのチームは実際には単にずさんで組織化されていません。

方法論はポイントではありません。ポイントは、あなたが何をしているのなぜそうするの考え、最短時間で顧客に最大限の価値をもたらすことです。


あなたは明らかに私にとって「人」の非常に異なる経験をしました。過去30年にわたり、私はすべてが教科書のウォーターフォール法を使用した(そして現在も使用している)一連の企業で働いてきました。当然のことながら、機能しません。
デビッドアルノ

@DavidArno教科書に「野生」で見たソフトウェアコンテキストで最も近いウォーターフォールは、列車の乗り換えを制御するソフトウェアを構築している会社でした。動機は、バグの結果として文字通り誰かが死ぬことではありませんでした。組み込みプログラミングを行う場所でも、バグが原因で失敗することを見つけるためだけに何百万ものものを構築したくない場合に起こる可能性があると思います。これらの場合でも、ウォーターフォールは完璧に達成される実践というよりも理想的だと思う傾向があります。あなたが指摘するように-結果は必然的にあるレベルで失敗します。
ジョエルブラウン

8

最も頻繁にアジャイルと比較される神話上の滝のプロセスは存在しなかったため、死んでいると見なすことはできません。実際のウォーターフォールプロセスはまだ健在であり、ユーザーの期待に応える予算のあるソフトウェアを期日どおりに提供することに優れています。


5
「神話的な」ウォーターフォールプロセスと「実際の」ウォーターフォールプロセスの違いはわかりません。これについて説明していただけますか?
CFL_ジェフ

6
しばしばアジャイル支持者によって記述滝プロセスはstrawmanあるen.wikipedia.org/wiki/Straw_man
jfrankcarrは

11
アジャイルの支持者がいかに機能しないが適切にウォーターフォールではないストローマンプロセスを作成するかを回答で説明した場合、これはより良い回答になります。
ロバートハーベイ

4
「彼らは配達に優れています...」という声明の-1 すべてのソフトウェア手法と同様に、時には機能する場合もあれば、機能しない場合もあります。真のウォーターフォール法の場合、両方を見てきました。
リウォーク

2
この回答について[引用が必要]と言わなければなりません。そして、提供されるまで-1。特に、「ユーザーの期待に応える予算のあるソフトウェアを期日どおりに提供するのに優れている」というCHAOSレポートはあなたに同意しません。
フィスト

5

おそらく、あなたが何を得ているのかを尋ねるより良い方法は、「反復性が少なく、よりフォーマルな方が良いとき」です。

これが当てはまる状況があります:

  • 要件が変更されない場合。

  • 新しい要件を満たすことは、元の要件を100%満たすよりも重要ではありません。

  • すべてのテクノロジーコンポーネントが成熟し、十分に理解されている場合。

ある意味で、あなたはアジャイルに駆り立てられるかもしれないものの反対をとることができます。

どこでも適用できる技術はほとんどありません。役に立たないものはほとんどありません。


1
世界で「無頓着」または「異形」とは何ですか?
アーロンノート

1
@Aaronaught-iPhoneで太った親指で入力された「反復の少ない」および「形式的な」。:-)
MathAttack

1
これらの前提条件の1つでも満たすプロジェクトで働いたことはありません。:)
テオドール

3

はい、非常に生きていますが、今日ではより一般的な「Vモデル」が使用されています。

どちらの場合でも、アジャイルにある問題は、ソリューションがほとんど終わらないことであり、顧客は変更を要求し続けることができ、開発はそれらを繰り返し解決し続けます。時間と材料のコストに基づいたプロジェクトの場合、これは非常に効果的です。固定費のプロジェクトの場合、そうではありません。

これらの固定費プロジェクトでは、顧客はほぼ常に事前に定義されたマイルストーンが進捗を示すことを期待しますが、これらは実際のコードではなく、正式に書かれたものです。このような顧客の場合、仕様書はプロジェクトになり、ソフトウェア開発が二次的な考慮事項になります(明確に定義されたプロジェクトがある場合、ソフトウェアは簡単に開発できるはずです)。これらの企業は、安価で外部委託された開発リソースを多用している企業でもあります。

そのため、お金や時間を固定している場合、要件の変更を期待したり、要件の変更を許可したりせず、文書の強力なセットを提供することが期待されている場合、ウォーターフォールモデルのみが理にかなっています。

これらのプロジェクトの途中でアジャイルを導入して開発を行うことはできますが、要件から仕様を作成する立ち上げ段階と、ソフトウェアをその場でインストールしてテストする立ち下がり段階がまだあります。アジャイルはこれらのケースにうまく反応しません。


範囲も固定されていない限り、アジャイルは固定されたお金や時間でうまく機能します。他の点は、その顧客/請負業者ができるで選ぶ特定の開発(アジャイルや滝)の方法論と一致するように契約の種類(T&M、固定費、か何かで、間を) -それは、所定されていません。
DNA

1

どなた宛?私が対処したマネージャーのほとんどは、まだスケジューリングにWaterfall Software Dev Processを使用しており、アップレベルはスケジューリングを容易にするためにそれを好むようです。

実際、私が知っている開発者はごくわずかであり、それが機能する、または有効であるとさえ信じています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.