Business-focused custom software

Go Back

Software Maintenance is the Most Important Phase

It is easy to assume that the most important phase of a software development application's life cycle is the beginning, when the initial development takes place. That's when the technology and architecture for an application is established, so it seems like it would be important. But is it?

I'm reading Adam Tornhill's book Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs. Early on, he refers to Robert Glass and his book Facts and Fallacies of Software Engineering. Glass argues that maintenance is the most important phase in the software development lifecycle, accounting for 40% - 80% of a typical project's costs. He also suggests that up to 60% of those changes are enhancements not bug fixes.

This certainly rings true to me. Most of the work I do as a freelance developer is maintenance of existing software. Some of it is code that I development initially. Other project involves changes to applications written by others. Sometimes those changes are requirements based on outside factors like regulatory changes. Other times, I make changes to improve the user's experience or add new features. 

Unfortunately, most developers aren't interested in maintenance work, especially younger programmers. What a shame. You can learn a lot about programming when working on an existing code base, even one that is in an older technology. More importantly, it makes no sense to constantly re-invent the wheel. Just because software was written more than a couple of years ago doesn't mean we need to start over. 

  • Facebook
  • Twitter
  • Digg It!
  • StumbleUpon
  • Technorati
  • Del.icio.us
  • Reddit

Post a comment!

Formatting options
   
 
 
 
 
   

Wanna Subscribe?
Here's the RSS Feed

What the critics are saying...

Avonelle is a rare IT professional who can communicate with business users on a level they can understand, and who can recommend creative technical solutions that are in line with the business goals and the business budget. Avonelle is conscientious not only about meeting deadlines, but also exceeding her customers expectations around quality software while providing superior customer service. Avonelle is an inspiration to me.

Valerie Vogt, Director of IT Advisory Services @ Inetium