Roshambo Estimating
This is a quick post. I just want to share a technique we've been using for initial story estimating. I first used this technique at ThoughtWorks when we were working on a project that required a lot of estimating. I think it came about because 1) we did not have any estimating cards immediately available and 2) that is the kind of place ThoughtWorks is. I later came to discover that the technique is not only fun, but it actually has a few additional benefits.
My recall is fuzzy, but I believe it was Greg "Hippie" Warren who first suggested it. As many of you know, Robshambo has a bit of a tradition at ThoughtWorks (not normally associated with estimating), so it just seemed natural.
How it works
Set-Up
Roshambo Estimating requires no special equipment, only your hands and some partners.
When estimating a story, get a brief overview of the story and acceptance criteria. Ask whatever high-level questions come to mind in order to get a good general sense of the effort required. Do not try to nail down every last detail. It is perfectly acceptable to make some assumptions or leave some unknowns.
Any team member may ask for an estimate at any time. When the team is comfortable giving a rough estimate, throwing may commence.
Throwing
Each team member begins with one hand balled into a fist and resting on the open palm of their other hand. One team member counts to three.
At the counts of one and two, team members bang their balled fists into the palm of the open hand. On the three count, all team members "throw" their estimates. Estimates are represented by the number of fingers showing on your hand.
I prefer a Fibonacci sequence as it appropriately represents the proportionality between estimate size and accuracy. So, for the teams I work with, we usually throw a 1, 2, 3, 5 or a thumb.
A throw of 1, 2, 3, or 5 indicates the point estimate for the story. A throw of thumb indicates the story is too large to estimate on one hand.
Evaluation
If the throws are all the same, you have your estimate; move on to the next story.
If there is a significant discrepancy, provide each of the outliers an opportunity to briefly explain their thinking. The team then decides to estimate again or continue discussion. If discussion continues, any team member may ask for an estimate at any time. When the team is comfortable giving a new estimate, throwing may commence.
Typically, the discrepancy is small. Half the team throws a 2 and half the team throws a 3. A quick discussion should resolve this. Often the low estimates round up and the team moves on.
So... what makes this better?
This is not significantly different than a number of other estimating techniques already floating around. So why adopt this one?
In my experience, I've found this to be the fastest and most efficient way to do estimates without sacrificing the quality of the estimates. It can be done at any time, any place. No extra materials required. There is no shuffling of cards, no cheating, no anchoring.
The idea is to get to an estimate quickly and to put primary focus on stories that have discrepancies, therefore requiring more discussion.
Besides, it's fun and it looks silly.
This technique implicitly mandates that no stories can be larger than a 5. I recognize every team has their own set of practices around story sizing, but it has been my experience that estimates larger than 5 are significantly less reliable. Effectively, there is minuscule discernible difference between an 8 and a 13 in terms of actual effort required to complete. If I had my way, no stories could be larger than a 3; at which point, we don't need to estimate and can just count cards. - but that is another post for another day.