Today’s development processes are nothing like they were even just a few years ago. The process is significantly more agile, DevOps has risen in popularity, and enterprise-level organizations are now deploying code multiple times per day.
If you’re a smaller engineering team trying to keep up with the stars of the software industry, you might start looking at how to improve your engineering velocity.
- What is engineering velocity?
- How do you measure engineering velocity?
- How to improve engineering velocity
What is engineering velocity?
Engineering velocity focuses on the speed of building high-quality software development projects. Whether your software development team is focused on internal or external projects, measuring your engineering velocity is important since it helps you maximize the time and team resources you have available. With a higher velocity, you’ll see your team increasing their output of code while maintaining low numbers of bugs, security issues, or user experience (UX) design flaws.
Great meetings are just the start
Level up your meeting habits to boost engagement and productivity with a collaborative meeting agenda. Try a tool like Fellow!
How do you measure engineering velocity?
There are a few key metrics that go into measuring engineering velocity. Generally, you’re looking to measure quality and speed. More quantitatively, you might look at measuring:
- The speed of each sprint (how many days did it take you to complete?)
- The number of bugs found in each release
- The time necessary to patch each bug or vulnerability
- The percentage of time developers spend fixing bugs versus building new code
- The number of releases deployed each week or each month (or the average time between releases)
When creating a more efficient engineering process and faster velocity, you should aim to keep metrics like the number of bugs or time to production low. However, you should aim for your percentage of accuracy or number of releases deployed each period to be higher! To effectively measure engineering velocity, always pair one-speed metric with one quality metric. Without both, your team is not truly improving your productivity and output.
How to improve engineering velocity
- Set clear expectations
- Manage financial blockers
- Be transparent
- Track OKRs
- Foster communication
- Limit issues in production
- Boost motivation
- Increase team morale
- Host retrospectives
- Ensure there are no delivery issues
1Set clear expectations
Keep your team in the loop so they know you’re beginning to measure their velocity. Set clear expectations with them and ensure you outline your current status, your goal metrics (short and long term if you can), and what action items are required from each team member to get started. It might be helpful delivering your team-level expectations in engineering team meetings, and leaving individual-level requirements to your one-on-ones so you’re sure the message gets across.
2Manage financial blockers
A well-built application is what will draw in more revenue for the company in the long run. Manage financial blockers to ensure that your team isn’t wasting time waiting for a new tool or for a new developer to be hired. Planning in advance can enable your team to maintain their momentum and continuously work on building a better software product. If you’re working with upper managers to get these financial blockers approved in advance of when they’re needed, it might make sense to conduct a return on investment (ROI) analysis of the benefits (long-term SaaS revenue, for example) that come from those new expenses.
The best way to ensure your goals are achieved is to get your team aligned on the same path to the goal. For example, hosting regular team meetings can be a great way to communicate next steps, challenges, and possible solution alternatives. Being transparent with your team can make them feel like they are more included in the project, which in turn helps drive team motivation and velocity.
It’s also helpful to be transparent with the upper-level managers who are supporting your new goals. As you face challenges with increasing engineering velocity, other managers may be able to provide advice, budget approvals, or other support that can help you meet your goals.
OKRs are the objectives and key results that you measure throughout your project. Tracking OKRs helps identify if your project is successful or if you should consider alternative activities to drive more results for the project. Below is an example of what OKRs might look like for a software engineering team:
- Objective: Improve quality of releases to production
- Key result 1: Decrease the number of bugs in each release from X to Y
- Key result 2: Run an additional unit test each release
With Fellow, you can stay on top of your team’s goals by clearly recording, defining, and tracking the progress of your OKRs in Fellow’s Objectives tool. Fellow also lets you quickly review objectives during your team meetings.
Not only should you be clearly communicating with your team, but your team should also be able to effectively communicate and collaborate together. Engineering velocity is measured on the team level, with each individual-level contribution affecting the team goal. Therefore, it’s super important that each individual contributor is aligned with the team goal and aware of the impact that their contributions hold.
Having frequent team meetings, such as scrum meetings, can also help team members be more aligned and solve problems more frequently together.
6Limit issues in production
Having a high number of issues in production will significantly impact your internal (that is, sales, product, and support) teams and customers. Bugs frustrate the customer and can lead them to stop using your product altogether. In turn, this negatively impacts the internal customer success, sales, and product teams. Running developer team training for secure coding best practices or encouraging more thorough quality assurance (QA) processes can help limit how many issues get passed through to your production environments.
Happy team members lead to more productive results, as you’ll be equipped with a team that is excited to build a new project ahead. Some ways to consider motivating your software engineers includes:
- Offering flexible working hours so they can work when it’s best for them
- Encouraging independence and autonomy over their projects so they develop a sense of ownership in the project success
- Creating team mentorship opportunities so they can learn from each other
8Increase team morale
Surprisingly, only 30% of businesses track employee engagement and actively pursue initiatives to increase engagement in the workplace. Being engaged and having a feeling of purpose at work improves team morale, which in turn improves output. Another benefit of a high team morale includes higher employee retention. Keeping your employees working on the same team for longer means that these team members will have more expertise on the software and be able to produce code faster and with less errors.
Identifying challenges and asking for team support to solve them can foster team morale. This approach builds a collective “we’re in it together” mindset, which develops a feeling of purpose, inclusion, and motivation to meet the team goal. Over time, your team will develop a natural rhythm (or engineering cadence) which you can further leverage to improve your velocity.
Retrospective meetings are one of the five most important scrum meetings that software developers should host. These meetings are a coming together of all team members to discuss what went well in the previous projects. Through the meeting, you can identify common challenges, the impact of certain decisions on specific individuals or team areas, and ideate solutions to optimize the process going forward. If you’re part of a development agency creating software projects for clients, you may choose to host a retrospective meeting after each project delivery. If you’re managing an internal team, you may choose to host a retrospective meeting following each sprint or new release.
Below is a template to guide you on leading retrospective meetings with a software engineering team:
10Ensure there are no delivery issues
It’s one thing to build a great software project, and it’s another to get it delivered to the customer on time. One of the most common challenges that software delivery managers face is “death by process.” In other words, the over-management or over-complexity of a process which makes it more difficult to get the software delivered. Having an agile approach and trust in your delivery team’s expertise can make sure that you get the new release delivered in the most efficient and effective way possible.
When scaling the speed of your software production, it’s important to not forego quality. Maintaining strong coding practices, integrating QA or security testing, keeping your team engaged in the goal, and regularly reflecting on challenges in the development process can help you scale your development securely.
If you’re new to managing an engineering team or you’re not sure about the best way to approach improving your engineering velocity, it’s always helpful to get extra advice! Connect with your team in weekly meetings to get their input or reach out to other engineering managers that may have some insights to help you reach your goal.