Why Predictability Trumps Velocity in Software Engineering

Published on
Product Minting

In the tech world, velocity is often the go-to yardstick for measuring a development team's productivity. Velocity is an evaluation used in Agile software development to gauge the amount of work a team can complete in a given time period, typically represented by story points or user stories completed in each iteration. In other words, it's all about how fast the team is cranking out code and pushing features. But, while speed is cool and all, it can lead to poor results and a heap of behind-the-scenes messes if not balanced right.

Although there are a lot of other measurements that, accompanying each other, make up a great system for tracking down progress, velocity remains one of the most popular and, therefore, one of the most misapplied.

The Allure of Velocity… And Its Perils

Speed often takes center stage. Teams pride themselves on how quickly they can bring a new feature to life or adapt to the latest market shift. This drive for velocity speaks to a desire to keep abreast of competitors, to keep users engaged, and to continuously innovate. The thought process is simple: the faster you move, the more you achieve, and the more value you deliver to your stakeholders, respectively.

Let's break it down now. Going full-speed can sometimes mean missing out on something much more important — the ability to work with fewer to no burnouts, therefore with consistency. Imagine building a super-tall building super-fast but with an unstable base. Over time, this can pile up a ton of tech mess — that's the hidden cost for those quick-fix solutions that will bite back later. Sure, lightning-fast delivery has its allure, but it's worth thinking about the headaches it can bring afterward.

Predictability: The Mighty Tool

Predictability, as a measurement, refers to the consistency and reliability with which a team or system delivers results over a given time period. Rather than zooming in on velocity, teams ought to shift their focus toward enhancing predictability.

There are several reasons for this:

  • Setting clear expectations with stakeholders.

    A team that delivers varied results — 100 points one month, then a mere 10 points for the next two — can be a rollercoaster for stakeholders. The unsettled outputs leave stakeholders in a dilemma, unsure of what to expect next. Instead, a team that consistently delivers, say, 40 points month after month becomes the MVP — they become the reliable player in the game. And that’s what the business realm truly yearns for — predictability.

  • The fewer the errors, the longer the game.

    While unpredictability might bring occasional bursts of brilliance, it's the steadiness of predictability that truly wins in the long run. Here’s a thing: the roadmap to predictability isn't universal. Each team has its own journey, for sure. Yet, there's a pattern to the top performers.

    Mature agile practices are the common thread among high-performing predictable teams. Whether they're immersed in Scrum, Kanban, or a blend of methodologies, these teams have pinned down the rhythm that aligns with their core, allowing space for both structured work and creative freedom. On the other hand, there’s an ever-lasting drive to enhance, to make every sprint or iteration outshine the previous one.

    Let’s consider a specific example. Atlassian’s Jira started as a simple bug and issue tracker but has grown to be one of the world's most popular project management tools, providing its services to a wide range of industries. There are, of course, a huge number of various factors that played a role in the company’s ascent, but predictability is hands-down one of the most important ones. With a history of consistent iterations (rolling out consistent and regular updates), a feedback loop, an expandable ecosystem, and a transparent roadmap Jira has secured its position in many organizations globally.

The Balance: Velocity vs. Predictability

Although my foremost aim in this article is to show why predictability trumps velocity, my duty is to mention that the best practice is always a good balance between these two. No doubt, when it comes to choosing the most fair measurement, predictability is something promising the longest game. But if you have the ability to build a multifaceted system of assessment, finding the way to calibrate both (or even more) measurements is the best way to go.

Finding that golden middle ground requires a hybrid approach. This doesn't mean merely splitting the difference, but rather integrating both elements into the development lifecycle. Iterative development, for instance, can provide bursts of velocity during specific sprints, followed by periods where predictability and refinement take precedence. Recognizing the value of both speed and consistency, teams would have the ability to tailor their approach to specific projects and phases, making use of the strengths of each to produce a product that is both timely and reliable.

To conclude, it is hard but truly important to keep in mind that the realm of software shouldn't feel like an endless burden. When already intricate engineering tasks are compounded by problematic and at times shallow metrics, the genuine essence of the work gets obscured, often escalating unnecessary tension. If you're at the helm of a tech team, it's pivotal to reflect on how you measure success and guide your crew. The best of all is to ask and keep checking on fellow developers that you aim to assess.

The DevOps Writing Contest is sponsored by Aptible. Aptible’s hosting platform automates the work of provisioning, managing, and scaling infrastructure, so developers can focus on what actually matters: their product. Get started for free with Aptible.

Discussion (20)

Not yet any reply