Why Good Software Goes Bad and How to Stop It

Software maintenance is crucial to business success

Software maintenance is crucial to business success

If you’re tasked with maintaining software and it seems no matter what you do, your efforts only make it worse, you’ll probably relate when authors Alain April and Alain Abran say in their book, “Software Maintenance Management: Evaluation and Continuous Improvement,” that “the act of software maintenance itself causes software to deteriorate.”

Part of the problem comes right at the beginning of new development projects. Many of you may have been involved in new projects that contained an objective of creating a system that was “maintainable.” Did you ever define exactly what that meant? Did you then assign tasks in the project plan for the implementation, tracking, review and quality assurance of this objective—treating it as a feature just as visible and verifiable as any user-driven one? This strategy is rare, but considering software maintenance is generally thought to account for 70 percent to 90 percent of its lifetime cost, it shouldn’t be.

After software is deployed, maintenance often begins immediately because, one, defects slipped through, and two, some requirements were deferred due to lack of time and money. Thus starts the descent of good software into bad.

Maintenance causes software to degrade because it inevitably makes it more complex. At the outset, the original design was the optimal one for the required set of features. As new features are added in maintenance, it’s impractical to continually refactor everything into a new optimal design with the full set of original features plus the new ones. Thus, the changed design is less and less optimized as more changes are made. Compounding this problem, the people who conceived the system design are decreasingly available to engineer changes into the form of the original concepts.

Software maintenance is harder than software development, but it’s critical to business success.

Steve Kilner is the creator of several software products and methodologies for the IBM i world. He writes a regular blog ( Steve can be reached at



2017 Solutions Edition

A Comprehensive Online Buyer's Guide to Solutions, Services and Education.

A PPP Monitor Utility

Here's a program developed to programmatically obtain the status of a PPP connection

IBM Systems Magazine Subscribe Box Read Now Link Subscribe Now Link iPad App Google Play Store
IBMi News Sign Up Today! Past News Letters