A Word on Velocity
Velocity, while seemingly a simple measure of team output, is quite often one of the most misconstrued metrics by organizations new to Agile ways of working – by both managers and the teams themselves. It is important to understand that the usefulness of velocity as a predictor of a team’s future story capacity in a sprint is an emergent property of a persistent team following an estimate and execute cycle; the key implication of this being that stability of velocity is what’s desirable, regardless of the magnitude.
Here’s a quick outline of a healthy way to establish a baseline velocity for a team:
- The team plans an iteration and commits to a set of stories with estimations.
- The sum of those estimations gets locked in as the committed points for the iteration and should be in the ballpark of the team’s velocity.
- If the velocity is still stabilizing, then for the first couple of iterations it should just “feel” like the right amount of work to the team.
- The team executes on the iteration and ends up with a pool of completed stories/tasks.
- The story points completed may or may not match up with the story points committed: if additional stories had to be pulled in then the completed points will be higher; if the team was not able to complete all committed stories then the completed points will be lower.
- Those deltas would be discussed during retro. (Did we overestimate/underestimate? Why? Did we get derailed by unplanned work? Etc.)
- The learnings from having those deltas should be incorporated into the next iteration planning and theoretically the discrepancy between committed points and completed points will become consistently tighter over time as the team gets better at that estimate & execute cycle.
- As that variance stabilizes, the 3-iteration rolling average of completed points becomes a useful velocity baseline for planning purposes and will also reflect the sustainable improvement in velocity that would come from a team progressing through the forming-storming-norming-performing phases of learning to work together.
I recently revisited this concept with a client while fielding a question regarding re-pointing stories mid-flight. As a coach, I had a gut reaction to the “wrongness” of that practice and set out to re-frame the team’s thinking, seeking to ensure that their perspective was anchored in the appropriate intention of the metric. I shared the above outline with the team and discouraged any practice that results in the “gaming” of metrics. What ensued was an excellent reminder that, even in pursuit of the continuous improvement, there is always a risk that any conversation can go sideways with even the best of intentions getting lost in translation.
The team had a very raw reaction to my advice and immediately went on the defensive. Below is my expanded follow-up response (edited a bit for readability):
Excellent call-out that the variability in velocity is the important factor, never the magnitude of that velocity, precisely because estimations are not meaningful as a standalone value outside the execution context of the team that made them. It is equally correct that velocity is intentionally left out of the definition of productivity because we never want it to be construed as a measure of output in that fashion. It is the trendline of velocity – based on estimates from a persisted, stable team – that becomes a valid predictor of future output. In fact, velocity becomes a useful metric for gauging predictability because it represents the whole cycle of estimation and execution by a group of people who settle into a stable cadence of output and become good at judging a set of user stories which represent that quantity of work. But that is exactly why updating an estimate after the work has already begun is “gaming” the velocity; not there is necessarily any ill-intent behind the practice, but even as a well-intentioned effort to get a “realistic” baseline velocity, it is undermining the emergent consistency in the pattern of estimation and execution that velocity is supposed to represent.
When I mentioned, in my original email, that I felt by re-pointing the team was missing out on the learning opportunity, the frame my perspective was anchored in is that the team should be collectively improving its ability to look at a group of stories and articulate how much output those stories represent. Outliers will always occur and are good discussion points, but it is the macro trends in under/overestimating that we should be looking for in order to refine our estimation skill as part of achieving a more stable velocity. If we are re-pointing, while it may feel like we are giving a more accurate picture of reality, we are also making it more difficult to see and root cause those trends in a way that will sustainably reduce velocity variance. When I said gaming the metric, I was referring to the pollution of what velocity as a metric is supposed to be measuring, rather than an intentional manipulation of results to make the team “look better on paper.”
Hopefully that provides a bit more clarity on where my perspective was coming from, and I apologize if it sounded like I was implying that the team was behaving dishonestly.
The emotional response I got from the team when making, what I felt, was a fairly objective point about preserving the integrity of metrics so that they retain their usefulness in feeding continuous improvement is a good reminder about how to be an effective coach in retrospectives. While I was being dispassionate and had no hidden agenda behind my assertion, I did not show enough empathy for how my words would affect the team.
We must be intentional about creating an environment of safety for a team, especially a new team, so that they feel comfortable being brutally honest with themselves about what is working well and where improvements can be made. A team should never feel like metrics will be weaponized against them. That being said, it would be a breach of our duty as coaches if we tacitly allowed counter-productive behaviors to continue simply because it would cause conflict to resolve them.
Here are some tips for approaching difficult conversations:
1. Ask, hear, reflect.
The best way to understand how someone is feeling is to ask them. Frustratingly, this approach is widely overlooked. Don’t make assumptions, seek clarity and ask questions – what may seem obvious to you may not be obvious to the team, and vice-versa. Just listening to what people have to say is important, but it isn’t enough; we must put time and energy into truly hearing what they mean and digesting what the implications may be to how we need to contextualize our coaching.
2. Recognize different perspectives
As coaches tasked with playing a role in helping a team evolve, we may disagree with their current perspective on things. Nevertheless, their perceptions and opinions are the product of their past experiences. We must push ourselves to empathize with their circumstances, and not invalidate the impact that their lived reality has had on shaping whatever that perspective is. From that place of shared understanding, we can find the most effective path to re-framing the team’s thinking.
3. Be self-aware
This is the flip side of recognizing different perspectives. We are all different people with different lived experiences, circumstances, world views, and behavior patterns. While you may not always be able to fully understand someone’s frame of reference, it is important to be aware of the biases of your own perspectives and how they may be influencing your response to a situation.
4. Be vulnerable
We don’t have to have all the answers all the time. We may come across a situation that requires us to update our own thinking or seek out an explanation we don’t have at our fingertips; we may find ourselves in a situation where we have to take accountability for a mistake. Don’t feel like these situations undermine our credibility – rather, they are an excellent opportunity to model the kind of behaviors we would like to see the team exhibit when we ask them to update their own perspectives on things. Being honest in your vulnerability can go a long way towards setting the right tone with the team.
5. Be authentic
Authenticity is the basis of trust. Be yourself and be real. If you’re happy, express it. If you’re upset, express it (in a healthy way). Being human makes you relatable and approachable. Make efforts to form meaningful relationships with the teams you’re coaching, based on trust and transparency. When you do find yourself in situations where you must push the team outside their comfort zone, having that authentic trust is essential.