Team leaders and tech leads have a very important job: managing engineers and helping them succeed. By measuring developers’ work with productivity metrics and providing them with feedback, leads will advance developers’ performance, identify bottlenecks and find ways to improve work processes. This will improve quality of code, time to market and customer satisfaction, as well as do good for the team.
But this is easier said than done. What’s the most accurate and efficient way to measure a developer's code and workflow? KPIs like number of bugs fixed or number of commits can be easily manipulated and “productivity” is a vague term that means different things to different stakeholders. In addition, too many KPIs that are not perceived as helpful by developers, will lead to a toxic environment and cripple team relationships.
To help, we’ve compiled a list of the top nine engineering metrics we find the most valuable. These metrics cover the work an engineer does individually, as well as part of a team. They include coding, work processes, and future growth. We hope they can help you, too.
How to Measure and Build Your Developers
1. The job is done
Bugs are unavoidable, and even a developer that does her or his best cannot always write bug-free code. However, good developers will learn from past mistakes, react to bugs quickly, and try to apply methods to prevent similar bugs from reoccurring. In other words, they finish the feature on time despite the bugs along the way.
Therefore, a good way to measure developers is not by the number of resolved bugs, but rather by ensuring:
- The same types of bugs do not reoccur over time
- Bugs are not reopened after resolving them
- Code is tested before committing (unit tests, system tests and regression tests)
- Features are delivered
2. Minimal code review ping pongs
Code reviewing is an effective way to improve code quality, learn from colleagues, maintain consistent code styling, and above all - reduce bugs in code. However, reviews often turn into endless threads of comments, questions, suggestions and fixes.
A good developer will be able to submit quality code that is clean and clear, so it doesn’t turn into an endless loop of comments and suggestions. In addition, they will be able to quickly fix the code according to suggestions.
If your developers are having a hard time with these back and forths, help them to:
- Differentiate between essential reviewer comments versus suggestions
- Raise a flag when the review is going off track
- Direct the reviewers to the purpose of the review from the get-go, to minimize feedback loops
3. Minimum regressions
Software regressions prevent features from functioning properly, or at all. These regression bugs could have significant long-term impacts on the business, which is why avoiding them should be a top priority for developers and their leads.
Measure your developers’ ability to submit code and features without breaking anything along the way. This starts out with the quality of their code, and ends with the regression tests they run.
If regressions are a recurring problem, reach out to them to find out why. Provide professional mentoring and guidance to help then clean up their code and build the right tests.
4. Long term vs. short term development priorities
Developers will have long and short term priorities: from tech debt to short-term delivery to long term investment in future platforms. Good developers will learn how to balance out this type of work by proper planning, consulting with tech leads and product managers and working efficiently.
Help your developers plan and prioritize their work. Provide them feedback on how they are able to manage it and how proactive they are when trying to solve problems.
5. Efficient onboarding to new code
When joining a company, moving to new projects or transferring to new teams altogether, developers often have to familiarize themselves with new code. Good developers are able to quickly master new code when they:
- Go through the documentation
- Find themselves a mentor
- Implement code onboarding and code tutorial tools
- Become familiar with the workflow for this new code
Efficient onboarding means they are able to become part of the project, contribute to it and perform - quickly.
6. Implementing new relevant technologies
Techniques, best practices, and tool features are constantly evolving. A good developer will continuously learn new ways to improve their coding and working methodologies, and implement them in their work.
This can be done through:
- Forums like Reddit and Stack OverFlow: looking for answers and asking questions
- Reading blogs
- Watching webinars and listening to podcasts
- Consulting with colleagues
A productive developer is curious and growing. As a team lead, we recommend you carve out a certain percentage of work dedicated to relevant learning.
Being a developer is not just about the code lines. Developing is also about teamwork and being part of a product and company. Therefore, it’s important that team leads ensure developers can cooperate with their team members and with other departments in a polite and amicable way.
8. Independence and Delivering
When faced with a big task, it might be tempting to procrastinate and well...go hide under a rock. But independence is an integral metric of productivity. A productive developer will be able to:
- Break the task down into sub-tasks
- Identify the scope of work required for each sub-task
- Raise a flag about explanations that are unclear or do not make sense
- Consult with the lead and product manager
- Set a realistic schedule
You can count on such an independent developer to be productive and to deliver.
9. Knowing when to consult
An effective way to deal with a problem is to consult with a team lead, about it. Your perspective, experience and access to more resources can help find a solution in minutes, not days. In addition, this will give you a clearer picture of the team’s status and capabilities.
Measure your developers’ ability to come and consult with you about various issues. Encourage them to raise a flag, ask questions and brainstorm with you to find a solution. Make communication with you the go-to channel, instead of the last-minute resort, so you don’t have to worry about what you don’t know.
Winning Teams & KPIs
Developers have a lot on their plates and this can be overwhelming. Clear KPIs from their leads can help them navigate and increase productivity, so they can deliver. Team engineering metrics can also help technical leads and team leaders define their expectations from engineering teams and gain insights into team management.
Once expectations are set, make them visible and set monthly and quarterly reviews with developers to provide feedback. We have a feeling you will see productivity and developer satisfaction shoot through the roof.
Chat with us on Linkedin and let us know how it goes.