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

(info) This page only applies to Scrum boards.

Estimating stories in your backlog helps you to predict how long portions of the backlog might take to be delivered. See below for further discussion on Estimation.

Estimating an Issue

Entering the Original Estimate

Before you start your sprint, do the following for each issue:

  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.

Entering the Remaining Estimate

As you work on issues, adjust the Remaining Estimate as follows:

  1. Click Work to go to Work mode.
  2. Enter the Remaining Estimate for each issue by clicking the Remaining field on the right-hand side of the card. 

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.

 

About Estimation

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. 

Estimation is separate from Tracking

In Scrum there is a distinction between estimation and tracking. Estimation is typically performed against Primary Backlog Items (PBIs, usually stories) and is used to work out how long portions of the backlog might take to be delivered. Tracking refers to monitoring the progress of the sprint to be sure it will deliver all of the stories that were included. Tracking is often performed by breaking down stories into tasks and applying hour estimates to them during the planning meeting, then monitoring the remaining time in a burndown during the sprint. 

Estimation is all about Velocity

The primary purpose of applying estimates to the PBIs is to use that information to work out how long it will take to deliver portions of the backlog.

In traditional development environments, teams would estimate items in 'man hours' and these would be assumed to be accurate. They could then count up the hours in the backlog for a project, divide by the number of people on the team and hours in the week to reach a forecast date. Of course, these estimates often proved to be wildly inaccurate because they did not take into account the natural estimation characteristics of the team (for over/under estimation), unexpected interruptions or the development of team performance over time. The inaccuracy of the estimates, combined with the significant cost of the time spent trying to 'force' them to be accurate ,makes the 'man hours' approach difficult — if not impossible — to make work. 

So in the Scrum world, most teams do not try to achieve estimation accuracy; instead they aim to achieve a reliable velocity. Velocity is a measure of the number of estimation units that a team tends to complete from sprint to sprint. After their first few sprints, most teams will achieve a reasonably consistent velocity. Armed with velocity and estimates on the PBIs in the backlog, teams can look forward to predict how long portions of the backlog will take to complete. 

The key is that it does not matter what the estimation unit is, just that from sprint to sprint it becomes reasonably predictable. For example, teams can choose to use 'ideal hour' estimates but it's neither necessary or expected that those hours will have any close relationship to elapsed time. If a team has 'man hour' capacity of 120h in each sprint but a velocity of 60h, that makes no difference because the 60h velocity can still be used to estimate the number of sprints that portions of the backlog will take to complete — and therefore the elapsed time. Many people then start wondering where 'the other 60 hours' went and implying that there is something wrong with team productivity. But that's usually got nothing to do with it: a team's estimates merely represent their view of how hard items will be, and they're always polluted by the team's natural behaviour (for example over/under estimation) as well as organisational overhead etc. The velocity is all that matters from a planning perspective. 

Since the units are not related to time, most teams now choose to use story points (an arbitrary number that measures the complexity of one story relative to others) as their estimation unit. Story points clearly break the mental link with time. 

Inaccurate Estimates are good, as long as they are equally Inaccurate

Velocity will only reach a stable state as long as the team estimates each backlog item with the same level of accuracy. In fact, it's probably better to say that each item should be estimated to exactly the same level of inaccuracy. At the risk of repeating the obvious, the goal of velocity is to be able to look at a backlog of not particularly well understood stories and understand how many sprints it will take to complete. This requires a similar level of uncertainty for all of the estimates that are in the backlog. 

One of the counterintuitive implications is that teams should estimate each item once, and not change that estimate even if they discover new information about the item that makes them feel their original estimate was wrong. If the team were to go ahead and update estimates, this 'discovery of new information' will happen regularly and result in a backlog that has some items which have higher accuracy but most which don't. This would pollute velocity because sprints with a larger percentage of high accuracy estimates will complete a different number of units compared to those with a lower percentage of high accuracy estimates. As a result, the velocity could not be used for its primary purpose, that is, for estimating the number of sprints it will take for a set of not-well-understood stories in the backlog to be completed. Therefore it's critical to use the first estimates so that the team's velocity realistically represents their ability to complete a certain number of units of not-well-understood work far ahead into the future.

But what about when teams realise they've gotten it wrong?

Consider the following scenario:

  • Issue X has an Original Estimate of 5 days.
  • The issue's estimation was too optimistic and they realise it's actually 15 days before the next sprint is planned. 

Some people would argue that using the Original Estimate will endanger the sprint's success, because the team will take in what they think is 5 days of work into the next sprint when it's actually 15 days work. 

However, the inaccurate estimate of 5 days is unlikely to be an isolated occurrence, in fact the estimates are always going to be wrong (some very little, some wildly so). Often this will be discovered after the sprint has started rather than before. As long as the team estimates the same way across the whole backlog, this will work itself out over time. For example, if they always underestimate, they may find that for a 10 day sprint with 4 team members they can only really commit to 20 days of their estimation unit. If they have established a stable velocity then this has no effect, because from a planning perspective we can still reliably estimate how much work we'll get done in upcoming Sprints.

But doesn't that break the Sprint Commitment? 

When it comes time to start a sprint, the team can use the velocity as an indication of items from the backlog they can realistically commit to completing based on the amount they have successfully completed in the past. However, many people immediately question how that can be right when the Original Estimates will not include information about work that might have already been done or discovered about how hard the work is. 

As an example, consider the following scenario: 

  • An issue has an Original Estimate of 10 days.
  • The team works 5 days on the issue in the current sprint.
  • The team discovers a bad bug somewhere else in the project and decide that fixing that bug in the current sprint is far more important than completing issue X as planned.
  • The sprint gets finished and the issue returns to the backlog.

In the next sprint the team would be tempted to update the estimate for the issue to 5 days and use that to make their decision about whether to include it in the sprint. The implication is that they might not include enough work in the next sprint if they used the issue's Original Estimate of 10d. However, the reason that the task was not completed previously is because of unplanned work; it's unrealistic to assume that this won't happen again in the future, perhaps even in the next sprint, thus the 10d is a realistic number to use in the absence of certainty. As a result, the cost of the unplanned work that may happen is eventually accounted for in the Original Estimate. Even if the work does turn out to be insufficient for the next sprint, the team will correct that by dragging more work into the sprint. 

In the same example, consider if this were the only issue in that sprint and will be the only issue in the next. If the issue is completed in the second sprint and we use the Remaining Estimate then the velocity will be (0d + 5d) / 2 = 2.5d, but the team can clearly complete more work than that in future sprints. If we use the Original Estimates then the velocity will be (0d + 10d) / 2 = 5d. The use of the Original Estimate accounts for the fact that the team cannot commit to 10d in every sprint because unplanned work will likely make that impossible; it also realistically accounts for the fact that unplanned work will not happen in every sprint. 

Why not estimate on sub-tasks and roll that up for Velocity and Commitment?

Many teams break down stories into sub-tasks shortly before the sprint begins so they can use the stories for tracking. This raises the possibility of using the sum of the estimates on the sub-tasks as a way to decide which issues to commit to in the sprint (and potentially for velocity). 

As described above, tracking is really a separate process from estimation and velocity. The estimates that are applied to the sub-tasks are clearly higher accuracy than those that were originally applied to the story. Using them for velocity would cause the velocity to have both high and low accuracy estimates, making it unusable for looking further out in the backlog where stories have only low accuracy estimates. In addition, only items near the top of the top of the backlog are likely to have been broken into tasks, so using task estimates for velocity means that the velocity value could only ever predict the time to complete the backlog up to the last story that has been broken into tasks.

Using the sub-task roll-up to decide the sprint commitment would also be dangerous because, unlike the velocity value, it does not take into account the overhead of unplanned work or interruptions. 

Conclusion

Many industry leaders are moving away from hour estimates of any sort. This makes sense because the main questions to be answered are 'How much work can we realistically commit to completing this sprint?' and 'How long will this part of the backlog take to deliver?'. A story point approach based on original estimates can deliver the answers to these questions without the anxiety around 'accuracy' that teams feel when asked to estimate in hours. 

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. 

We recommend this approach because while it is sometimes counterintuitive it is also powerful, fast and simple. 

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 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