Measuring Productivity of Software Development Teams
You can improve the effectiveness of your development teams by applying the right DevOps measurement strategy.
Software development teams have been measured in ways that don’t always make sense.
A good example of this was when dev teams were measured by the number of lines in the code they wrote, or Ops teams were measured by the number of tickets they resolved.
What was the main problem with this kind of metric? Organizations were not really measuring the productivity and capabilities of their teams nor considering the complexities of the work. They also did not consider their teams as a whole. They looked at metrics from individual team members, rather than evaluating the effectiveness of the team.
So, knowing this, how should I measure the performance of my teams?
Dora Metrics: Efficient Way to Measure Teams Performance
In 2014 Nicole Forsgren, Gene Jim, and Jez Humble started the DORA (DevOps Research and Assessment) reports, which focus on the study and promotion of DevOps practices. They conducted comprehensive research on the practices and metrics that drive exceptional performance in software development and delivery.
Thanks to the work that the DORA team has done during the last decade, we now know that there are more efficient ways to measure the performance of our teams using metrics like the lead time for changes, the deployment frequency, the change failure rate, and the time to restore services. Organization are now dealing with how to measure these metrics and how to properly implement them.
These metrics will help us better understand how to continue improving. They’re also dependent on the DevOps culture in our organizations.
When we talk about DevOps culture, we do not make any reference to toolchains; we purely talk about the cultural impact that a good DevOps strategy brings to our organization. To measure where we are in that cultural change, the DORA metrics give us a good North Star.
The first thing that we need to do is understand where we are now. This is the basis of any measurement strategy. We compare how our team is improving quarter by quarter. By understanding where we are now, we are going to be able to understand where the major bottlenecks are in our development process.
Some organizations will find out that they need to make improvements in the four areas, while others will find that they just need to make small adjustments to their processes. The most important thing when we start measuring these metrics is to start incrementally so we don’t overwhelm our teams.
It’s important to understand that this is not a process that should be changed from one day to the next. It takes time to create a proper plan and strategy to improve these metrics. The plan itself is as important as measuring the performance of our teams. Without a good plan, we will end up overwhelming our engineers. Instead of increasing their performance, we will generate the opposite.
How Can We Create a Plan That Helps Us to Succeed?
Here, we have a few more things that we need to consider:
- When we talk about deployment frequency, mean time to recovery, or even lead time, we want to deliver as quickly as possible.
- To achieve that velocity, we have to ensure that in the plan or process, we consider quality, testing, and security as our main objectives. It doesn’t matter how much faster you can go; if you don’t plan your quality, testing, and security strategy, the plan will fail.
- It’s important to take into account our customers’ feedback, as they are going to be the ones who will let us know how happy or overwhelmed they are with the changes we’re implementing.
Measuring the performance of our teams is very important, and your success will depend on how well you plan the process to arrive at the ideal state of DevOps culture. Always keep in mind the importance of quality, testing, and security as part of it. Success is just a matter of time when you have a well-structured plan.