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.
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:
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:
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.
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:
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 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.
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.
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?
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.
Ultimately, what metrics serve you best will depend on a range of factors. These include:
Many great tools help measure code quality. However, there are technical issues that affect your code quality that these tools simply can't catch.
The simplest way to start improving your code quality is to install Stepsize VS Code and JetBrains extensions and start tracking codebase issues with your team. You will quickly see how much information you already have to improve your code quality and ship functional software faster.