The Cost of Bad Code

Blog Summary: (AI Summaries by Summarizes)
  • The 2010 CAST Worldwide Application Software Quality Study shows that poorly written code can be costly.
  • "Good code" or "structural quality" is about how well-architected an application is, not just syntax or non-functional properties.
  • Each line of code has $2.82 of Technical Debt and the average-sized application has $1,000,000 of Technical Debt.
  • Technical Debt can come from both managerial and programmer factors, such as pressure to release an application quickly or a lack of knowledge about good coding practices.
  • It is important to prioritize good "structural quality" initially to avoid issues down the line.

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.

Related Posts

The Difference Between Learning and Doing

Blog Summary: (AI Summaries by Summarizes)Learning options trading involves data and programming but is not as technical as data engineering or software engineering.Different types of

The Data Discovery Team

Blog Summary: (AI Summaries by Summarizes)Data discovery team plays a crucial role in searching for data in the IT landscape.Data discovery team must make data