When I started as an Engineering Manager, I didn’t use any engineering metrics. I was always in a state of “my team is doing ok”, but I never understood the productivity & team health.
It was only after I moved to a different team that I started to face questions like:
Is the team delivering enough value?
How stable is the release process?
I started to realize that it’s necessary to keep those metrics at hand to answer these questions. It also helps me spot issues early and prioritize fixes.
In today’s post, let me share some of my tips in choosing engineering metrics!
💡 Key Takeaways
Align metrics with business objectives.
Start with popular metrics like DORA, and find more suitable metrics afterwards.
Associating Engineering Metrics With Business Goals
How do you make sure these metrics actually matter to your company?
Start by looking at your company's big goals. What does your business want to achieve in the next year? Maybe it's faster product launches or specific sales numbers.
Next, think about how your engineering work connects to those goals. For example, if you want to boost customer satisfaction, you might track active bugs or app crash rate. You can also chat with other teams like sales or customer service to get more insights.
Here's a quick way to link metrics to goals:
List short- or mid-term business objectives (e.g, sales, cost, etc.)
Identify engineering activities that support each goal
Choose metrics that measure those activities
Remember, good metrics are tied to business value.
Referencing Popular Engineering Metrics
When you're picking engineering metrics, it's all about understanding what works best for your team. If you don’t know where to start, I would recommend starting from popular metrics like DORA and SPACE.
Delivery Metrics - DORA
DevOps Research and Assessment (DORA) metrics focus on software delivery and performance. They include four main categories:
Deployment Frequency: Measures how often you send code changes to production. High frequency implies at a fast and reliable process.
Lead Time: Time taken from committing code to deployment. Shorter lead times mean faster cycle.
Change Failure Rate: Percentage of deployments resulting in a failure. A lower rate indicates good code quality.
Time to Recover: Time it takes to fix a failure. Quick recovery means less downtime and better user satisfaction.
By monitoring these, you can identify bottlenecks and improve processes. Google also provides an insightful walkthrough of how to measure them.
Health Metrics - SPACE
SPACE metrics offer a broader view of engineering productivity. They cover:
Satisfaction and well-being
Performance
Activity
Communication and collaboration
Efficiency and flow (similar to DORA)
These metrics help you understand your team's overall health and productivity. They go beyond just code output, looking at how well your team works together.
However, measurement are not as straightforward as DORA. Implementation usually depends on the team, but I would recommend measurements such as:
Team satisfaction surveys
Feedback from stakeholders
PTO & sick leave frequency
It’s usually more difficult to find the right spot in SPACE metrics. You won’t know which number is ideal. However, I would start with finding improvement points from surveys and stakeholders.
System Metrics - SLO, etc.
System metrics are for both managers and engineers. They help us catch issues directly and ensure our services meet user expectations. The key metrics include:
Availability
Latency
Performance
Errors
Dependencies
Most teams should already have these in place. If not, try services like DataDog (not affiliated) to start setting up the monitoring system.
Other Tips & Tricks
Less Is More: Critical Metrics Vs Vanity Metrics
It's easy to get caught up with numbers that look good but don't add real value—the so-called vanity metrics. These can inflate a sense of accomplishment but does not reflect any value.
While we might want to keep an eye on all available metrics, we only want to focus on all of them. As it said: metrics create incentives, that create behaviors, that create culture. Focusing on the wrong metrics encourage member to game the system, and focusing on all metrics encourage micro-management.
Focusing on critical metrics: Prioritize metrics that directly measure outcomes related to business objectives.
One exception is system metrics. If you use NewRelic or DataDog, we usually use a dashboard to observe the system health. Based on the SLO, in most cases, we want to keep all metrics under the threshold.
Measuring The Team Instead Of Individuals
When you're aiming for team success, measure collective progress rather than focusing solely on individual performance. This approach fosters a more inclusive and collaborative environment.
Encourage collaboration and teamwork: Metrics should reflect how teams are performing as a whole, not just individual contributions.
Avoid blame game: Track individual performance using other metrics like project deadlines & communication quality. Using metrics to measure individuals can encourage them toe game the metrics.
Share success stories: When the team hits a milestone, celebrate it. This builds a culture of appreciation.
Emphasizing team achievement over individual accomplishments builds a supportive work environment.
Avoiding The Pitfalls Of Metric-Driven Development
Metrics can sometimes lead teams into unexpected directions if not handled carefully. You have to balance between tracking progress and avoiding negative consequences of metric-based pressures.
Watch for negative behaviors: Metrics might encourage shortcuts or unwanted practices to meet numbers. Make sure to adjust metrics when spotting such issues.
Stay adaptable: Review and adjust metrics as team dynamics or project goals evolve.
Use metrics as tools for insight, not as a judgment.
Thank you for reading the post!
❤️ it if you like this article.
💬 Leave a comment if you have questions. Or let me know if you are interested in knowing any specific topics.
You can also find me on:
If you want more content like this, consider subscribe to my newsletter.
See you next time 👋