I’d like to think that my previous posts have provided an informative and well balanced, ego free commentary on pertinent topics such as learning, change and even improv in agile. Well, this one is different; it’s good old fashioned, vitriolic rant. It’s about velocity, or at least what people do to velocity, a well meaning, innocent and largely defenseless concept. The other thing this post isn’t is a comparison or comment on the value of velocity or estimating in general. You’ll find plenty of good #NoEstimates conversation elsewhere.
Time and time again I see velocity abuse:
– Equating velocity to volume of output (more points equates to more productivity)
– Using velocity as a target, linked to incentives (The Scrum master shouts: “what do points mean? – prizes” )
– Assuming that velocity is a real number, double the engineers, double the velocity, right?
There are plenty of good velocity explanations around, the way I see it velocity is part of a system for:
a) Improving group estimation ability (mostly by encouraging exploration of work, and an appreciated of other’s roles)
b) Forecasting the rate work will be carried out by the team.
As such, velocity needs to be honest and without interference, otherwise the outputs of neither estimation or forecasting activity can be trusted.
Increase your velocity; Go big or go home!
It seems there is an obsession with velocity in volume, if a team knocks over 20 points one iteration, it should better itself in the next, 25 points next time anyone?
Consider however, a situation where a team doubles its velocity compared to the previous two iterations, does that really indicate double productivity? There are numerous factors which could contribute, perhaps they are not working in a sustainable fashion, or corners are being cut. Was a large amount of unfinished work rolled over from the previous iteration? In these circumstances we often have what looks like high volume output, but is it to the detriment of other (typically operational) concerns? What if a team halved its velocity in the last iteration? Is the team failing, or is the organization not providing what they need to succeed? Did they change the value of points to align with demand? Is the team hitting its predicted point every single sprint? Suspicious to say the least.
The key point is that a team’s velocity fluctuates over time, and there is often considerable variation as a team forms, and starts to understand it’s work, constraints and processes.
Velocity with benefits
To some extent velocity is a target for the team, but one that is most effective when set and owned by the group, rather than linked to incentives. Pushing velocity onto a team, demanding or targeting an increase is a dangerous, counterproductive practice. Strongly linking velocity to incentives compromises its primary value as an estimation tool. Organisations generally hire the smartest people available, do they somehow think those people won’t be smart enough to game velocity given even the smallest incentive?
“The moment a measure becomes a target, it ceases to be a measure” – Goodheart’s Law
A further reason not to link velocity to incentives is the frame of mind it encourages during an iteration. It seems preferable to focus on an iteration goal as opposed to churning point earning stories. Strong focus on an iteration goal invites creative thinking and awareness of user goals – if we find a new way to achieve an iteration goal with the side effect of throwing away the remaining stories, we should get on with it, and not mourn lost points and old stories.
Once the rough quantity of ‘stuff’ to be delivered is agreed, it is all about execution, as such focus should shift away from what was estimated and towards what should be achieved. Velocity is like your last order for team pizza, use it to inform quantity, once the mountain of pizza arrives you and your colleagues just have to deal it, constant reference to the original estimate serves little value.
I’ve observed something of an obsession with velocity as a quantity, the cause of much sniggering and derision during Scrum of Scrums meetings. A team with a velocity of 100 must be better than a team with a velocity of 20, right? This reminds me of futile attempts to compare different people’s number of steps walked in all but the most sophisticated fitness apps. My Fitbit tells me I average 10,000 steps each day. I happen to know that some of those ‘steps’ are activities like chopping firewood, lifting heavy coffee cups, and gesturing wildly at whiteboards. I can use this figure to compare how active I’ve been across different days, but to compare my number of ‘steps’ to another person’s would be fruitless. Just like an agile team sizing and executing its own stories, my context is unique.
I also see many attempts to compare, or harmonise different team’s velocities. We can certainly compare estimating ability with some confidence. Standard deviation of predicted velocity against actual velocity can be useful for both forecasting, and prompting improvement conversations. For instance, a team with a standard deviation of +/-5% on estimates is more predictable than one with a deviation of +/- 20%. This of course says nothing about the team’s actual achievements against their potential, but this predictability is a solid foundation for improvement.
Often though the conversation is about stack ranking teams, and proving who does most. A flaw in only considering velocity is that it is solely and indicator of a team’s output of stories, stories are by no means the only kind of value that teams add to organisation. A ‘slow’ team might be the one which fixes more defects, handles more support calls, is more active in recruitment or assisting other teams. Velocity gives no guarantee of completeness, and could simply be the rate at which bug riddled code is being unleashed on unsuspecting downstream teams. This tends to indicate the need for a more varied and balanced set of measures.
…and further more
A big problem here is that first impressions last, velocity it is such a convenient, accessible term that people intuitively grasp it; incorrectly. This first impression may be very difficult to unlearn, corrupted understanding spreads, particularly when carried by people with influence and a penchant for direction. Thanks to these unstructors, before you know it you’re being asked why your velocity isn’t 400 like Team Over-achievers in the corner. Analogous to technical debt, this is a kind of methodology debt, as unproductive habits become calcified and baked into culture, it is just as hard to pay down.
Ultimately I have a simple plea: think before you use velocity, consider the side effects and take time to educate stakeholders. Ideally bring other perspectives on progress and discourage the comfort often brought by over simplification. This is especially true if you publicise raw velocity values outside the team, it is a fragile concept, and if miss-used it could leave the team with compromised estimates and a painful legacy.