These days most development teams work in an agile framework with regular evaluation meetings. This structure helps the team stay up to date on project conditions and progress. It also makes it possible to shift direction along the way. Agile methodology is beneficial, yet there is one area that usually does not receive enough attention – code quality.
This article explains why code quality should be a mandatory part of every retrospective and receive additional attention in the agile management of software development.
How have things been going since our last meeting? What have we achieved? Which features have been implemented and which ones are not yet completed? What have we learned so far? What needs to happen in the next period?
If you work with software development in an organizational context, you are probably used to addressing questions like these. Most development teams work within agile frameworks such as SCRUM or SAFe. The development work is split into tasks that are assigned to fixed intervals called “sprints” or “iterations”. At the end of each interval, evaluation meetings, commonly referred to as “retrospectives,” are held. The developers and stakeholders assess the overall situation, evaluate progress, and set the goals for the next interval.
Code quality – an overlooked element in agile software development
There are definitely many advantages to applying agile methodology and working in intervals with retrospectives at the end of each cycle. When this work method entered the scene in the early 2000s, it represented real progress.
The primary advantage of the agile process is the ability to adapt to the ever-changing business reality. The priorities, demands, and wishes of management can quickly change in our complex and volatile business reality. Applying the agile development process supports the agility of the business.
However, if you are applying the agile methodology to your working process and want to be certain that the software of a business can be adapted easily and effectively, you also need to pay attention to an area that is too often neglected – code quality.
Neglecting consistent attention to code quality in the development process will eventually result in a code base of low quality. And making changes in a low-quality code base is difficult, expensive, and very risky.
This means that when the business needs and priorities evolve or new needs arise, a low-quality code base might make it very difficult, if not impossible, to adapt quickly, predictably, and with flexibility.
If code quality is not given the attention it deserves, the codebase will become increasingly difficult to understand and maintain. Indeed, programmers colloquially refer to this kind of messy entanglement in terms of spaghetti or ravioli code.
Even if you are already using agile methodology in your work, this does not necessarily mean that the software developed supports the agility of your business.
High-quality code increases the potency of the business. When the codebase has agile properties, management can confidently change priorities, knowing that the development teams are able to estimate costs and delivery with good accuracy.
Three focus areas that ensure high code quality
We believe that creating and ensuring high code quality in software development requires a special focus in the following three areas.
- Management must understand and support the use of resources and energy that developers devote to continuously ensuring high code quality. They must understand that this is an investment that offers compound interest. The longer the codebase is alive, the greater the gain.
- Code quality must be incorporated into routines and workflow procedures. It must be discussed, incorporated into checklists, and be a fixed item on the agenda of every retrospective. In our article, “What is code quality and why is it important?” you can read more about specific steps you can take to ensure high code quality.
- It is highly recommended to use tools that collect source code quality data on a regular basis and transforms it into information that is archived in an orderly fashion. Such tools provide tremendous support for the ongoing efforts to keep code quality at the desired level.
CodeImprover – an easy tool that ensures high code quality
There are plenty of tools that ensure high code quality. If you work with Visual Studio for example, you have access to different code quality metrics(measures). The individual developer can run these measurements ad hoc, but if there is to be a systematic effect, the quality control must be part of mandatory and fixed routines that are followed up on a continuous basis. (see point 2)
If you work with .NET C# and your code is stored on GitHub, you can install CodeImprover’s GitHub apps and get started immediately. These apps are very valuable for developers, lead developers, and IT architects.
Are you a developer?
If so, it is worth mentioning that Code Improver’s GitHub apps give you instant feedback on all of your commits so you do not have to wait for a code review. This is a big advantage because it is difficult and time-consuming to go back and correct poor quality code days or weeks after you have finished your work. On-the-fly evaluations ensure that poor code quality indicators are identified immediately and can be seen in the context in which they appear. The feedback happens directly in GitHub and everything is integrated.
Are you a lead developer or architect?
If so, it is worth mentioning that CodeImprover’s GitHub Apps automatically adds an extra layer of review on pull requests, enabling the person in charge to take one final look at the code quality and potentially protect the main branch from being degraded by bad quality code.
CodeImprover Metrics analyzes the code quality of the changes and provides detailed, specific feedback. This makes it easy to address possible challenges with the specific developer’s code contributions, based on fact. It also gives a better overview of the size of a given quality improvement task. All of this happens as an integrated part of the workflow and the quality improvement recommendations are based on many years of best practices.