Velocity is evil, predictability is divine
Richard Walters
Go-to for complex, large, multi-dependent corporate initiatives centered in software development.
When an immovable object meets an irresistible force, things can get messy…
In Software Development, leadership requires transparency into when their plans are going to be delivered. Their workforce wants to be autonomous, work on impactful things, be appreciated, and not made to feel like they are a conveyor belt. Are these two goals forever at conflict, or are they reconcilable?
I believe they both can be met, though it takes work. Which is why this turned out to be my longest post yet. I promise, if you struggle with this, it's worth the 7 minutes.
I am not naive: More often than not, there’s tension and mistrust in this context.
My focus is on how to balance leaderships' justifiable need to understand productivity with the teams' human need to be in control of their destiny while being valued for expertise, input and impact.
‘You can’t improve what you don’t measure.’
This famous quote attributed to Peter Drucker is often used by evil management as the reason for implementing some measure of velocity on software development teams.
It’s not so common knowledge that Mr. Drucker never said this because he knew it didn’t apply to everything.
According to the Drucker Institute itself, here is how he caveats it (paraphrased - full source linked below):
Most important is the relationship between people, the development of mutual confidence, of a community.
These are key functions, but cannot be easily measured or defined.
When it comes to people, not everything that goes into being effective can be captured by some kind of metric:
Not enthusiasm.
Not alignment with an organization’s mission.
Not the willingness to go above and beyond.
Indeed: it’s about measuring people.
I’ll take it one step further for our industry: in software development, implementing a measure of velocity without regard for these nuances will not give you a reliable velocity: and worse, it will damage progress towards attaining all those beautiful elements of an effective, happy team Drucker talks about.
Back to the issue at hand: Given the above problems, how can any development or cross functional team arrive at a reasonable estimate, if measuring velocity is evil and wrong??
The answer: Recognize that measuring productivity is quite different from measuring velocity.?Any measurement of “productivity” should be internal to the team only, with the goal of providing a reasonably accurate time estimate of when value delivery happens.?
Any measurement of “productivity” should be internal to the team only, with the goal of providing a reasonably accurate time estimate of when value delivery happens.?
In other words, predictability. So a team needs some measure of productivity, so they should decide what fits them best. Here are some options:
?? Pro tip: A not insignificant second benefit of understanding your team’s productivity using any of these methods, is that you have a data-driven way to answer the very difficult and critical question of “how busy are you?” as a team. I.e., how long would it take for you to complete your backlog? If you intend to request more people to be added to your team you will be asked to provide solid reasons, and this is as solid as it gets.?
Still with me? OK.
领英推荐
Let’s say you have your way of measuring how many story points (or melons) your team can deliver in a given period.
The next, also not insignificant step, is to understand and break down the request so you can map it to your way of measuring output.
I do not mean grooming or actually defining every deliverable: This is, after all, an estimation.
You should increase the level of understanding, though not all the way.
An analogy of descending the plane a bit further, so you can see more detail: Just don’t come in for a landing yet.?
Here are some actionable steps you can take with your team to break requests down and start creating some predictability.
Now for the Program Management bit.
Once you have get this first semblance of an estimate, you need to understand and apply some variables.
The? following questions address not-so-unusual circumstances and gather insight into how it's all going to go down: I like to call it predicting the future:
The key word here is still: “estimate”. Software development is inherently a creative process and impossible to predict with an infallible degree of accuracy. That is not a reason to say you should take the attitude it can’t be done, though.?
In the end, if these principles are applied well, both sides get what they want: Leadership gets a productive team with high engagement, expertise and retention, while the team members are respected and control of their work environment. This is not the norm: it takes real work but will (gummy) bear exceptional results which are as close to divine as you can expect in a work environment.
Supporting links
The Drucker Institute: Measurement Myopia
Elsevier/Kai Peterson: Measuring and predicting software productivity
Agile Alliance: Velocity in Agile, and Story points
Bonus:?
Organisational behaviour expert. SAR creator and practitioner.
2 年Obliquity FTW.
Digital, E-Commerce & Product Marketing | Program, Product, & Project Management | Startup Experience | Customer Experience Advocate | Agile Product Owner| Experimentation | Strategic Vision | AI & ML | SaaS
2 年I remember these conversations
Marketing Operations Web Technologist III at GoDaddy
2 年Yassss!! ???????? Do it right once or “hack ??” it out fast and enjoy fixing it for twice as long.