アジャイル、ウォーターフォール、要件の変更


10

要件の変更によって「アジャイル」と定義されたプロジェクトのこの問題が発生したことはありますか?私は4週間のSprintで実行される開発プロジェクトに取り組んでいますが、これらのSprintの間には常に変更があります。それでもアジャイルとして定義されていますか?私はそれがサブアジャイルプロセスのようなものだと感じています-アジャイルプロセスの要件は、スプリントの始めに定義され、その終わりに向かってレビューされるべきです。私はこれで正しいですか?この経験を教えてください。


「要件の変更」は大まかな用語です。変更されたのは、承認された要件について顧客が実際に考えを変えたからですか?その変化のきっかけは何ですか?これが引き続き発生する場合は、要件の収集方法を再検討する必要があります。適切な要件収集の欠如に対応できるSE方法論はありません。
NoChance

@Emmad要件の変更は、ユーザーが特定の方法でユーザビリティを改善できると感じたUAT中に発生します。これにより、製造前に問題が蓄積します。これは確かにアジャイルではありません。
Aravind A

@アラビンドA:UATはスプリントの最後に起こりますね。次に、UAT中に発生する新しいアイデア/変更は通常、次のスプリントのストーリーになります(スプリントを使用する場合)。
sleske 2011

おそらく、@ sleskeが提案していることでうまくいくかもしれませんが、ユーザーが特別な要件を持っている場合は、使いやすさを事前にプロトタイプ化することもできます。リソースにバインドされたプロジェクトでは、ユーザーの野心を制御する必要がある場合があります。
NoChance

回答:


9

アジャイルプロセスの要件は、スプリントの開始時に定義し、そのスプリントに向けて検討する必要があります。私はこれで正しいですか?

いいえ、これはプロジェクトの性質(およびプロセス)によって異なります。

一部のアジャイル開発モデルでは、スプリント中に要件を修正する必要があり、次のスプリントに対してのみ変更する必要があります(顕著な例はスクラムです)。

ただし、ほとんどの場合、変更が発生する可能性のあるプロセスもあります(変更が原因で生じる遅延と追加の作業を顧客が受け入れる限り)。これらのワークフローの管理にはかんばんがよく使用されます(かんばんはスクラムと組み合わせることもできます)。

どのモデルに従うかは、各プロジェクトの詳細によって異なります。

そのため、はい、お客様が要件を常に変更する可能性が必要だと感じた場合、アジャイルプロセスでこれに対応できます。ただし、お客様は、絶え間ない変更の結果を認識し、プロジェクトの速度が低下することを理解する必要があります。

これは、アジャイルマニフェストの原則、つまり「プロセスとツールに対する個人と相互作用」、および「計画に従うことによる変更への対応」に要約されます。


プロセスを明らかにアジャイルにしませんか?つまり、アジリティはどこまで行くことができますか?開発者が初めて要件を満たした場合、次回は必ず要求があります。これは、コードの品質に影響を与える多くの問題の1つだと思います。
Aravind A 2011

@AravindAコードの品質は別の問題である必要があり、コードが変更される回数に関係なく、チームは常に同じコード品質基準に焦点を当てる必要があります。実際、要件とコードは常に変化しているため、コードの品質はより重要です。
maple_shaft

2
@maple_shaftは正しいです-品質は(少なくともほとんど)要件の変更に対して直交しています。お願い:良いコードを書き始めます。完了したら、新しい要求を取得するか、半分完了して変更を取得したら、適切なコードを(再)書き始めます。 現在のスケジュール/コミットメントなどへの影響を強調した
sdg 2011

システムの設計方法に大きな影響を与える要件の変更は、大幅な遅延または品質の低下につながります。そのため、「突然の」外観のリスクを軽減するために、古き良き滝のような分析(反復も可能)を行う必要があります。
MaR

@sles説明ありがとうございます。もうわかるよ。アジャイルについてもっと知る必要があると思います。
Aravind A

12

私はあなたが尋ねる必要がある質問は次のとおりだと思います:なぜあなたは要件の変更によってオーバーランするのですか?一般的な原因は次のとおりです。

  • 開発者はエンドユーザーと(十分)接触していないため、ユーザーのニーズを理解できません。代わりに、要件を抽象的なルービックキューブのように扱います-彼らは自分の精神を理解しようとさえせずに要件の文字に従います
  • 誰か(たとえば、マーケティングの担当者)が、エンドユーザーには意味をなさない要件を追加しています(たとえば、パンフレットではいい音がします)。したがって、「実際の」要件と「他の」要件との間には、開発者の背中をめぐって戦う戦いがあります。
  • プロジェクトの範囲は定義されていません(とにかく、ワードプロセッサを実装している場合は、給与計算を行う小さなモジュールを追加するだけではどうでしょうか。ワードプロセッサでC ++コードもコンパイルできるようにしますか?」)

根本的な問題が何であれ、それを修正する必要があります。「アジャイル」(またはその他の方法論)の層の下で溺死させることはできません。


@nikeありがとう。これはまさに私が思ったことです。3番目の点は私のシナリオに当てはまります。一部のお客様は、「アジャイル」の作業を利用して、作業をより迅速に完了するための特効薬だと考えています。
Aravind A 2011

9

少なくともスクラムでは、最近の管理タイプで最も人気のあるアジャイルプロセスのようですが、スプリントの範囲は固定されています。スプリント中にスプリントバックログが変化している場合、それはスクラムではなく、混乱です。スプリントバックログは、スプリントの開始時に作成し、スプリントの終了時まで固定したままにする必要があります(その時点で、次のスプリント用に新しいスプリントバックログを作成します)。

スプリント中にプロダクトバックログが変化しても、大したことではありません。変更は、次のスプリントに対する他の要件と同様に、優先順位が付けられ、推定され、選択された新しい作業になります。要件が大きく変化し、プロダクトオーナーが定期的にスプリントをキャンセルする必要がある場合は、大文字の「T」のトラブルが発生します。

多分あなたはより短いスプリントが必要ですか?


短いスプリントが必要な場合は+1。2週間に戻して、効果があるかどうかを確認します。
John

1
実際、特に要件の不安定さに苦しんでいるプロジェクトでは、スプリントにとって4週間はかなり長いように聞こえます。
Carson63000

7

プログラマーの健全性のためには、リビジョン/スプリント中に要件が変更されないことが最善です。

あなたの状況では、2つの明白なオプションがあります:

  1. より短いスプリント
  2. リビジョン/スプリント全体がキャンセルされて再計画されない限り、リビジョン/スプリント中に要件を変更しないことにお客様に同意してもらいます。

私は両方を強くお勧めます。


3

主な問題は、あなたがスクラムを使用していると信じているが、使っていないということです。特にあなたの製品の所有者はそれに従っていません。スクラムではスプリントは安全なゾーンであり、現在のスプリントがキャンセルされない限り、コミットされたユーザーストーリーに変更を加えることはできません。これを実施するのはスクラムマスターの責任です。これが環境で機能しない場合は、プロセスの問題です。つまり、スクラムを使用していません。

(スクラムをフォローしたい場合)実行できる最も簡単な変更は、スプリントを短くすることです(たとえば、1週間)。スクラムの初期には4週間のスプリントがオプションと見なされていましたが、今日の一般的なものは1〜2週間で、3週間が上限と見なされています。4週間は環境の変化に非常に長い時間です。

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