I once overheard a comment regarding a last minute request to estimate a piece of work in an area of the code base the developer knew nothing about. "Whatever you estimate, you'll be held to it.". It's no wonder developers are often reluctant to provide estimates when there is an unrealistic expectation that estimates are always spot on. An estimate by its own definition is an approximation and we should therefore anticipate and plan for the possibility that it is going to be incorrect. What we can do however is employ techniques that help improve the quality and accuracy of estimates so that we can have a higher level of confidence in them. One such technique is "Planning Poker".
Let's say we've been asked to estimate a particular user story in a large area of the system. Different developers have had different experiences within this area and so their opinion of the complexity of implementing this user story differs. Planning poker allows us to identify this and provide a forum for further short discussion; by the end of which we should achieve a more accurate estimate that everybody buys into. Let's play a short hand to see this by example.
We have five stakeholders playing which consist of a two DBA's and three developers. They all hold the following standard hand which contain numbers from the Fibonacci sequence.
Image courtesy of Mountain Goat Software
|
We have been asked to estimate two user stories and we'll play a hand to estimate user story 1 first. Each stakeholder selects a card that represents their estimate of that story. What we see after the first round are the following cards selected. Two 1's, two 2's and a 3. As the estimates from all were relatively close with no wildly differing opinions, the group decide to take the average(ish) estimate of 2 and move on.
Next we look at the second user story and get the following hand. One 3, three 8's and a 13. This time we have quite a split opinion so it is now up to the low and high scoring stakeholders to justify their estimates. Once each stakeholder has presented, we go through the process of playing another hand, this time considering what we have just heard. We repeat this cycle until we eventually reach a hand similar to the first where we had similar enough estimates that the group felt comfortable taking the average, if not the same estimate across the board.
As you can see, planning poker has the potential to be an effective tool in collaborative estimation. It won't guarantee that every estimate will be perfect but it will improve the accuracy and reliability of them and certainly give you every possible chance of avoiding those unfortunate occasions where we get them wildly wrong.