バグ修正タスクのストーリーポイント:スクラムに適していますか?


50

ストーリーポイントをバグ修正タスクに割り当てる必要があるかどうかだけを考えています。私たちの問題追跡ソフトウェアであるJIRAには、バグタイプの問題のストーリーポイントフィールドがありません(StoryおよびEpic専用です)。

ストーリーポイントフィールドの該当する問題タイプにバグ問題タイプを追加する必要がありますか?長所と短所は何ですか?スクラムに適しているでしょうか?


1
参考までに、デフォルトではバグを指摘することはできませんが、Jiraでは変更できます
doub1ejack

回答:


55

理想的には、各反復後にソフトウェアにバグがなく、バグの修正が各スプリントの一部である必要があるため、ストーリーポイントを割り当てるときにバグの修正に必要な作業を考慮する必要があります(つまり、バグを生成する可能性が高いタスクは、より多くのストーリーポイントが割り当てられています)。

ただし、実際には、テストがどれほど厳格であっても、バグは展開後のすべての面で表面化します。その場合、バグの削除は別の変更であり、必要であれば機能です。このコンテキストでは、バグレポートと機能要求の間に根本的な違いはありません。どちらの場合も、アプリケーションは特定の動作を示し、ユーザー(または他の利害関係者)は変更を確認したいと思います。

ビジネスの観点から見ると、バグ修正と機能も実際には同じです。あなたがそれを行うか(シナリオB)、しないか(シナリオA)。どちらのシナリオにもコストとメリットが付加されており、まともなビジネスマンはそれらを比較検討し、利益を上げるものは何でも(ビジネス戦略に応じて長期的または短期的)得ます。

はい、すべての手段で、ストーリーポイントをバグに割り当てます。他にどのようにバグ対機能、およびバグに対するバグに優先順位を付けますか?両方の開発努力の何らかの尺度が必要であり、それは比較可能であるほうがよい。

これの最大の問題は、バグ修正の推定が難しいことが多いことです。実際の努力の90%以上は原因を見つけることにあります。見つかったら、正確な見積もりを出すことができますが、検索にかかる時間を判断することはほとんど不可能です。私は、バグの再現を試みるためにほとんどの時間を費やした、かなりの数のバグを見てきました。一方、バグの性質に応じて、推定を行う前に最小限の調査で検索を絞り込むことができます。


3
私は答えを書いている最中で、それはあなたのものとほとんど同じになりました。私はあなたの説明が好きです。
maple_shaft

13
私が持っている唯一の問題はあなたの4番目の通路です。ストーリーポイントに基づいて優先順位を付けません(少なくとも、私はそれを見たことがなく、かなり馬鹿げているようです)。追加されたビジネス価値に基づいて優先順位を付け、ストーリーポイントを使用して、タイムボックスイテレーションで完了できるストーリーの数を決定します。優先度の低いストーリーを初期の反復に取り入れることは完全に可能です。なぜなら、その上のストーリーは大きすぎて、予測された速度に収まらないからです。
トーマスオーエンズ

6
@ThomasOwens:OK、それを言い換えさせてください。私が意図したのは、変更のメリットとその開発努力を判断するにはストーリーポイントが必要だということです。もちろん、優先順位付けでは、努力と同じくらい重要な利点があります。
-tdammers

私はあなたの答えの一般的な概念が好きです。バグを個別のバックログに分割し、最後の2つの段落で説明していることを処理する比率(バグバックログに対する通常のバックログ)を作成することで、優先順位付け/ランク付けの問題を解決しました。最後の段落では、バグ修正に固有の問題について非常によく説明しています。また、バグのストーリーポイントの推定を行わない理由でもあります。私の答えでは、なぜあなたのソリューションのアプローチが失敗したのか、どうやってそれを抜け出したのかを拡大しました。
モルト

19

既に他の回答で指摘されているように、ポイントでバグを推定することは本質的に難しく、理想的な解決策は、スプリントが受け入れられた後に機能で見つかったバグを新しい機能と見なすことです

ただし、バグのポイント推定におけるこの難しさは、アジャイルPMソフトウェアパッケージがタスクおよびバグを時間単位で推定できる多くの理由の1つです。ポイント推定に熟練するには熟練と経験が必要だからです。多くのプロジェクトでは、速度を適切に決定する際に重大な問題が発生するため、多くのアジャイルプロジェクトはポイントを使用してどのストーリーがスプリントに入るかを決定しますが、バーンダウンチャートの計算には時間を使用します。

直観に反しているように見えますが、スプリントのコミットメントを決定する際に時間の見積もりが要因として使用されていない限り、管理は可能です。過剰なコミットメントは必然的に機能の欠落や不完全、または残業につながるため、時間の経過とともにすべての関係者がポイントの推定を改善することを余儀なくされ、その時点でタスクやバグの時間を推定することは意味のないメトリックになります。


私にとって、「時間」==「人間の努力」。ストーリーポイントが時間の範囲を表す場合、一見すると、ストーリーポイントの使用と時間の見積もりの​​使用の間に差はありません。しかし、さらに、概念的にも私自身の経験からも、時間推定を使用することは、非常に不正確にしか知られていない変数に高い精度の値を与えるため、すべての場合において逆効果です。
JBeck

19

あなたはいけません、バグの解決にポイントを与えます。バグは、開発者がストーリーを完了するためのポイントすでに獲得いるストーリーから発生するという事実を考慮してください。実際に最初にポイント獲得するべきではなかった場合、再びポイントを受け取るべきではありません。

バグ修正は、速度に悪影響を与えるはずです。そうでない場合、品質の低下は、影響を受けないか、さらには増加した速度で報われることになります!

おそらく便利なリンク:

http://www.infoq.com/news/2011/01/story-points-to-bugs


1
開発者がバグのあるコードを記述し、意味のない速度を得るためのポジティブな環境を作成することについてのあなたの議論を理解していますが、スプリントが受け入れられた後に機能で見つかったバグは、テスターが受け入れられる前にこれらのバグをキャッチしないことでミスをしたことに注意してください。さらに、開発者がスプリントで予定よりもはるかに多くのユーザーストーリーを完了している場合、ユーザーストーリーを完成させることは最初から競合するべきではありません。このメトリックを使用すると、開発者は常に過大評価するだけで見栄えが良くなります。
maple_shaft

4
速度(スプリントごとのストーリーポイントで測定)は、チームがスプリントで実装できるものを測定します。すべての製品所有者は、チームがどれだけのビジネス価値を生み出しているかを追跡し、より関心を持っていると確信しています。バグ修正ストーリーポイントを与えることでビジネス価値が膨らむことはありません。
-Buhb

4
@buhbストーリーポイントは、ビジネス価値については何も語っていません。5ポイントのストーリーには100のビジネス価値があります。100ポイントのストーリーには1つのビジネス価値があります。ビジネス価値ではなく努力を表しています。
ジョッペ

3
@Tungano:その通り。そのため、バグ修正にポイントを割り当てても、バグのあるソフトウェアを作成する強い動機が与えられません。
-Buhb

4
バグ修正を含めることでベロシティが増大すると、別の問題が発生します。ベロシティを使用して未来に投影する能力が失われます。Velocityは、チームが実際にどれだけの作業を行ったかの尺度ではなく、チームが設定した作業をどれだけ迅速に達成できるかの尺度である必要があります。
クリスピットマン

8

バグをユーザーストーリーとして扱い、いくつかのポイントを割り当てることをお勧めします。ユーザーストーリーでよくあるように、「Xとして、ZになるようにYにしたい」という形式で必ずしも書く必要はありません。 Z 'は予想される動作です」。

これの利点は、新しい機能のリクエストと並行して、バグ修正に優先順位を付けることができることです。真実は、バグを修正するよりも新しい機能の方が重要な場合があるということです。ただし、必要な作業のサイズを適切に調整することもできるため、必要な作業をスプリントに合わせることができます。

バグを修正するために必要な労力を見積もることが難しい場合があることに留意してください。相互に作用する複数のコンポーネントが関係する可能性があり、誰かがシステムの大部分の相互作用に精通するか、複数の人が修正に取り組む必要があります。


5

ストーリーの推定は、時間とともにチームがストーリーを解決する経験を積むという概念に基づいています。これにより、精度が向上し、速度を確立してチームの速度を測定できます。将来のスプリントの信頼できる予後を確立するための完璧な方法論。

バグは、ソフトウェア開発会社の現実です。ストーリーの開発中にバグをすべてキャッチする必要があることに同意しますが、これは常に達成できないことを受け入れ、すべてのチームが計画すべきものであるべきです。プロセスがチームを支配するべきであると頑固に考えるのではなく、逆の方向にすべきです。

もちろん、バグやストーリー、ビジネス側からは、チームが何を扱っているかは関係ありません。どちらも製品所有者に同量の価値を生み出すことができます。

私たちのチームでは、バグを推定するためのいくつかの手法を試しました。

  1. 完全に未知のバグの推定
  2. すでに分析されたバグのみを推定する
  3. バグ修正のために時間を割り当て、バグを推定するのではなく、ビジネス価値のみに基づいてランク付けする

1.を使用すると、誤って失敗しました。ほとんどのバグについて、時間の90%がバグ分析に費やされていることがわかりました。その後、バグ修正はストーリーと同じ方法で推定できます。バグをスプリントに計画することにより、未知のスコープがストーリー解決に影響を与えるというミスを犯しました。

90/10比率(バグ修正に対する分析)推定手法オプション2に基づくと、スプリント計画でカバーされたものではない分析を計画する必要がありました(オプション1から学習しましたが、実際の解決策はありませんでした)分析されたバグの対処方法)。その結果、スプリントは計画されたアイテムに集中していたため、バグ分析は行われませんでした。チームには、バックログのバグに集中する時間がありませんでした。だから最終的に彼らもやらなかった。

不確実性を受け入れることで、オプション3を決定しました。製品のバックログを、ストーリーポイントとバグバックログを使用してチームが推定できる通常のストーリー/タスクパーツに分割しました。バグバックログでは、製品の所有者はビジネス価値と非常に大まかなチーム判断に基づいてバグをランク付けします。チームは、スプリント中に、バグに集中するために費やすことができる時間を割り当てることができます。とにかくそれを計画することは不可能だったため、製品所有者は正確な結果を知りません。バグバックログと通常のバックログの比率は、各バックログの現在のステータスと、コンテンツの重要性とビジネス価値に応じて、スプリントごとに調整できます。

不確実性を取り除くことで、チームは再び解放されました。スプリントは未知のバグによって侵害されませんでした。バグを別のバックログに分離することで、チームの通常のスプリントへの集中力を高め、重要なビジネス価値を含むバグを完成させました。

ストーリーポイントがあなたに適しているかどうかによって異なります。最初にストーリーポイントを使用してバグを推定しようとします。それが失敗した場合、私のオプション3を試してください。これにより、私たち(30スプリント以上)のチームは、大きなビジネス価値を含む古いバグに再び焦点を合わせました。また、チームが単に見積もることができないものを提供しようとすることから解放されました。バグ修正によりビジネス価値の大きな部分(バグとストーリーの比率に基づく)提供しながら、現実に近づき、スプリントを再び成功させた未知の要素を受け入れていました。最近使用した比率は50/50でした。


4

ストーリーポイントをバグに割り当てる際の一番の答えには同意しません。ストーリーポイントは、新しい価値を提供するためのものです。製品の価値と価値のないアイテムにポイントを割り当てる場合は、時間を見積もって追跡することもできます。

バグは昨日やったことのオーバーヘッドであり、製品の完成速度を示すものではなく、新しい製品の価値も生み出しません(考えてみてください)。バグは、割り込みや、毎週対処する必要がある他のすべてのカウパイのようなものです。ストーリーポイントの全体的な考え方は、製品(または機能セット)を提供する時期を追跡/推定することです。ストーリーポイントはarbitrary意的であり、それが評価からすべての非価値オーバーヘッドを除去する方法です。一般的に、価値のない仕事は週ごとに一定であるため、チームの速度に組み込まれています。この価値のない作業を削除または削減すると、チームは加速します。

別の言い方をすれば、なぜバグのポイントを追跡するのでしょうか?それで、一日の終わりに、各メンバーがどれだけの「仕事」をしたかを知ることができますか?それを停止する!悪いマネージャー!:)プレーヤーではなくチームを測定します。1人の人が体重を落としていない場合は、自分で管理するようにチームを奨励します。はるかに効果的です。ストーリーポイントアイテムを行うことで個人の気分が良くなることはありませんが、スプリントの最後にコミットメントを行うと、チーム全体が気分が良くなるはずです。スポーツでは、目標はチームにとっても個人にとっても良いものですか?個人が自分のためにプレーする場合、チームは長期的に負けます。

最終的には、ポイントをまったく使用しないことを望みます。推定は、実際の作業から奪われる時間です。チームが最大カイに達したとき、彼らはポイントをまったく使用せず、スプリントに引き込むことができるアイテムの数を正確に知っています。彼らは、見積もりがプロセスの無駄である作業単位を分割する技術を習得しました。


3

一部のタスクは推定可能ですが、一部はそうではありません。 推定できないものについては、予算を使用します。

欠陥の修正は、未知のコンポーネントがいくつかあるため、容易に推定できるタスクではありません。欠陥の原因は何ですか?原因を理解したら、どのように修正できますか?この変更はシステムの他の部分にどのような影響を与えますか?この欠陥の修正を注入した新しい欠陥はいくつありますか?

欠陥の原因は、ソフトウェアライフサイクルのどの時点からでも発生する可能性があることに注意してください-誤解または誤解された要件、貧弱な設計または誤った前提、貧弱なコーディング、不適切なテスト、現在のリリースから学んだ情報に基づく問題に関する新しい知識...

予算の作成は、バグ修正タスクのいくつかの異なる方法で実行できます。ここに、私が効果的に使用したアイデアをいくつか示します。

  • 過去のデータ(以前のイテレーションからのデータなど)を使用して、バグ修正のためにどれだけの時間を確保するかを理解してください。
  • バックログにバグ修正の「ブロック」(たとえば5ポイントまたは20時間)を入れ、顧客にストーリーの代わりにこれを選択させます。
  • チームの各メンバーが各反復で欠陥を修正するために指定された時間を費やす必要があります。

目標は、割り当てられた予算内でできるだけ多くの欠陥を修正することです。報告された欠陥に優先順位を付けるための顧客戦略について話し合います。たとえば、重大度、優先度の順に欠陥を並べ替えますか?完全優先?最初に「ぶら下がっている果物」を攻撃する必要がありますか?UIのバグが最初ですか?

また、バグを修正しても価値はありません。欠陥を修正することは無駄の一種です。この機能で既に価値を獲得しているので、バグを修正するための「ボーナスポイント」を取得しないでください。

予算があると、計画に役立ちますが、Velocityの正確な全体像が得られます。バグ修正のために特定の数のポイントを割り当て、履歴データに基づいておおよその時間を割り当て、予算内でできるだけ多くのバグを押しつぶします!


2

ストーリーやバグ、雑用、それぞれのポイントに焦点を当てるのではなく、顧客に機能を提供することに焦点を当てる方が良いと思います。

顧客はソフトウェアが機能することを期待し、これらがビジネスを前進させるため、開発、拡張、および新機能に真の価値を与えるだけです。

バグの修正は、重要な場合もありますが、ビジネスを新しい分野や新しい顧客に押しやることはありません(接線上および最終的にはそうかもしれませんが、経営陣が測定しているのはすぐではありません)。

そのため、ポイントは、速度の高い視点と、同様にスコア付けされたストーリーに対して過去に何ポイントが行われたかという観点から最もよく表示されます。

これにより、今週のストーリーを完成させ、頻繁にストーリーが完成していないことを頻繁に発見する必要性を押し進めるのではなく、実績の履歴による管理につながる可能性があります。ただし、事前の制御が失われ、これが必要とする信頼が高まると、何人かのマネージャーが恐怖の扉に向かって走ります。

私はPivotal Tracker(私はJIRA、Trak、Trelloなども使用しています)を使用しますが、Pivo​​tal Trackerは雑用やバグのポイントも行いません。これは、JIRAでもあなた自身が見ているように、上記と同じ理由で行われています。

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