アジャイルソフトウェア開発は、契約で定義されたプロジェクトで使用できますか?


14

私は最近、仲間の開発者とアジャイルソフトウェア開発について話し合いました。私はその原則を理解していますが、要件が絶えず変化することで、プロジェクトが永遠に続く可能性が生まれるようです。しかし、少なくとも私が働いている場所では、プロジェクトは契約であるため、完成する必要があります。

つまり、一部のプロジェクトでは顧客が不完全なアプリケーションを使用できないため、最初の反復には数か月かかる場合があります。一部のプロジェクトでは、最初に終了を定義する必要があり、それを反復に分割し、各反復後に定義を改良する必要があると思います。ただし、常にこの定義が必要です。

アジャイルソフトウェア開発が要件の変化を受け入れる場合、それがどこで終わるのかをどのように知るのですか 最終結果が常に変化する場合、どのようにプロジェクトの予算を立てることができますか?

アジャイルソフトウェア開発は、アジャイル製品というよりもアジャイルプロセスに関するものですか?


実際に動作するものではなく、実際に何かを配信する必要があるときに終了します。その時点で、構造、計画、要件と期限を修正し、だまされずに作業を開始する必要があります。
11

アジャイルな反復のたびに、クライアントが使用してさらに学ぶことができる、機能する成果物が生成されます。これは、彼らが満足するまで続き、多くの場合、当初の計画よりも早く起こります。これは、製品が常に機能していることを保証し、ソフトウェアが完成することはなく、永遠に進化するか死ぬという事実を考慮に入れています。製品が十分であると思われる時点を選んで、そこで停止します(今のところ)。
マーティンウィックマン

@Martin Wickman:私はこれを理解していますが、「クライアントが使用できる成果物」が問題です。この場合、最初の反復には数か月かかる場合があります。一部のプロジェクトでは、顧客が不完全なアプリケーションを使用できないためです。一部のプロジェクトでは、最初に終了を定義する必要があり、それを反復に分割し、各反復後に定義を改良する必要があると思います。ただし、常にこの定義が必要です。
-Verax

@Verax:アジャイルマニフェストは、変更を管理するために作成されました。プロジェクトに変更がない場合、アジャイルはあなたのためではありません。話の終わり。
マーティンウィックマン

2
@Verax:質問を明確にし、さらにコンテキストを追加する必要があります。あなたのコメントは、質問にもっとあることを示しています。これは、回答の投票数からも明らかであり、受け入れられた回答は実際の質問テキストとは無関係です(さらに、「OPのコメントから...」と言っています)。
マーティンウィックマン

回答:


7

OPのコメントから、彼は私がクライアントに開発サービスを提供しているコンサルティングショップで働いているようです...私はこのマインドフレームが彼/彼女の混乱を引き起こしているからだと思うので...よく知っているが、事実を述べたことはない。

アジャイルは、契約で定義されているソフトウェア開発と互換性がありません。

  • 契約は厳しくする必要があります。Xを支払い、Yを支払います。X+ Mを支払い、Y +(M * N)を支払います
  • 契約は満たす必要があります(IEはオープンエンドではありません)。(連絡先が関与している場合は、厳密な変更管理プロセスを実行する必要があります。)

多くのコンサルティングショップがアジャイルを主張し、嘘をついています。彼らは、アジャイルがバズワードステータスを獲得したからと言っています。

アジャイルは、プログラマーが常勤であり、予算についてほとんど語らない内部開発に最適です。ちょうど時間枠と機能。


これについてさらに学ぶと、同じ結論に達します。あなたの最後の文は完全に正しいようです。私は以前政府で働いていましたが、私の顧客は私が働いていた代理店でした。プログラムを使用する従業員がいる限り、何年もプログラムを維持する必要がありました。そこでアジャイルが働いているのを見ることができます。今、組み込みシステムを開発しています。マシンが動作すると、プロジェクトは終了します(すべてまたはゼロ)。マシンが部分的に動作する場合、販売することはできません-プロジェクトは失敗しました。
-Verax

2
実際、私が数年前に働いていたコンサルティングショップには、アジャイルを固定価格サービスモデルにどのように適合させることができるかを記述したアジャイル支持者によって書かれた論文がありました。
mcottle

2
私はこの答えに反対しなければなりません。その理由は、オープンエンドではない契約がある場合、スコープクリープを管理したくないことを意味するためです(ほとんどの場合に発生します)。私がよく見かける契約は、Xを支払い、Yを支払うことから始まります。その後、スコープの変更には追加料金が伴うことを示す条項があります。通知範囲のクリープが非常に早い(追加のリソースと時間を必要とする)限り、初期の顧客は変更に対応できます(経営陣から承認と予算を取得するなど)。その後、管理プロセス自体がアジャイルになります。
スポイケ

契約が製品(完成したソフトウェア)ではなくサービス(コードの作成)の場合、これは互換性がありません。アジャイルでは、どの予算で何が行われるかを見積もることができます。要件が変更された場合、予算も変更する必要があります。別の機能が必要ですか?さらに500マンアワーを契約する必要があります。機能のクリープも価格のクリープであり、開発者にとって完全に満足のいくものであり、顧客が支払いを希望する場合、誰に質問しますか?
SF。

2
ありますアジャイル契約がそう明らかにこの答えは、定義によって間違っています、。
マーティンウィックマン

20

最初に最も重要なこと(と思われること)に集中している場合、プロジェクトは次の場合に終了します。

  • 予算を立てました。
  • 予算を設定しました。
  • 何かを追加したり変更したりする必要はもうありません。
  • 最も優先度の高い変更の次のバッチは、コストがかかるだけの価値はありません。

5
1.これ以上のお金はありません-顧客は不完全な役に立たない製品にすべてのお金を使いました。2.もう時間がありません-顧客はまだ不完全な役に立たない製品を持っています。3.追加するものはありません-そうです!4.価値がない-顧客はプロジェクトをあきらめました。---何が欠けていますか?これは私には意味がありません。
-Verax

7
1と2の場合:最も重要なことを最初に行うと、お金が足りなくなったときに、お金のために手に入れることができる最も重要なものを手に入れることができます。時間についても同様です。私は3がまれであることを認めます。4:停止することは、必ずしも顧客がjustめたという意味ではありません。これは、彼らがこれから欲しかった最も重要なものを持っていることを意味するかもしれません、そして、今彼らのお金で他のことをしたいです。他のプロジェクトをいつ終了するかをどのように決定しますか?現在使用している基準はすべて、アジャイルプロジェクトで引き続き利用できます。
デールエメリー

1
デール、考えてくれてありがとう。これは、顧客が各反復に対して個別に支払いを行い、各反復を製品自体として評価する場合にのみ機能すると思います。固定価格の製品や、すべてを必要とする製品や何も必要としない製品に対して、これがどのようにうまく機能するかはわかりません。
-Verax

5
@Verax:「すべてまたは何も」を必要とする製品のようなものはありません。常に「持っているだけでいい」機能や、機能的というよりも表面的なバグが常にあります。お金が足りなくなったときに残っているものがすべてあれば、固定費プロジェクトは成功です。アジャイルメソッドはその可能性を最大化しようとします。
マイケルボルグワード

1
もちろん、要件を変更するにはコストがかかります。あるイテレーションで何かを構築し、次のイテレーションでそれらの要件を変更する場合、そのためのコストがかかります。アジャイルはコストを削減します。それを排除するものではありません。予算がある場合、新しい機能を追加するか、既存の機能を変更するかを決定する際に、常に一方と他方をトレードオフしていることを認識して、予算を念頭に置いてください。優先順位付けと再優先順位付けを学び、結果を学びます。
デールエメリー

14

ビジネスがそれ以上の反復を希望しないと判断したときに停止します。これは、かなりの量の価値が提供された後、収益の減少の領域に踏み込みすぎる前であることを望みます。

それはあなたの状況で意味するものは何でも「ビジネス」によって常に駆動されるべきです。ソフトウェア開発ショップの上級管理者、または社内開発環境の実際のビジネススポンサーである可能性があります。彼らは、次のイテレーションのコストが次のイテレーションで提供される機能の利益を上回る時期を決定します。


5

決して、それはそれの美しさです。

プロジェクトは決して終わらない。別のリリース、別のマイルストーンに到達しましたが、お金が流れている限り、追加する機能、改善するためのピース、修正するバグが常に1つあります。プロジェクトは、不要になると死にますが、終了することはありません。要件->プロジェクト->製品->終了のウォーターフォールモデルとは対照的に、これは、あなたが支払いを受けている限り、永遠に回転するループです。

このテクノロジーの頻繁に言及されるビジネス機能ではありませんか?


2
ウォーターフォールプロジェクトも完全に終了することはなく、重要な機能が欠けた状態で提供される可能性が高く、新しい高価なプロジェクトが必要になります。
マイケルボルグ

4

ここには誤解があります。アジャイルはプロジェクトの要件を変更することを奨励していません。代わりに、作業を無駄にしたり、開発の重要な領域を犠牲にすることなく変更を行うことができます。

エンジニアリングプロジェクトには4つの基本的な制約があります。範囲、コスト、時間、品質。Waterfallは、これらが静的であることを前提としています。それは間違った仮定です。これらの1つ以上は常に変更されます。スコープクリープ、予算の削減、およびその他の「未知の未知数」は、常にプロジェクトを妨害し、制約を変更します。ウォーターフォールはこれを予期していません。そのため、それが起こると、プロジェクトは望ましくない形で変化します。まだ追加されていない重要な機能がなくなるか、すぐに完了するか、リリースを遅らせる必要があるか、PMが新しい開発者にお金を投じて適切に処理するためにバルーンの費用がかかります。

対照的に、アジャイルは制約の変更を許可し、実際にそれを期待しています。これは、所有者の優先順位に従って、使用可能な小さなチャンクで作業を行うことでこれを行います。したがって、チャンクはプロジェクト所有者にとってすぐに役立つことが理想的です。したがって、未知数が大きい時間枠で大きな計画を立てないことにより、未知数への露出を減らします。タイムラインが変更された場合、チームを追加したり、重要性の低い機能を「対象範囲外」にしたり、チームが既に構築したシステムに影響を与えたりすることはできません。

また、指定されたスコープを必要な品質で生産するために必要な時間とコストのより良い見積もりを提供します。人々は大きな仕事を見積もるのが悪名高い。適切に行うには、多くの経験と、より多くの事前の計算が必要です。対照的に、人々は一般に、1日、1週間または2週間で何ができるかを判断します。これにより、安定した状態が迅速に生成され、過去のペースに基づいて、かなりの正確さで、残っている作業の時間とコストを推定できます。

エンドポイントの定義に関しては、あなたは正しいです。アジャイルプロジェクトは永遠に続くことができます。ただし、従来のSLDCも同様です。クライアントはしばしば、より多くのお金とアップグレードのウィッシュリストを持って戻ってきます。違いは、プロジェクト全体を見ると、「分析」、「設計」、「開発」、「保守」の間に明確な線が存在しないことです。それはすべて、レンガごとに、スプリントごとに行われます。所有者がプロジェクトを「完了」と呼びたい場合はいつでも可能です。また、支払い済みの「レンガ」の合計が「壁」に収まっています。当初の計画ほど高くない場合もありますが、しっかりと設置されており、仕事をこなし、後日最小の分解で追加できます。


申し訳ありませんが、「代わりに仕事を無駄にすることなく変更を可能にします」は、それがどれほど素晴らしいかを経営者に納得させるために使用される恐ろしい誤りです。予期しない変更に対応するためにシステムをリファクタリングおよび/または再設計しても、無駄な作業と見なされませんか?ウォーターフォールキャンプでは、アジャイルキャンプではないようです。また、顧客が完了するのに2週間かかるジョブのみが必要な場合は、どの方法論を使用しても問題ありません。人々は良い見積もりを出すことができます。顧客が本当に望んでいるのは、完全な製品を入手するまでの時間であり、アジャイルは他の推定方法よりも優れていません。
ダンク

1
また、あなたはそれを所有者がいつでも終わらせることができるという良いことのように聞こえます、そしてあなたが終わったことは彼が得るものです。IME、一般的に顧客は、Xドルが特定の機能セットを提供することを知りたいので、現金を使い果たします。顧客が大量の現金を費やし、期待する機能の半分しか得られなかったことは、メリットとは思えません。私は、彼らが彼らが働いていると呼ぶ何かを届けたかもしれないのに、発展途上企業側の失敗であると思います
。-ダンク

2
顧客が家を契約したが、屋根を付ける前にお金がなくなった場合はどうなりますか?アジャイルキャンプはまだそれを成功と呼びます。誰もそうしません。特に顧客。
ダンク

1
見積もりに関しては、チームはスプリントで何ができるかを見積もり、それを外挿してプロジェクト全体のタイムラインを作成します。この場合も、開発者とクライアントの両方を保護するのに役立ちます。「超えてはならない」金額や日付など、必要なものはすべて契約に入れることができます。それは交渉可能です。アジャイルは、制約が実現可能かどうかを非常に迅速に両側に示すことにより、依然として役立ちます。2週間後、お金に間に合わないようであれば、チームを追加したり、機能の範囲を限定したり、スケジュールを延長したりできます。
キース

1
ウォーターフォールSLDCで同じことをした場合はどうなりますか?開発が停止し、クライアントが深刻な機能ホールを持つコードベースを取得するか、お金/時間の不足が予想される場合、残りのスケジュールは残りの時間に詰め込まれます。それは常に品質を犠牲にし、そのようなプロジェクトの終わりに開発チームは揚げられます。また、従来のウォーターフォールでは開発が完了するまで製品が生産されないため、多くのコスト超過が発生します。これにより、顧客が「私が望んでいたことではない」と言うことができなくなります。
キース

1

すべての機能が実装され、すべてのバグが修正されると終了します。

期限が修正され、要件も修正された場合。その後、これは問題になりません。ただし、期限が修正されていても要件が変更されている場合は、プロジェクトを正常に進めるために行うべきことがあります。

固定価格パート1、何がそんなに悪いのですか?

固定価格パート2、アジャイルで修正!


すべてのバグがいつ修正されるかを知るのは困難です。
マーティンウィックマン

たぶん「修正する価値のある既知のバグがすべて修正されたとき」でしょうか?
ダン・レイ

@CharithJ、リンクが壊れています。それらはまだどこかで利用可能ですか?ありがとう。
TwainJ

1

アジャイル開発の背後にある大きな仮定は、どの方法論を使用しても、要件は常に変化しているということです。もちろん、要件文書を作成し、それを実行する計画を作成し、最後に配信することもできますが、要件は変わらなかったように見えるかもしれません。彼らはあなたの計画で変わっていないかもしれませんが、市場の変化と製品に対するあなたとあなたの顧客のより良い理解によって、顧客が望むものに関する要件は変わるでしょう。アジャイルがやって来て、これらの変更を固定スケジュールで隠さないプロセスを提案しますが、代わりにプロセスへの避けられない変更への対応を構築します。

完了したら、固定スケジュールの終了から、顧客が現在の状態でソフトウェアを出荷および販売できる十分なビジネス価値を提供できる場所に製品が移る時期に移行します。実行されることは、スケジュールを順守する方法ではなく、提供する価値に大きく結び付けられます。


1
アジャイルの支持者は、ウォーターフォールの世界では、契約が締結された後、開発者は姿を消し、製品がドアから出るまで二度と聞かれないという非常に間違った仮定をします。実際の動作では、かなりの数のチェックポイントと多くのレビューがあり、顧客は好きなだけ関与できます。指示や決定が気に入らない場合は、変更をリクエストできます。製品が納品されるまでに、顧客が関与することを選択した範囲で、顧客が望むものになっているはずです。アジャイルは多くのプロジェクトでこれを改善しません。
ダンク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.