これは複雑なトピックであり、トピックについて頻繁に議論が行われています。私はこれに関する「標準的な」意見の概念が好きではありません。価値のあるさまざまな意見があります。しかし、アプローチを導くべき価値、原則、および実践をサポートするものがあります。
以下は、10年以上にわたってスクラムチームと協力してきた私自身の意見に基づいています。しかし、それは私の意見です。
予測方法としてのストーリーポイントストーリーポイントの本来の目的は、チームが一定期間に何を完了することができるかを予測する目的で、労力を見積もる簡単な方法を見つけることでした。一部の「著名人」は、ポイントは長期的な範囲を予測するためだけに使用されており(たとえば、リリースにわたって)、スプリントレベルで容量を決定するためではないことを述べています。また、コンセプトは、チームが履歴値に基づいて「相対的なサイジング」を適用するというものです(エフォートXはエフォートBに似ており、これは3ポイントでした)。これにより、推定プロセスが高速化されるため、チームは将来の作業を詳細な作業パッケージに分解し、すべてのタスクに時間を費やす必要がなくなります。優秀なチームは、すべてのテクニカルワーカーを同様のスキルレベルの非常に有能なメンバーに成長させるよう努めています。(この概念については、ポイント#4でさらに詳しく説明します)これが達成されると、個々のスキルレベルは実際にはサイジングの変数になりません。しかし、その目標を達成するには、通常かなり長い時間と協調した努力が必要です。SO ...そこに着く前に何をしますか?
タスク時間はスプリント容量を決定します:ポイントは長期予測に使用されると述べている同じ「著名人」によれば、ポイントではなくタスク時間を使用してスプリント容量を決定することも提案します。私の意見では、それは結構ですが、コーチチームを「高性能」に支援したとき、彼らのレベルアウトされたスキルは、ストーリーポイントのみを使用してスプリントで何を完了することができるかを正確に判断できるレベルまで平均化されました。繰り返しますが、それは私たちが目指している目標ですが、新しいチームはその準備ができていません。したがって、1つのスプリントで、12タスク時間の労力を持つ2ポイントのストーリーと、25時間の労力を持つ別のストーリーを見つけることができます。それで、あなたは何をしますか?私が「アジャイル純粋主義者」と呼ぶ一部の人々は、ストーリーのサイズ(ポイント単位)は期間にとらわれないようにすべきだと述べるでしょう。他は同意しません。項目#3のロジックを読んで、あなたの考えを見てください。
- コンセンサスによるストーリーポインティング:ボリューム、未知数、複雑さ、知識の適用
したがって、チームは作業を検討し、努力レベルのプロキシとなるポイントに同意する必要があります。正しい?すべてのスキルが同等であると仮定すると、コンセンサスに到達しやすくなります。しかし、多くの場合、チームにはJavaの第一人者、Javaがそれほど優れていない人(C#または.NetまたはCobolの人でJavaを学んでいる人)がいます。したがって、BobのタスクXは非常に簡単です。ジェーンにとっては、もっと難しいです。
アジャイルチームは、集合的なコードの所有権、および専門知識の成長/拡大を促進しようとします。そのため、通常は、専門知識に基づいてストーリーを人々に割り当てることはありません。チームが共同でストーリーに取り組み、一緒に学習することを好みます。これは、「スピードを落としてスピードを落とす」という概念に沿ったものです。JaneにJavaの経験を与えるために時間をかけると、最初はスピードが落ちますが、後に有能なJava開発者が生まれます。実際、Javaの専門家が1人だけで、誰もが自分の専門分野で作業している場合、複数の潜在的な「失敗のポイント」がある状況を作り出しています。仕事の90%がJavaであるが、ボブ(私たちのJavaの専門家)が病気または休暇中の場合、スプリントで何が起こりますか?スキルを拡張することにより、潜在的なボトルネックを排除し、リスクを軽減します。それを念頭に置いて:チームがストーリーを見るとき、サイジングの際にいくつかの概念を念頭に置いておく必要があります。これを覚えて頭字語VUCKを考えることができます。
ボリューム:一部の作業は非常に単純ですが、大量の繰り返しタスクが必要です。(50以上のテーブルをコピーして再フォーマットする必要がある人がいましたが、それは簡単だから1ポイントだったと言っていました。移動および最適化されます。したがって、作業量に応じてポイントを再調整する必要がありました)
未知数:何をすべきかを知っていると思うこともありますが、いくつかの未知数も識別します。これらはリスクを表しています。これは、解決、再設計、または別の解決策を試さなければならない予期しない問題に遭遇する可能性があることを意味します。
複雑さ:これは非常に明白です。一部のソリューションは技術的に複雑です。私たちは何をすべきかを正確に知っていますが、技術的な専門知識が必要です。複雑さもある程度のリスクを意味しますよね?だから、私たち全員が平等なスキルを持っているとしても、技術的な複雑さは予期せぬ課題に直面する可能性があることを意味します。したがって、このストーリーをより大きくすることができます。
知識:解決策を本当に知っていますか?顧客が望むソリューションについて完全に明確でない場合があり、私たちは少し実験しています。または、おそらく誰もこのソリューションを実装したことがないため(新しいテクノロジーはこれまで使用されたことがない)、私たちは知らないことを知りません。
私の意見では、これらの考慮事項のすべてが実際には延長期間のプロキシです。簡単な話、たくさんのボリューム?時間がかかるか、ストーリーを分割する必要があります。不明ですか?リスク、研究、実験を追加しました。時間がかかるか、ストーリーを分割する必要があります。繁雑?追加のリスク、バグの修正、再設計などが必要になるため、時間がかかる場合があります。必要な知識があるかどうかわかりませんか?追加のリスクがあるため、実験が必要な場合があるなど、時間がかかる場合があります...
これがどこに行くのか見てください?そのため、ストーリーポイントの概念は、推定する際に期間について考えることを思いとどまらせますが、一方で、4時間で完了することができる1ポイントストーリーと、単純だが時間がかかる別の1ポイントストーリーを持つことは非論理的です2週間。
- パフォーマンスの高いチームはサイロとボトルネックを排除します:チームはすべてのメンバーをレベルアップしようとするため、経験の浅いメンバーが新しい課題に取り組むか、チームとして改善するために知識を共有するためにペアコードを作成します。前述したように、チームが真の高パフォーマンスレベルに到達する場合、これは必須です。
ジェーンがそのJavaの努力を志願し、それがボブがそれを行うことになった場合、同じ努力の2倍または3倍の時間になるとしたら、どうしますか?時間が経つにつれて、私のチームは、作業を行っている人々の努力レベル(LOE)/ VUCKに基づいてストーリーのサイズを決定しました。チームの第一人者であるボブが「1だ」と言うのは意味がありません。ジェーンにとっては簡単ではなく、完了するのに1週間かかり、さらにペアコーディングとコードレビューにボブの時間が必要です。したがって、実際のLOEを反映するためにこれらのポイントを増やしました。似たような話が次に来たとき、ジェーンにとって8だったものは以前5になりました。最終的に、誰もが簡単な3であることに同意しました。その時点で、チームとして成長していることがわかりました。