In a previous post, I talked about the need to hire programmers who write good code. A recent report shows the costs of poorly written code.
The 2010 CAST Worldwide Application Software Quality Study summary can be downloaded here.
In the report, “good code” or “structural quality” as they term it, is not about syntax or non-functional properties. Rather, it is about how well architected the application is. In other words, an application may function, but the code and architecture underneath it is a mess.
According to the study, each line of code has $2.82 of Technical Debt and the average sized application has $1,000,000 of Technical Debt.
In my experience the sources of Technical Debt are a mix of two factors. The first one is managerial. The manager is either unaware or does not care about Technical Debt. Sometimes, there is pressure from above to get an application out no matter how ugly it is. Often, it is rationalized that the customer will never know or see how ugly the code is. The second factor is the programmer themself. A poor programmer will simply not know or realize that their code is of poor quality. A more rare case is a good, but lazy, programmer not wanting to put the effort in to write good code.
This report gives more validity to the programmer or manager making an argument to have good “structural quality” initially. Most often, the coding issues will never be revisited and will rear their head at the most inopportune time.