Software estimation - predicting the level of effort required to complete a development task is essentially the art of guessing. In agile development, the bigger a project is, the less accurate an estimate will be. The further away the delivery of that project is, the less accurate its estimate will be. Accurate or not, people will still want to know when a particular feature will be shipped.
Story point vs. time estimates
In traditional software project management, estimates are based on the question “How long will it take?” In Agile, estimates are based on the question “How big is it?” While at first glance the difference in approaches might seem subtle and even a little arbitrary, this reframing of the question from time to size turns out to be a real game changer. People are mediocre at guessing how big something is in absolute terms, like hours or days – but are surprisingly good at sizing something up in relation to another thing. If you give a person two piles of beans, they probably won't be able to tell you how many beans are in each pile. However, they should be able to say one pile is about twice the size of the other pile.
That's the basis of story points. They're unitless scales of measurement which are sized in relation to other tasks. The purpose of stp is to compare a task in relation to the sizes of your other tasks. This idea of relative sizing is the fundamental driver in Agile estimation.
When should you estimate?
There's no perfect answer to this, but here's what we recommend.
Before anything is ever estimated, GitHub Issues should be broken into more granular chunks as some discovery work has been done. Probably, that means they're in the product backlog (the backlog pipeline without a Milestone.)
Adding story point estimates at this stage will inform the next step: deciding which Issues to add to a Milestone. Issues that have a Milestone and an estimate will appear in your reports, like Velocity Charts and Burndown Charts. As a result, you'll be able to see how your projected team velocity compares with reality.
How should you estimate?
There are many ways to go about estimating software. Whether you use triangulation, planning poker, or some other estimation method, you should always remember:
- Agile estimation is a team sport. It is considered a best practice to have multiple people participate in the activity to allow for differing perspectives on difficulty.
- Agile estimation works best with small units of work. Larger stories and epics should be broken down into smaller pieces.
- Try to avoid overthinking the estimate or spending too much time diving into technical details.
Adding estimates in ZenHub
To get started with estimation in ZenHub, head to any Issue. Once in an Issue, on the sidebar will be a section for setting an Estimate.
By default ZenHub comes with default story point values that follow the Fibonacci sequence: 1, 2, 3, 5, 8, 13, 21, and our own twist on the sequence to symbolify the largest story point value of 40. The Fibonacci sequence is a popular Scrum method to follow when estimating work to be done as the story point values get significantly larger numbers. Going from quite small values to significantly large numbers reflect the uncertainty of estimating larger items.
Customizing estimates and story point values
Need to customize the story point options in the Estimates dropdown? To delete an existing story point option from the list from the list of options hover over the story point. Clicking the trash can that appears on the right of the story point will remove it from the list.
Deleting the story point will permanently unassign the estimate across all Issues where it has been assigned. Be sure to talk with your team before permanently deleting a story point option.
If you need to clear the estimate from the Issue, select the Clear estimate option at the top of the Estimate dropdown.
To add a new story point option simply type the value you would like to add as an estimate. This will prompt you to create a new value.
Sort Issues on the Board by estimate
Once you have estimated Issues, you can sort each pipeline on the ZenHub Board by story points. Click on the Sort pipeline option and select Estimate to get a complete picture of the estimates of most Issues in the workflow.
Estimate Issues en-bulk
Whether you are starting your Sprint or doing some cleanup on the Board, you can leverage the multi-select action bar to assign estimates to a grouping of Issues.