How to Measure Code Quality: 7 Metrics Every Engineer Should Know

Cate Lawrence
Cate Lawrence
5 min read
High-quality code is critical to creating functional error and bug-free software that is easy to edit and understand. But while we sometimes spot our own errors, we need to really dig a little deeper.

Measuring code quality lets Engineers troubleshoot effectively, prioritise their time and run better sprint planning meetings. With these code quality metrics, engineering teams can see trends and patterns of the problem areas that need fixing.

How to measure code quality: The 7 most critical qualitative metrics

Do a bunch of reading on code quality, and seven things appear consistently as a way to measure your code quality. You can ask yourself these questions that are as much about how you code, as your bigger workplace priorities:

  1. Can your code be easily read by even beginner developers?
  2. Is your code extensible, can it be edited by developers who aren't the original author?
  3. Is your code easy to maintain? 
  4. How's the code for portability?
  5. Is your code well tested for quality and bugs?
  6. Does regularly updated documentation accompany your code?
  7. Is your code refactored regularly to reduce the problem of technical debt? 

Stepsize is a user-reporting tool that helps engineers look at these qualitative metrics. You can create & prioritise technical issues and gradually improve your codebase quality.

It’ll help you answer questions such as:

  •  Does this issue slow down your development? Will the next sprint be affected by it?
  • How difficult is it to work with this code? Can other Engineers understand and change it quickly?
  • How does this issue affect our customers?

These metrics are impossible to automate but you can create a habit in your Engineering team to report and address technical issues on a regular basis.

Quantitative metrics

The 1970s were a big time for software development, and two key schools of thought emerged that aim to improve code quality by reducing code complexity, especially regarding maintainability: 

Halstead Complexity Measures

Image source 

The Halstead Complexity Measures offer an algorithmic way of identifying the measurable properties of software and their relationships with each other. These metrics include vocabulary, program length, the number of bugs, and testing time. They are primarily used to measure maintainability. 

Cyclomatic Complexity 

Cyclomatic complexity counts the number of linearly independent paths within your source code. The hypothesis is that the higher the cyclomatic complexity, the more chance of errors. A modern use of cyclomatic complexity is to improve software testability. 

Yes, you can automate that shiz:

If your eyes are blurring over as you slept through the quantitative metrics class at university, don't stress. There's plenty of tools available that help teams automate the code review process: 

A static code analyser can help you highlight possible vulnerabilities within 'static' (non-running) source code, such as security vulnerabilities. 

OWASP keeps a great list of Source Code Analysis Tools. There's also a mammoth list on Wikipedia, including tools suitable for more esoteric programming languages. 

Tips on how to improve code quality

Image source

A 2020 Code Review survey by Smart Bear found that the number one way a company can improve code quality is through Code Review. Results also indicated that Unit Testing is the second most important at 20% of responses, followed by Continuous Integration and Continuous Testing. 

What's significant about the top six tasks is that they require intention (they don't just magically happen). Even better, you can largely automate them. 

Automating tasks makes it easy to incorporate them into your everyday work tasks rather than something that involves a mammoth undertaking to fix. 

Would you rather deal with tasks like technical debt and code refactoring in small increments or have to block out large chunks of time to fix them because your code smells? Has legacy code your team should have dealt with stopped you from bug fixing, and are project deadlines pushed back time and time again? 

Image source

Then there are things like style guides, documentation, and clear version control. How a company prioritises these often depends on their turnover - a short-staffed team with high turnover is unlikely to make these a priority, nor training and onboarding. 

How to choose the right code quality metrics for your team

Ultimately, what metrics serve you best will depend on a range of factors. These include: 

  • The size of the team.
  • The level of experience in your team.
  • Passion projects (some people love code refactoring while others are happy writing documentation, for example).
  • Company values - does your company prioritize code quality, or is it simply ship fast and fix later only if more than a handful of people complain?
  • Time management: How often do you allocate time to work on bug fixing and technical debt.

Start tracking code issues and reducing technical debt

Many great tools help measure code quality. However, there are technical issues that affect your code quality that these tools simply can't catch. 

If you’re looking for a sustainable solution for tech debt management in your engineering team, you need Stepsize. It’s the world’s first and only bespoke tech debt management tool. Track and manage issues directly from the IDE, and create issues directly linked to code. For engineers, this means no more context-switching and high-quality issues that can be prioritised based on impact and fixed. And because it integrates with Jira, your PM will love it too.

Learn how to get started with Stepsize here. It works with Visual Studio, VS Code, JetBrains.

Track and fix technical debt without leaving your editor.

More articles

No items found.
No items found.
High-quality code is critical to creating functional error and bug-free software that is easy to edit and understand. But while we sometimes spot our own errors, we need to really dig a little deeper.
No items found.

Ready to improve your codebase?

Get started on our free plan today.