With the advent of DevOps and Agile software development methodologies, companies are designing new products and features at unprecedented rates. In an environment where speed is paramount, engineering velocity is one metric you want to keep a close eye on. It offers a snapshot of your team’s productivity and ability to keep up with changing demands of the industry.
To sustain upward trajectories in software development, it is important to keep track of your engineering velocity. Doing so gives you an accurate idea of where you stand in relation to your organizational goals and helps you formulate realistic plans to get your team to where it needs to be.
In this article, we look at how developer portals can provide the visibility you need into the status of your engineering velocity metrics and the steps you can take to achieve your team’s development goals.
What is engineering velocity?
Developer productivity is an umbrella term that describes a set of complex interactions between various aspects of a developer’s contribution to the team. These include efficiency, code quality, and the more effective component of developer satisfaction. Each of these is an equally important driver of developer productivity, so it is futile to zero in on one and neglect the others.
For instance, engineering velocity, although one of many measures of efficiency, both influences and is influenced by other aspects of a developer’s productivity. However, to strengthen the interactions between them, it is worthwhile to spend time optimizing for each of these components in isolation.
Engineering velocity is the amount of work a software development team completes within a given period. Put simply, it measures how fast a team can work and achieve its targets. It is a relative measure, in that it is calculated based on the time taken to complete similar work in the past. As a result, it makes little sense to compare velocities with other teams. Instead, it is useful to see how a team’s productivity progresses over time.
In agile systems, teams decide to assign a certain number of story points to every piece of work that needs to be completed. Adding all the story points gives you a good idea of the amount of work that will go into completing a project. Based on their performance in previous sprints, teams estimate the story points they will aim to work on in the upcoming sprint. Typically, the number of points they can finish in that time frame is their engineering velocity, which factors into the larger question of their productivity.
To understand velocity better, consider the DORA metrics. Measures like deployment frequency and lead time to change are great examples of engineering velocity. The speed at which you are building and shipping software - for instance, the amount of time it takes for a new feature to enter production - is indicative of your team’s engineering velocity.
Why is engineering velocity important?
Engineering velocity is especially useful when planning future sprints or next steps for the team. It enables you to predict reasonable deadlines and prioritize certain tasks or projects. Only when you have a reasonable idea of how fast your team works can you set realistic targets and work towards them.
However, it is only useful when considered in tandem with other metrics such as code quality. Large quantities of output pushed faster than before are meaningless if they are of poor quality. As a result, velocity is only part of the puzzle of efficiency and by extension, of developer productivity.
How can you improve engineering velocity?
Because a significant portion of your team’s developer productivity depends on engineering velocity, it may initially seem like a great deal to tackle. However, velocity is so ingrained in the entirety of your processes that making small changes across your team’s workflow will go a long way in ensuring a steady improvement in your engineering velocity.
Clarify expectations and goals
This holds for any project that you take up. All relevant parties, especially your developers, must have clarity on what is expected of them and the scope of the project. Everyone should be on the same page about the status of the project, the short and long-term objectives, as well as the role of each person in realizing those goals. Not only that, but it also helps the team feel more engaged and motivated when they understand the reasons behind a particular plan or strategy. That is crucial to ensuring speed and efficiency in the work as it prevents indecision and equips your team with the knowledge they need to do their job.
Keep communication channels open
In a similar vein, transparency is paramount to an efficient and collaborative workflow. Team meetings are a solid avenue to be upfront about what is going well and the challenges that the team is faced with. Be sure to encourage participation from developers so that they may voice concerns and share wins. Consistent communication in this regard makes team members feel included and ensures that management is not out of the loop and caught off-guard.
Don’t skip retrospectives
Retrospectives are another great tool at your disposal, as a lot of the solutions to issues surrounding productivity lie in the details of your team’s workflows. Retrospectives serve as the bridge between two sprints, creating a space for reflection and subsequent planning. Team members can discuss the successes and failures from previous sprints, which can drive conversations about troubleshooting and more general brainstorms around the way forward. If velocity has decreased over the last few sprints, for instance, it is worth examining possible reasons and figuring out what can be done to remedy the situation.
Don’t lose sight of what matters
Improving engineering velocity is not merely a matter of increasing it. It is still important to fix bugs early in the process, maintain code quality, and abide by coding standards. Neglecting these considerations can lead to poor quality releases, which despite having been shipped quickly, can slow down progress on the project.
Invest in a strong foundation
Scaling your business comes with its fair share of challenges. It inevitably influences engineering velocity as the team’s bandwidth and capacity may not necessarily grow at the same rate as the targets being set. In this case, building a solid foundation from the get-go is beneficial.
Having certain processes and workflows defined is useful so that developer onboarding is hassle-free and developers can focus on building the product and shipping releases at a pace that aligns with your goals. For example, setting clear standards and expectations around code testing and review practices in the early stages ensures that these are well integrated into the team’s workflow and will not slow progress.
Setting up norms and best practices for your team is crucial to ensuring that everyone is on the same page, leading to fewer bouts of confusion or conflict in the long run.
Testing is the cornerstone of high-quality, reliable software. Avoid leaving testing to the later stages of your software development lifecycle. That’s because there are often errors and bugs that can be caught and resolved in advance before they affect other parts of the product. Customer experience and developer motivation, for instance, can also be affected negatively when there are too many bugs to tackle in production.
Instead, test from the early stages onwards, and do so consistently. Automated testing is a great option, as it frees up bandwidth for developers to focus on fixing bugs and developing the software. This inevitably increases engineering velocity, which can be severely impacted if bugs are left unattended until the last moment.
Optimize incident management processes
Testing regularly motivates a quicker incident management flow. The quicker you can locate bugs, the quicker you can fix them. Not all errors are the same, including in the time and effort required to fix them. Planning a strategy to tackle various errors is an effective way of minimizing the number of resources you deploy for this purpose. An organized on-call system, for instance, will enable your team to push bug fixes systematically without causing a breakdown of your systems.
Center developer experience
Ensuring that your developers are satisfied at work and feel supported is of great importance as developer productivity is partly a result of their quality of life in the workplace. Make an active effort to reduce the effect of any obstacles to their workflows, from slow internal processes to ineffective testing strategies. These directly impact their daily productivity, which then becomes visible in metrics such as engineering velocity. It is also important to shift focus from individual developer productivity to building systems that support and enable developers to do their best work.
How can developer portals help?
In addition to the best practices listed above, setting up an internal developer portal is sure to positively influence how your team fares vis-à-vis engineering velocity. The impact is twofold with developer portals. Not only does having one directly contribute to velocity, but it is also a useful tool for measuring velocity, especially when it comes to the inputs and outputs.
Let’s look at how developer portals can help in finer detail.
- For developers, developer portals can act like a single pane of glass that provides visibility into everything that the team is working on. A developer portal houses all relevant assets, from pull requests and JIRA tickets to on-call documentation. It also includes the team’s action items, from initiatives as well as Scorecards across project readiness, operational maturity, and service standards.
- One of the greatest strengths of developer portals lies in their ability to reduce tribal knowledge. The portal does so by increasing the team’s visibility into the services that exist, clearly-defined ownership, and well-organized documentation, all in a single place. As a result of bringing all this information into a single place, the effects of tribal knowledge are mitigated to a large extent. Consequently, this impacts the amount of time it takes for the team to build the product and meet project goals.
- Additionally, there are tangible benefits of developer portals such as improved inner sourcing. Engineering velocity is partly about the frequency with which you are shipping and releasing specifically important features or bug fixes to customers. In a large microservices environment, you may find that multiple teams are building the same types of services multiple times, leading to duplication of work.
A developer portal, through the service and resource catalogs, can improve inner sourcing by giving the team visibility into what has already been built and what the current status is of those services. It can also display information about who owns those services, enabling a developer to reach out to them. This helps teams steer clear of unnecessary duplication and promotes service reuse, which then ultimately also improves your engineering velocity.
- Another important component of engineering velocity is ongoing initiatives. Action items such as package version upgrades, platform migrations, operational review outcomes, and security initiatives are primarily manual in nature. As a result, there is a significant amount of toil involved for developers, as they must understand what services they should be working on, what is remaining and what is missing, as well as what they have completed. Then, they must report that backup to management and make sure that management has eyes on the progress made. Broad initiatives of this kind demand great amounts of toil, and at any point in time, multiple initiatives are going on.
The developer portal comes in handy at this point. Through Scorecards, initiatives, and action items in the developer portal, you can do away with a large portion of the manual effort and toil that developers have to go through for these initiatives. This is because, with the portal, you can give them visibility into what initiatives are affecting them and their teams specifically. Details concerning what is yet to be completed for each of the services are also made available, which is especially useful when developers are planning and prioritizing action items. The portal can also automatically report relevant information to the engineering manager in charge of the initiative.
By reducing a great deal of manual overhead, you actively improve the team’s engineering velocity. This is the case both for ongoing initiatives, as well as more general feature development. The developers not only have more dedicated bandwidth but the amount of context-switching required is also reduced, which also contributes to improved engineering velocity.
- Not only does a developer portal make it easier for your team to work faster, but it also helps you track the team’s engineering velocity. Since all relevant data is stored in a single place, you can easily track DORA metrics, for instance. A developer portal helps shape and keep track of both the input and output flows. You can measure input metrics and identify whether the team is doing everything that needs to be done when it comes to improving your engineering velocity. You can also check if you are seeing the impact you hoped to see from an engineering velocity standpoint with regard to the outcomes. Being able to keep an eye on these metrics is a huge benefit as it can drive informed decision-making, helping you efficiently reach your velocity goals.
Prioritize engineering velocity
Engineering velocity is about a lot more than just speed. Its interactions with various aspects of the developer workflow as well as other productivity metrics reveal that improved engineering velocity is beneficial in more ways than one.
There are multiple ways to arrive at the velocity that is most suitable to your team and your software development objectives. Of these, setting up a developer portal will have the greatest impact on your overall productivity and everyday operations. In particular, the developer portal can help keep track of engineering velocity metrics on both input and output fronts, as well as improve them by offering visibility, improving inner sourcing, and supporting ongoing initiatives.
To get started, set up a Service Catalog and relevant Scorecards with Cortex. You can also book a demo with us to learn more about putting together a developer portal and improving engineering velocity.