Developer Velocity Drives Business Performance. Here’s How to Start Achieving It
What is developer velocity and how can you facilitate it in your organization? Market analyst firm McKinsey defines developer velocity as “the ability to drive transformative business performance through software development.” This article shows you the four steps to developer velocity.
With technology powering all aspects of business, enterprises large and small have become – like it or not – software development houses. On top of their core industry and domain competencies, even organizations operating in distinctly non-tech industries, like automotive, entertainment and finance, need significant software development capability.
This makes developer velocity – a concept previously relevant only to traditional software development organizations – highly relevant to all organizations. What is developer velocity and how can you facilitate it in your organization? Read on.
Developer Velocity and the DVI
Market analyst firm McKinsey defines developer velocity as “the ability to drive transformative business performance through software development.” McKinsey realized that the keys to making this happen were part technological and part organizational. In addition to providing development teams with the right tools, enterprises need to empower their in-house development teams with an environment that encourages innovation, reduces points of friction, and maximizes developer performance and satisfaction.
To quantify how well enterprises were driving developer velocity – and especially to calculate the impact of developer velocity on business metrics –McKinsey surveyed nearly 450 large enterprises. Then, they created the Developer Velocity Index (DVI), which expresses how well an organization is equipped to move digital ideas into production, and the most critical factors in achieving developer velocity.
Examining nearly 50 parameters – from architecture, to engineering practices, security and development tools, and more – the DVI helps enterprises understand how to release higher-frequency, higher-quality software products. This is crucial in an environment where time-to-market is measured in days, not weeks. The DVI also helps enterprises retain software human resources – because enhancing the velocity of your existing, experienced assets is far more cost-effective than the complexities of hiring and training new development talent.
Not surprisingly, what McKinsey found was that companies with a higher DVI score are more agile, more responsive to market changes and customer demands, and ultimately better positioned for profitability.
Hands-On: Four Steps to Developer Velocity
Once companies internalize that developer velocity is a critical enabler for business, they need to make sure they’ve got the tools, culture, product management, and talent management to facilitate it. Here are four steps to start on the road to developer velocity:
Step #1 – Learn to Fail Fast
Failing is not a negative thing. Products fail when they don’t correctly meet requirements or customer needs – and this is good. Why? The faster products fail, the faster they can be corrected, and the more tightly suited they become to their target audience. Enterprises need to adopt A/B testing, feature flagging and other concepts to gain fast feedback on proposed changes in the product. Moreover, test-driven development (TTD), static code analysis, and a shift-left approach empower developers to find problems earlier, fix them earlier and move much faster – making product quality an organic part of the dev process. By adopting methodologies and technology that encourage agility and short iterations, developers gain a safety net. This gives them the confidence to raise velocity while relying on course correction that’s built into the process.
Step #2 – Build Developer Confidence
This sounds intuitive, but actually, it is not. Like anyone in almost any situation, developers move more slowly when they do not feel confident. By creating a culture in which mistakes are not just tolerated but encouraged, both product leads and developers gain the confidence to try new ways of doing things – many of which may be ultimately better and faster. When developers know that errors will be caught early in the dev cycle, before production and before bugs reach customers, they are more confident to try new ways of doing things.
So, how can we make this happen? Through error tolerance, encouraging a trial-and-error approach (while controlling investment in errors by failing fast), enforcing a review process and pre-defined KPIs, and remaining open to new ideas and unorthodox approaches. Also, consider adopting a pair programming methodology, and being liberal when you can in-code and design reviews.
Step #3 – Manage Technical Debt
Technical debt is the enemy of developer velocity. It’s what happens when years go by developing on old infrastructure, or after implementing many small changes in a hurry or without a proper plan, tools or libraries. Technical debt means that developers, testers and release managers have to invest significantly more effort to address each new feature or bug fix – lowering their motivation and raising frustration. Whether your organization chooses to deal with technical debt by rebuilding parts of the product inside the old code base or by adopting new quality tools and automation – closing technical debt is imperative to achieving better developer velocity.
Step #4 – Beware of KPIs
Although they were conceived to allow management to follow development progress, product and development KPIs can be false indicators of progress. Over-reliance on measurements can inadvertently incentivize developers to work toward the measurements themselves – making the metrics the target rather than a tool for reaching the target. For example, code coverage in testing is important, but as a sole KPI it may lead to naïve tests that cover the code, but not actual scenarios of interest. Setting goals closer to actual targets allow your teams to get to these targets faster, as opposed to defining KPIs which may divert them from your actual targets.
The Bottom Line
Whether your enterprise’s core business is potato chips, ice skates, widgets or diesel engines – your business is also software. Facilitating developer velocity will help your organization streamline operations, reduce customer churn, raise profitability, lower overhead and ultimately produce a higher-quality product with shorter time-to-market in an increasingly fast-paced marketspace.