Principles of Agile EstimationsPosted by BrainConcert
Defining the user stories is important for at least two reasons:
· Gives an overall view on what is expected from the software sytem to be developed;
· Provides just enough information for the developers to provide reasonable estimates in order to plan the project.
When doing estimations in an Agile project some principles needs to be followed.
In Agile, making estimations is a collaborative activity. All appropriate people are included in the process. For example the whole Scrum team participates in estimating effort of Product Backlog Items. Collaborative techniques are also designed so that it is impossible to blame someone for an incorrect estimate: there is no way to trace who estimated what. Moreover, when done in a collaborative way, the whole team gains a common understanding of what needs to be done. Everybody will need to think about each user story, what is referring to, in order to provider an estimate. If things are not clear this is one moment when they can get clarified.
When it comes for the developers to estimate them, the user stories already have an estimate attached to them: is the estimate of the relative business value, usually performed by business people including customers and users. This is important because it helps in prioritizing the implementation of the stories, so that those with greater business value will be implemented first.
The estimations provided by the developers on the user stories usually use relative units. This means that we dont try to estimate days directly. Instead, we use points or even qualitative labels and simply compare the items we are estimating to each other. This takes advantage of the human capacity to compare things to each other and avoids our difficulty in comparing something to an abstract concept (days of effort).
Agile estimation techniques are designed to be faster than traditional techniques, and so they deliberately trade off accuracy. In Agile world, providing estimations is considered a NVA ( Non-Value Activity). A NVA is an activity that is not required by the business nor is the customer willing to pay for. For this reason, in Agile the effort associated with this activity is minimized as much as possible.
The final estimate performed in Agile is the team capacity, sometimes also called velocity. This indicate how much can be implemented in a full iteration. The velocity is adjusted after iterations are completed, since we can compare what was planned with was accomplished. This in turns helps in making the long-term plan more realistic.
In Agile, estimations can be revisited at any time. As the team and business people learn, the estimates are adjusted and the long-term plan updated accordingly.
Many Agile estimation techniques exist including Planning Poker, The Bucket System, Dot Voting, T-Shirt Sizes, Ordering Protocol. Many of these can be used not only by the developers to estimate the relative effort in implementing the stories but also by the business people when the estimate the relative business value.