According to a recent Gartner study, at least 45% of product launches are delayed by one month. If this is something that you experience, continue reading. Sprint after sprint, are your developers working on the older features rather than delivering what your customers are seeking? For a competitive edge in today's rapidly changing tech landscape, as a CTO, a moderated and competitive feature release velocity becomes the mantra.
Given that the keynote for all successful Agile processes is “Ship fast, have a plan for what’s next, and never compromise on quality,”; it is evident that juggling these three variables can become quite a handful. Staying agile with your engineering process is never about speed at the cost of quality. The key is to maintain a consistent speed of delivering top-notch features to stay competitive.
This note is to demystify some apparent and some ignored reasons that slow down your feature release velocity. While we have also created a ‘scorecard’ that will enable you to self-diagnose and take action, I am sharing some top-of-the-mind insights that can be used to course correct right away.
My sales and marketing colleagues stick by a target board. They have dashboards that quantify their effort on a daily, weekly, monthly, and yearly basis. Every week it changes and sets the tone for progress. They use a North Star, a goal to achieve. The goal is a number to be achieved by date.
But, for engineering leaders, it gets tricky. One of the hidden reasons that could be slowing down your feature release velocity is a lack of clarity on your target board. Is the goal just the number of features released during a time period? Or can it be something even more specific and quantifiable?
When we have to quantify our efforts and those of our developers on the team with a number, we are left with estimates in the traditional sense. We need something more concrete and objective, not subjective.
Distributed teams that lack a common goal cannot be collectively aligned. The lack of such a common goal would leave the teams to work within thickened silos, celebrating the wrong directional milestone.
A study by Deloitte found that organizations that effectively set and manage goals are 23 times more likely to see strong business results. Specifically, organizations with strong goal-setting processes have 30% higher levels of employee productivity.
To address the challenge of slowed-down feature release velocity, it's important to have a well-articulated target board with OKRs defined by the right metrics.
You need to measure several micro metrics across Speed, Quality, and Throughput to accommodate performance relativity and unique team structures.
This will help your team to focus on what matters most and avoid wasting time on less important tasks. Having a clear goal empowers autonomy in the team and brings everyone on the same page to deliver features faster & prioritize better.
When developers in a team lack motivation or are overburdened by work, they start showing signs of burnout. You will see that either they are working on weekends to meet deadlines, asking for sick leave too often, shipping poor quality that is resulting in a lot of production bugs, and so on.
They bring a dispassionate sense to the team. This influences them to work in a disengaged manner, which further affects the speed at which they work and the quality of features that get shipped in a given sprint cycle. This deteriorates sprint after sprint sabotaging the desired feature release velocity on the whole.
When your team of developers is not in their best spirit and energy, the low enthusiasm reflects in the quality of work and the speed of production. Great Resignation is a result of burnout, one of the top few reasons. In a research by DevOps.com it’s confirmed that 83% of software developers feel burnout from their work.
Burnout can be reduced by acknowledging burdened developers and celebrating those who have gone the extra mile. By evaluating who has more time to contribute, better workload balancing can be administered, which further leads to trust in leadership among teams. Proactively assigning jobs based on skill, ability, and seniority would allow a better flow and rhythm of feature delivery. It would also improve the quality of features that is sent to production.
This is a huge topic. It’s not a single process that I can point to which contributes to the slowdown of feature release velocity. It includes a few factors.
Another hidden reason that could be slowing down your feature release velocity is to be working on huge PRs. As a best practice, it is best to plan tasks in such a way that every PR will be small. Lengthy PRs are those with longer lines of code and hence more time spent on reviewing with a lot of back and forth.
When features are too large, it can be difficult for your team to tackle them effectively. Instead, try breaking down larger features into smaller, more manageable pieces. This will help your team to focus on one thing at a time and make steady progress.
On ground reality, this is what happens: Does this ring a bell?
We often see that the data on Hivel reveals that bulky PRs are often marked as approved in less than one minute time with the comment “LGTM.”
Additionally, shorter iterations can help your team to move faster, roll back easily, and deliver to end users in a truly agile way.
Writing concise and clean code is crucial to ensuring that your software engineering team can maintain high feature release velocity. In addition to reducing the amount of code, it’s also important to ensure that the code is well-structured, easy to read, and follows best practices.
Technical debt refers to the work that your team needs to do to fix or improve existing code. Technical debt can accumulate over time if your team doesn’t have a process for addressing it. Managing tech debt is crucial to maintaining high feature release velocity, as it can quickly accumulate and slow down your team’s ability to deliver new features.
Rather than aiming to deliver a large feature in one go, consider delivering smaller iterations that build up to the final feature. This approach will allow your team to deliver value to users more quickly while also giving them more opportunities for feedback.
Aiming for fewer lines of code per feature, ideally less than 400 LOC (lines of code), can improve the review process. By doing so, you can further improve the quality of your codebase, reduce the amount of time needed for debugging and testing, and ultimately increase feature release velocity.
One approach to managing tech debt is to establish a process for tracking and prioritizing technical debt items. This process should involve regular code reviews, identifying technical debt items, and assessing their severity and impact on the codebase.
Another way to manage tech debt is to adopt a strategy of continuous improvement. This involves taking proactive steps to identify and address technical debt items as part of your regular development process. For example, you could implement a process for refactoring code as part of each sprint or iteration or allocate time each week to address technical debt items.
As a top engineering executive, it's crucial to have real-time insights into both big-picture and small-scale aspects so you can effectively lead your teams. Different layers of visibility will help you make decisions on matters of diverse magnitude.
Let me take an example here.
If you had to find out which of your teams are shipping more features vs. which of those are being a custodian of quality, how would you do it today? You may reach out to your team leads and probably depend on different lines of communication, your 1:1s, or some kind of subjective documentation.
But what I told you is that there are ways to extract data and use that to guide your teams to do better. Surprised?
Having answers to the following questions in the form of objective insights backed by real-time data can help you make those decisions in minutes instead of a few days or weeks.
Answering more of such similar questions would help you in improving feature release velocity in each quarter. With constant hiring, your new developers onboard can use the best practices that are already under implementation and improve their onboarding time. They can start contributing to the codebase sooner than the industry and team averages.
Below is a quick summary of the hidden reasons that lead to poor feature release velocity and what areas should you work on to improve your Feature Release Velocity. We recommend that you dive deeper by using our self-diagnostic tool called the Feature Release Velocity Scorecard to evaluate which areas should you focus on more vs less.
Hidden Reasons for a Poor Feature Release VelocityAreas that you need to focus to improve Feature Release VelocityNo Target Board or GoalsSetting goals across speed, quality, and throughputDemotivated developers or an unhealthy team cultureTeam Well-being and avoiding burnout signalsProcess breakdowns such as bulky PRs and too much tech debt.Process Efficiencies across coding time, review time, reducing tech debt.Lack of Visibility due to remote and distributed teams or multiple layers of hierarchy.Visibility for the Leadership
Releasing new features quickly is essential for staying competitive, but it's not always as simple as throwing more resources at the problem. Hidden factors can slow down your feature release velocity, and it's important to identify and address these issues to ensure that you can iterate and innovate quickly.
By taking a holistic approach to improving your feature release velocity, you can streamline your processes, reduce friction, and get new features into the hands of your users faster.
Improve Feature Release Velocity. Try Hivel.AI for FREE