Documentation for GreenHopper 6.2.x. Documentation for earlier versions of GreenHopper is [available too].

(info) This page only applies to Scrum boards.

バックログのストーリーを見積もることによって、バックログの各項目を完遂するのにかかる時間を予測するのに役立ちます。見積に関するさらなる考察については、下記を参照してください。

課題の見積もり

初期見積を入力する

スプリントを開始する前に、課題ごとに次の操作を行います。

  1. Click Plan to go to Plan mode.
  2. To enter an Estimate for each issue, click the issue key to display the issue details at the right of the screen, then type in the Estimate field. (Note that the Estimate field is editable when an issue is in Plan mode, but is not editable once the sprint has started and the issue is in Work mode.)

Screenshot: Estimating an issue in Plan mode

(info) The type of units used by the 'Estimate' field (e.g. hours) is affected by your Estimation Statistic — see Configuring Estimation and Tracking.

残余見積を入力する

課題に取り組む過程で、残余見積を次の手順で調整します。

  1. Click Work to go to Work mode.
  2. カードの右側の残余フィールドをクリックし、各課題の残余見積を入力します。 

Screenshot: Estimating an issue in Work mode

(info) The type of units used by the 'Remaining' field (e.g. hours) is affected by your Tracking Statistic — see Configuring Estimation and Tracking.

 

見積について

Note that this discussion refers to the best practices we've implemented as the main path in GreenHopper — you can choose not to use this approach if you feel it's really not suitable. 

見積は、トラッキングとは別もの

スクラムでは、見積とトラッキングは区別されます。見積は、主としてバックログの主要項目( PBI 、通常ストーリー)に対して行われるもので、バックログの各部分を達成するのにかかる時間を算定するのに使用されます。トラッキングは、スプリント内のすべてのストーリーが間違いなく達成されるように、スプリントの進捗状況をモニタリングすることをいいます。トラッキングは、多くの場合、ストーリーをタスクに分割し、プランミーティングで見積時間を割り当てた後、スプリント中にバーンダウンで残余時間をモニタリングすることによって実行されます。 

見積は、ベロシティがすべて

PBI(プライマリバックログアイテム)について見積を出す主な目的は、その見積情報を使って、バックログの各部分を達成するのにかかる時間を算定することです。

従来の開発環境では、チームは「工数」で項目の見積を出し、その工数は精度が高いものと想定されます。そして、プロジェクトのバックログで工数を合計して、チームの人数と週時間数で割り、完了予想日を割り出します。もちろん、こうした見積は、多くの場合、見積の際に(過大または過小な見積に傾く)チームが持つ自然な傾向や、予期しない中断、作業期間中のチームのパフォーマンスの改善などを考慮に入れていないため、非常に精度が低いことが判明しました。見積の精度の低さに加えて、見積の精度を「何とかして」高くしようとして消費した時間コストの大きさが影響し、「工数」によるアプローチは、不可能ではないにしても、効果を発揮するのが難しくなっています。 

そのため、スクラムの世界では、ほとんどのチームは見積の精度を高めようとしていません。その代わりに、信頼できるベロシティを実現することを目指しています。ベロシティは、チームがスプリントごとに平均して完了するユニット数を見積もる尺度です。最初の数スプリントを完了すると、ほとんどのチームはかなり安定したベロシティを実現します。ベロシティとバックログの PBI に対する見積をもってすれば、バックログの各部分を完了するのに要する時間を予測することは、どのチームにも期待できることです。 

重要なのは、ベロシティは見積の単位が何であるかに関係なく、スプリントごとにかなり予測可能になることです。たとえば、チームは「理想時間」を用いた見積を選択できますが、その時間は経過時間と何らかの密接な関係にある必要もなく、そのように期待されるわけでもありません。あるチームが各スプリントで 120 時間の「工数」をこなす能力を持ちながら、ベロシティが 60 時間であるとしても、それは問題ではありません。なぜなら、そうした差の有無にかかわらず、 60 時間というベロシティは、バックログの各部分を完了するのに要するスプリント数を見積もるのに使用でき、したがって経過時間を見積もるのに使用できるからです。すると、多くの人は「残りの 60 時間」はどうなったのかと考え、チームの生産性に何か問題があるのではとほのめかし始めます。しかし、生産性うんぬんはこの場合何の関係もありません。チームの見積は、項目の達成がどれほど難しいかというチームの見方を示しているだけであり、チームの自然な行動傾向(たとえば、過大または過小見積傾向)にも、組織の経費などにも常に影響を受けています。計画の観点からすると、重要なのはベロシティだけです。 

現在ほとんどのチームは、時間に関係しないという理由から、見積の単位にストーリーポイント(他のストーリーと比較した場合の複雑さを測定する任意の数)を選択しています。ストーリーポイントが時間との精神的なつながりを断っていることは明らかです。 

精度の低い見積であっても、どれも同様に精度が低い限り、問題はない

チームが同じ程度の精度の高さでバックログの各項目を見積もっていさえすれば、ベロシティはやがて安定した状態に達します。実際には、各項目がまったく同じ程度の精度の低さで見積もられるべきだと言った方がたぶんよいのでしょう。当たり前のことを繰り返して述べているかもしれませんが、ベロシティが目指しているのは、特によく理解されているわけではないストーリーのバックログを見て、それを完了するのにどれだけのスプリントが必要かを理解することです。このことから、バックログにある見積がすべて同じ程度に不確実であることが求められます。 

直感に反した示唆の一つに、いったんチームが各項目に対する見積を出したら、その項目について初期見積が間違っていたと感じさせる新たな情報を発見した場合でも、見積を変更するべきではないという考えがあります。チームが先に進んだ段階で見積を更新する場合、この「新たな情報の発見」は定期的に発生することとなり、その結果、バックログには高精度の項目がある一方、大半はそれほど精度が高くないといった状況をもたらします。高精度な見積が占める割合が高いスプリントと、高精度な見積が占める割合が低いスプリントとでは、完了させるユニット数に違いが出るため、このような状況はベロシティに悪影響を与えます。その結果、ベロシティはその主な目的、つまり、バックログ内のそれほどよく理解されていないストーリーの 1 セットを完了するのに要するスプリント数を見積もる、という目的には使用できなくなります。そのため、はるか先の将来の時点で、あまりよく理解されていない作業を一定数ユニット分完了する能力をチームのベロシティで表すためには、初期見積を使用することが重要なのです。

しかし、チームが見積を誤っていたことに気づいた場合はどうなのか?

次のようなシナリオを考えてみましょう。

  • 課題 X に対する初期見積は 5 日です。
  • 課題の見積はあまりにも楽観的であり、次のスプリントが計画される前に、その課題に実際に必要なのは 15 日だと気づきます。 

ある人は、実際は 15 日かかる作業なのに、 5 日の作業だと想定する作業を次のスプリントに入れてしまうわけだから、初期見積を使用するのはスプリントの成功を危うくすると異議を唱えます。 

しかし、 5 日と精度の低い見積をすることがまれだとは考えにくく、実際、見積には常に間違いがあるものです。(ごくわずかの誤りもあれば、大幅な誤りもあります。)多くの場合、こうした見積の誤りはスプリントの前ではなく、むしろスプリントが開始された後に発見されます。チームがバックログ全体で同じ方法で見積もってさえいれば、時間がたつうちにうまく機能するようになります。たとえば、常に過小評価している場合、 4 人のチームで 10 日分と見積もったスプリントに対し、実際にはチームの見積ユニットの 20 日分を投入せざるをえないと気づくことになります。チームが安定したベロシティを確立している場合は、このような発見があっても何の影響も与えません。なぜなら、計画の観点からすると、このままでも今後のスプリントでどれだけの作業を処理できるか確実に見積もることができるからです。

しかし、それはスプリントの取り組みを損なうことにならないだろうか? 

スプリントを開始する時が来ると、チームが過去に完了させた量に基づいて、これから完了に向けて現実的に取り組むバックログの項目に対する指標として、ベロシティを使うことができます。しかし、完了した作業に関する情報、あるいは作業がどれほど困難であるかについての情報が初期見積に含まれていないならば、どうしてそのような方法が正しいと言えるのかと、ただちに疑問を投げかける人たちが多くいるものです。 

例として、次のシナリオを検討してみましょう。 

  • ある課題に対する初期見積は 10 日です。
  • チームは、現在のスプリントでこの課題に 5 日かけています。
  • チームは、プロジェクト内の別の場所にひどいバグを発見し、課題 X を予定通り完了させるよりも、そのバグを現在のスプリントで修正することの方がはるかに重要だと判断しました。
  • スプリントが終了し、課題はバックログに戻ります。

次のスプリントでは、チームは課題の見積を 5 日に更新し、その前提で課題をスプリントに入れるかどうか判断したくなるものです。これは、チームが課題の初期見積である 10 日を使用する場合、次のスプリントでは目一杯作業を入れない可能性があることを意味します。しかし、前に課題が完了しなかったのは、計画外の​​作業によるものです。今後、おそらく次のスプリントであっても、これが再び起こらないと仮定するのは現実的ではありません。したがって、確実性がない状況で使用するには 10 日は現実的な数字です。その結果、発生する可能性がある予定外の作業のコストは、最終的に初期見積に計上されていることになります。次のスプリントでの作業量が十分でないことが判明した場合でも、チームはスプリントに作業をさらに入れ込んで修正できます。 

同じ例で、この課題がスプリントの唯一の課題であり、2回目のスプリントでも唯一の課題であると考えてみましょう。課題が 2 回目のスプリントで完了し、 1 回目の残余見積を使用するとした場合、ベロシティは( 0 日 + 5 日)/ 2 = 2.5 日になりますが、チームが今後のスプリントでこれよりも多くの作業を完了できるのは明らかです。初期見積を使用する場合は、ベロシティは次のようになります( 0 日 + 10 日)/ 2 = 5 日。初期見積を使用することが、予定外の作業が生じて、すべてのスプリントに 10 日すべてを投入できなくなる可能性があるという事実の説明になっています。また、計画外の作業がすべてのスプリントでは起こるわけではないという事実の現実的な説明にもなっています。 

サブタスクを見積もって、その見積をベロシティと取り組みにロールアップしないのはなぜか?

多くのチームでは、スプリントを開始する直前にストーリーをサブタスクに分割し、ストーリーをトラッキングできるようにしています。このことから浮かび上がってくるのが、スプリントでどの課題に取り組むべきか決定する方法として(そして潜在的にベロシティ用としても)、サブタスクを見積もった合計を使用する可能性です。 

先に述べたように、トラッキングは見積やベロシティとはまったく別のプロセスです。サブタスクに対する見積は、本来ストーリーに対して行う見積よりも明らかに高精度です。サブタスクの見積を使用すれば、ベロシティは高い精度と低い精度の両方の見通しを扱うことになり、ストーリーだけが低精度の見積を持つバックログ内で、ベロシティを使用してしっかりとした見通しを立てることができなくなります。さらに、バックログの一番上に近い項目だけがタスクに分割されるため、タスクの見積をベロシティに使用した場合、ベロシティの値によって予測できるのは、タスクに分割された直近のストーリーまでのバックログを完了する時間だけになります。

また、サブタスクのロールアップは、ベロシティの値とは異なり、予定外の仕事や中断が要する経費を考慮に入れていないため、スプリントの取り組みを決定するために使用するのは危険です。 

結論

多くの業界のリーダーは、あらゆる種類の時間見積から脱却しつつあります。このことが理にかなっているのは、答えを求められる主な問いが、「このスプリントを完了するために取り組める作業量は現実的に見てどれくらいか」とか、「バックログのこの部分を達成するのにどれくらいかかるか」といったものだからです。初期見積をもとにしたストーリーポイントによる方法であれば、チームが時間で見積もるように求められた時に感じる「精度」に関する不安を抱くこともなく、こうした質問に対する答えを出すことができます。 

The GreenHopper team itself uses the approach described in this article and has established a reliable velocity that we have used to plan months in advance, even when new work has been encountered during those months. 

私たちはこの方法を推奨します。それは、この方法が直感に反していることがある一方で、パワフルで高速かつ簡単だからです。 

All of that said, one of the key precepts of Agile is finding the way that works for you. So GreenHopper does support the alternatives described above including the use of remaining estimates for sprint commitment, hours for estimation and hour estimates on sub-tasks.

 

16 Comments

  1. Anonymous

    Hello!

    We're using Greenhopper 6.0.2-rc1, and here's the problem: during Planning we cannot see "Remaining" field as shown in the documentation above. That is what it look like for us:

    Can you please tell what shall be configured, or is it a problem with 6.0.2 version?

    Thanks!

  2. Anonymous

    How do I indicate my team size in Greenhopper so that i get a realistic idea of when work may be completed?

     

  3. Markus Jevring

    I'm using Greenhopper 6.0.8 with JIRA 5.2. I have time tracking enabled, and things are based on the time estimates. The documentation states: "Enter the Remaining Estimate for each issue by clicking the Remaining field on the right-hand side of the card.", but I can't get this to work. No matter what board settings I'm using, the remaining estimate field, while displayed, is unchangable. I have to edit the issue ("e") to change this value. This is suboptimal. Is the documentation wrong, did I understand it wrong, or am I doing something else wrong?

  4. Jon Palle Hansen

    Question: What is wrong with the following sentence?:

     If we use the Original Estimates then the velocity will be (0d + 10d) / 2 = 7.5d.

    This was copied from the section But doesn't that break the Sprint Commitment? above.

    Apart from this minor error (which doesn't change the point) I think it is a great explanation.

  5. Rick Vistnes

    We are using GH 6.1.1, with JIRA 5.0.1. On our Scrum board there is no per-row "Estimate" field where I can enter story points for a user story. When I select a story, there's no "Estimate" field in the story details on the right. I'm looking at stories in a sprint that hasn't started, in Plan view.

    If I reconfigure the board to "

    Anyone know what settings I have to change to get the story points showing up on the user story row under my sprint?

     

     

  6. Tom Wilhelm

    Maybe someone can help me understand how this is supposed to work.

    I have a project up and running, using Story Points as the estimation value and Time Tracking turned on.

    Issues in the Backlog are all given Story Points and velocity is determined from there. All good. The question is about establishing remaining estimates at the beginning of a Sprint to let us do Tracking.

    We drag our stories into the proposed Sprint. We create subtasks for each in order to break down the work and allow us to assign to multiple developers. The remaining estimates on the subtasks should roll up to the remaining estimates on the issue. Which they do, but only AFTER the Sprint starts. The problem I'm having is that BEFORE you start the sprint, you can only set Remaining Estimate on the issues and not the subtasks. And if we wait until after starting the Sprint to do our remaining estimation at the subtask level, any changes (from 0 to whatever) for Remaining Estimates counts as a scope change in the burndown chart.

    What am I missing here? Do we have to set a Remaining Estimate at the issue level, THEN start the Sprint, THEN remove the issue level estimates while adding subtask estimates? That can't be right, can it?

     

    Any advice would be appreciated.

    1. Tom Kotecki

      Hi Tom,

      I'm not sure what are you referring to - so long as you have Time Tracking configured to use Remaining Estimate, you should be able to create subtasks and specify both Original and Remaining Estimate, and these are visible when planning the sprint. Can you verify your settings and if it still doesn't work, could you explain what exactly are you doing? Also you might want to contact Support at https://support.atlassian.com/ja for faster response.

      Cheers

      Tom Kotecki

  7. Dave Lyubarsky

    Does anyone know if PBI's other than Stories can be estimated?  We have a number of PBI's - Bugs, Improvements, Tasks - that are part of a sprint but unable to estimate them since the Estimate field does not appear.

    Thank you...

  8. Dave Lyubarsky

    I'd like to add to my comment above.  Even in the plan mode, the estimate field does not appear for Bugs, Improvements and Tasks.  Can this be changed???

    1. To make the Story Points custom field available to other issue types, you will need to edit the custom field context.

      1. Dave Lyubarsky

        Thanks Rosie.  Worked beautifully...

  9. Dave Lyubarsky

    Thanks Rosie.  Worked beautifully...

  10. Steve Cammish

    When we are looking at planning our sprint, we sometimes have some partially completed stories in our backlog , but we can only see in the agile plan view the original estimate NOT the remaining estimate on each backlog item. Of course we can click on each and see it, but when we are trying to find items with only a small "remaining" work to complete to fill up our sprint, then the use of just the original estimate isn't helpful. Is there a way to display on each backlog item in the plan view, both the original and remaining estimate in the list rather than having to click on each item?

    Thanks in advance,

    Steve

    1. You may like to watch/vote/comment on GHS-5483 - Getting issue details... STATUS

  11. Tony Zeoli

    I am also not seeing Estimates on my board. I had to add my story points to each item, but I cannot see them on the board nor change them in the Plan view. There are no text fields displayed for the story points.Here is my view: http://screencast.com/t/GxCCVs0xA0

    1. Just checking that you have set your Estimation statistic, as described here: Configuring Estimation and Tracking

      If that doesn't help, can you please contact http://support.atlassian.com ? Many thanks