Home > Articles > Programming

Making Bug-Resistant Software: Techniques to Make Maintainability the Rule, Not the Exception

  • Print
  • + Share This
Is your development process actually adding bugs to your custom code? If your testing and change processes are manual, Aaron Erickson points out that you might be adding as many defects as you think you're eliminating.
From the author of

We all aspire to write software that doesn't burden us with massive costs for maintenance down the line, but mere words about "doing better next time" are not enough. In the world of custom software development, we have an obligation to make sure that the commitment sticks.

In this article, I'll discuss various techniques that you can employ to help make these commitments stick. When people are committed to increasing maintainability of systems, these techniques can help to provide visibility into that maintainability.

Foundational Techniques

Very few organizations today allow a software change to go into production without some form of regression testing. Change-control procedures generally require at least a manual script that provides an install procedure, a way to know whether the install worked, and a scripted means to back out any change that fails.

Let's start from the minimal assumption that such basics exist. The problem at this first phase is that all the steps are manual. Manual change application and manual regression testing both provide many opportunities to introduce errors. As configurations, software, or both become more complex, performing manual procedures can lead to even more errors. For example, the software for one of my clients had an install procedure that was 300 pages long—assuming only a 1% error rate per page, a procedure that long is virtually guaranteed to produce at least three errors per install.

  • + Share This
  • 🔖 Save To Your Account