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
  • Reddit

Post a comment!

Formatting options

Wanna Subscribe?
Here's the RSS Feed

What the critics are saying...

As someone with over 20 years of software development experience and currently a small business owner, it has been a pleasure working with Avonelle. In addition to being a talented developer, Avonelle also has database expertise and system design skills. Avonelle is open minded and willing to discuss various methodologies for achieving a project goal. She is also not afraid to ask questions which is vital in a software development project. Her up-front project cost (not estimate) is very helpful in budgeting for a project.

--Dwayne Wolterstorff, Owner @ Fair