At MuleSoft we use Agile development to build and deliver all of our software products. One of the more challenging and potentially time consuming part of agile is story estimating. Recently we decided to take a new approach to this that has proven to be a lot of fun and amazingly accurate. I call it Bubble Sort Estimation.
Approaches like planning poker involve a lot of numbers. (BTW, if you do use Planning Poker, definitely give Mike Cohn’s online tool a spin) We’ve tried effort points, story points, t-shirt sizes, etc. However, most new teams have no reference for what the point/size means, leading to confusion. A frequent temptation is to map a point to some unit of time. This leads to more debate over ideal days vs calendar days. It’s never-ending!
Recently, we decided to take a new approach. Rather than using a typical planning poker approach to estimation, we write up all stories on good old fashion post it notes. We then take the first story (good to start with one of “average size” if you can) and stick it in the middle of the board. The next story goes either to the left or the right, depending on whether it is smaller or larger than the first. We then add each additional story, placing it relative to the others on the board. Over time the smaller stories drift to the left and the larger ones to the right. You can bucket stories (place them above/below each other) or strictly line them up. Once complete, vertical lines can be drawn to break stories down into buckets by size. The story or bucket all the way to the left is a 1, and they increase as you move right.
Our Planning Board
This all moves pretty quickly and generates a lot of discussion and interaction among the team. Some stories need to be split to fit on the board, which can happen on the fly. Some may be rewritten or thrown away because they don’t make sense. Above all, this has made the planning process fun and has been very effective. Planning also takes a lot less time now as we do not have to debate what is a 1 vs. a 2, etc. To date we’ve done this in person, but we are considering ways to do this remotely as most of our team is distributed. We’ll report back on how that works.