Monday, September 15, 2014

Agile and Scrum Methodology - Estimation

In this post, I'm going to talk about estimating in agile.

In agile world, before sprint planning happens, the team would go through the backlog and estimate them in terms of Story Points. This would provide a relative high level estimate for the team/management so that they can proceed with Sprint planning.

Story Points:

Story Pointing is a technique wherein the team gets together and understands the high level requirements for each story and provides a rough number indicating the complexity of the story. The team would brainstorm on the high level requirements and come to a consensus on the story points. If team members disagree, then they have to give justification on why they disagree and try to arrive at a consensus. (Scrum master can play the role of moderator in these discussions).

Story Pointing is NOT time based, but rather, is based on complexity.
The rationale here is that some tasks would take less time but are complicated and needs more focus than few other tasks which could consume more time but are less complicated. For instance, documentation can consume same amount of time as building a small UI, but UI building could be more challenging than documentation. Consequently, the team can give a higher story point to UI building and lesser one to documentation.


Representation of Story points:

The Story points could follow any representation. Following are the few widely used ones:
1. Fibanocci series as in, 1,1,2,3,5... 
2. T-Shirt size XL, L,M,S etc

Remember, this is just a relative figure and this depends on individual projects. So a XL for one project could differ from a XL for a different project.

Story Pointing is generally done well before Sprint planning wherein the requirements are not very detailed.

During Sprint planning, the team will take each story and discuss the detailed requirements. They then breakdown each story into smaller tasks and provide a time estimate for the same. The time estimate here would not have any bearing on the story points given earlier. 

It is assumed that the story points reflect the estimates when requirements were at less detailed level and that is why the relative points for each story will tell the same story :).

Velocity:

Velocity is a measure of the pace at which the team delivers stories during each sprint. For eg, if the total story points delivered by a team during consecutive sprints is 30,34,30 then we can calculate an average velocity as 32.


1 comment:

  1. Really easy to understand...nice explanation -- Dhiraj

    ReplyDelete