Developer, tech lead, project manager or manager, you are convinced of the importance and the benefits of software quality, and more particularly of source code quality. Having learned the principles of modern development (Agility, Clean Code, Craftmanship, Continuous Integration, etc.), you are full of enthusiasm and want to drastically improve the development environment of your team.
You then propose several projects to improve code quality (e.g. code review on pull request, linter application and configuration, test coverage and even test mutation, gamification, test virtualization with Docker, etc.).
And then… it’s a tragedy. Your hierarchy doesn’t want to support your project!
None of the projects you want to carry are validated. A double sledgehammer argument falls: “We don’t have the time and we don’t have the means”.
With a subliminal message: “The quality of the code… is useless for our business”.
Here are 5 arguments that we hope will help you convince your hierarchy, or at least peak their interest.
It is a fact that software quality has a price, but this price is quickly offset by a substantial gain.
On the other hand, not investing in software quality has a cost, much higher than the price to invest, and unfortunately few organizations know what non-quality costs them.
Several studies show that the gain comes essentially on maintenance costs. The more you invest in software quality, the cheaper the maintenance will be. The biggest gains (83%) come when 30% of the effort is spent on software quality [Source: Mckinsev.com].
In other words, if you spend at least 1/3 of your time testing and improving the quality of your code (refactoring, clean code, etc.), there is a good chance that you will reduce the number of bugs by more than half.
Do the math, it pays off quickly!
Produce code, quickly, and make it work. This is the number one goal of your hierarchy.
However, developers are more efficient when the code is of high quality. Indeed, nothing is worse than having to add a feature to a poor quality code or having to make an evolution on a code that is not tested!
R. C. Martin with his book on Clean Code explains this point very well. He shows that poor quality code is much more complex to understand and therefore more difficult to change. As for tests, there is no longer any need to prove their absolute necessity.
On average, we can say that it takes twice as long to modify a poor quality code.
If you want to meet the deadlines, you have to invest in quality !
Are you familiar with the broken window policy? If you don’t replace a broken window in a building, other windows will soon be broken and the quality of the whole city will deteriorate.
It is the same with software. If you neglect the quality of one piece of code, and don’t improve it quickly, the whole software will soon be of poor quality.
Developers often quote the Boy Scout rule (make the camp cleaner than when we entered it) and say that it should be applied to the source code. However, if your source code looks like woodstock, then no developer will improve it.
All this to say that you should never wait to worry about software quality. The longer you wait, the more damage will be done and the more expensive it will be to repair.
This argument is even more true in recent years. Developers have become a scarce human resource. Look at the number of applications for developers that we see today. It is impressive.
In fact, faced with such a profusion of offers, what developer today would want to join a company that does not invest in software quality? I’ll give you the answer: none!
We can compare this with the job of a garage owner in the last century. At that time there were two types of garages: those where tools were lying around on the floor and the floor was covered with oil, and those that looked like research laboratories with white tiles and perfectly arranged tools. Today, all garages look like research labs. No garage owner would want to work in a garage from the last century!
In fact, today we see many companies investing heavily in software quality with the intention of increasing its attractiveness to developers. Those who don’t do so see their attractiveness diminish and face great difficulties in recruitment.
This is now the case (almost) for security. A company is responsible for the security of its software. If a hacker succeeds in stealing information about its customers, it is now responsible before the law, and the indemnities will be important!
As for the quality of the code, we can say that it will soon become mandatory. We can already hear customers complaining and asking for compensation caused by a computer bug.
Not investing in software quality will soon be completely unwise.
We propose here 5 arguments that we hope will convince the last reluctant to invest in software quality. We are indeed convinced that such an investment allows to obtain many advantages!
Do not hesitate to come to us or to exchange directly here if you want to have more precision.
You may also be interested in this article:
Promyze, the collaborative platform dedicated to improve developers’ skills through best practices sharing and definition