I think, finally, I have understood the concept of Story Points, and the value they (might) bring to our sprint planning. I will attempt to prove this by explaining them in terms of our implementation of Agile Development, the London Marathon, and the hypothetical, undetected Higgs boson.
Recently we have abandoned Story Points, which we were using to estimate the amount of work we could commit to in a sprint. This involved the laborious task of estimating every feature, sub-case and bug in Story Points. Without a baseline understanding of the value of a Story Point, they hovered somewhere between “meaningless” and “hours pretending not to be hours”.
The flaw in my understanding was mostly short-termism. Story Points don’t tell you how much work you should commit to in _this_ sprint; but they do tell you the feature velocity of a team over longer timescales.
Another mistake was assigning Story Points to bugs as well as features. It’s essential to consider the complexity of bugs when committing to work in a sprint, so this seemed like a good idea; but the key fact to remember is that fixing bugs is not _advancing_ the software. You add no value, no story, to the customer’s experience by fixing bugs. You’re just putting back value that should always have been there.
The London Marathon
Consider a product’s feature velocity. Our product is a marathon runner, running through crowded streets on a marathon that never ends. As we add features to the product, we move forwards – Greenwich Park, Charlton, Woolwich passing by. The faster we can add features, the faster we run.
But buggy features are an illusion of progress. The crowd expects us to be approaching Cutty Sark, but in fact we’re barely over the Blackwell Tunnel. If we were to fix all those bugs in a single sprint, we would appear not to move at all.
Story Points, then, are an indication of how far each new feature will take us. If we implement 60 Story Points in a sprint, we’ll get as far as Tower Bridge; 30 will only get us as far as Greenland Docks.
The Higgs mechanism
The bugs in our software – the stuff we must continually deal with, or be disqualified from the race – is our technical debt. Our technical debt is like the Higgs field.
As everyone knows, the Higgs field – interactions within which are carried by the legendary, and so far purely hypothetical, Higgs boson – acts upon all fermions and essentially provide them with mass.
You understand the physics behind the Higgs boson, right? After all, 10,000 scientists collaborated to build the Large Hadron Collider; I bet fewer software engineers understand Story Points.
Just in case you don’t, an oft-quoted analogy is that of someone moving through a crowded cocktail party. An unknown guest – in this case representing a massless photon (or gluon) – can quickly step through the uncaring guests without impedance.
Margaret Thatcher, however, is famous and influential. When she steps into the room, the guests quickly turn to face her, talk, bow, scrape, ask for an autograph, or rail against the social injustices of the 1980s. It becomes hard for her to cross the room, not because of her fame (or mass) – but because of the interactions of the cocktail guests (Higgs field).
Back to London
Where were we? Ah, yes – approaching Canary Wharf. Our technical debt now relates to the fame of the runner. As she powers along, fans jog alongside, shake hands, and slow her down. These are the bugs we must deal with in the sprint; we’re reducing technical debt, but at the cost of overall velocity.
It’s not far until the Mall now. The marathon has taken 13 sprints to complete. But we also know that we have completed 260 Story Points worth of work. Our velocity is 20 Story Points per sprint – and we have also cleared much of our technical debt. As we cross the finish line, we can breathe a huge sigh of release.
But our runner gets no chance to rest – we must immediately fly to Switzerland to embark upon the Geneva marathon. We’ve mapped the course; there’s 300 Story Points of effort in this one. But it’s clear to us that this will take, at current velocity, 15 sprints. (And if we can improve our velocity, by shrugging off more technical debt, maybe less.)
So that’s the point of Story Points. Large projects, when accurately broken down and estimated in Story Points, can be related to development time with some degree of education. Our current velocity can be measured alongside, and affected by, our technical debt (and its integral – the speed at which we are gaining, or losing, mass / fame / debt).
And now I can see the point. So what do we do now?
- estimate tasks in a sprint in hours, so we know what we’re committing to;
- estimate future features in Story Points, so we can calculate our velocity;
- reduce our technical debt, bearing in mind the effect it has on the above;
- impact hadrons colliding at near light speed, and examine the resultant particle shower;
- train for the London Marathon.
Hmm … one step at a time, perhaps. See you in Geneva.