I was at Agile Open Toronto last weekend, which included a no-estimates session. That session and the open-space conference itself deserve separate blog posts, but for now I want to cover just set of concerns that relates to sizing and estimation of software projects, features, user stories, epics and other software work items.
T-shirt sizing (Small, Medium, Large, eXtra-Large) is a quick and easy method to roughly assess the size of a proposed software feature. My observation is, however, that many software people don’t appreciate the size scale that sizes S, M, L, and XL are supposed to represent. Relating it to a familiar everyday item like a T-shirt may add to the confusion. It is not obvious that the only thing the T-shirt feature sizing method has in common with wearable T-shirts is the size labels.
I decided to do a little experiment and found several road race T-shirts I collected over the years, such as this one:
The shirts came in three different sizes and the organizers got them from the same vendor, so the sizing had to be consistent. The Medium shirt (shown in the picture) measured 21 1/2 inches across, the Large 23, and the X-Large 24. Assuming the volume is proportional to the cube of the linear size, a Large shirt can fit a 22% bigger body than a Medium one and that X-Large is 14% bigger than Large.
Here is the danger of confusion, especially if we take this talk of T-shirt sizes outside the development team to the business and forget to explain that the “t-shirt sizes” is only our technical jargon. And what it actually means. We may be mistakenly communicating that relationship between two sizes is “fits a little tight.” Now imagine what business may ask you late in the project based on such understanding of sizing.
The Fibonacci Code
Another t-shirt size confusion I’ve observed is mistaking the size labels as proxies for user story sizes used in the planning poker game. The most popular sizing sequence in this game is based on the Fibonacci series, in which every number is approximately the sum of the previous two: 1, 2, 3, 5, 8, 13, 20, … Some people mistakenly assumed that Small can mean 2, meaning 3 is Medium, 5 Large, etc. That again doesn’t properly communicate the time scale by suggesting that the next big size is less than twice as big.
While your team plays planning poker and uses numbers from a small range (e.g. 2-5 or 1-8 at the most), you’re only doing more refined estimates within the same T-shirt size. When people start raising numbers like 13, 20, or 40, then you’re in next T-shirt size.
The Power Law
What T-shirt sizes are really intended for was to communicate that the features are of different orders of magnitude. The next big size is really several times as big and outside the normal variation range of its smaller neighbour. The rationale for such power-law size scale is to keep categorization mistakes to a minimum. Fitting a proposed feature into a range on the power scale allows us to establish probabilistic estimates based on the history of our delivery of features within that range.
Software teams and organizations have done this successfully over the years. To give two examples of case studies, I would point the reader to Rick Simmons‘ Upstream Kanban and Henrik Kniberg‘s Lean from the Trenches. What these case studies have in common is that the teams came to realize that the extra-large and large sizes don’t really work for them, because they naturally have a lot of variation, making the delivery too unpredictable and, from the business point of view, often a risk that is not worth it. Further, each T-shirt size essentially represents a class of service and a recent inquiry into the economics of classes of service came to the conclusion that having each of them has an economic cost, so it is possible to have too many classes of service and have their cost exceed the benefit and thus sub-optimize the system
I don’t remember who proposed the Lizard Scale several years ago, but I think it was Jeff Patton. The scale is: gecko, iguana, Komodo dragon, Godzilla. Each animal is clearly bigger and in a different class than the previous one. This scale is essentially the same T-shirt scale, but without any confusion that may be caused by referring to T-shirts. Teams may or may not need to use this scale literally as long as they and their business stakeholders understand what the labels S, M, L and XL mean.
Pingback: #NoEstimates Discussion at Agile Open Toronto | Learning Agile and Lean
Pingback: Estimations done right - lastzero's software engineering blog
Pingback: The Best of 2013 | Learning Agile and Lean