Archive for July, 2008

Commentary on Software Maintenance

Thursday, July 24th, 2008

If the maintenance of software is such a large part of any project, why is it treated as an afterthought. First let me state that with the frequent deliveries points with most all agile techniques, I believe that maintenance starts with at least the first delivery and with test driven development/programming it starts with the first test created. But for most of the software development era, maintenance happened after the original project development team went on to the next great project. It happened after the QA department allowed the product to ship to customers. It was regulated to the back room, or to the customer support group with the fresh out of school programmers.

Try doing a search on “software maintenance with agile or lean”, I found very little to support the old notion. The best quote I could find comes from Lean Software Development – Mary and Tom Poppendieck, page185; “Agile practices rule in software maintenance departments. In fact, these folks are wondering why it took the rest of the software development community so long to figure out how to develop production-ready software.”

In Software Engineering, Volume 1: The Development Process, 2nd edition, by the IEEE Computer Society Press, K.H. Bennett’s “Software Maintenance: A Tutorial” identifies four software maintenance type;

  • Corrective Maintenance – Maintenance performed to correct faults in hardware or software.
  • Adaptive Maintenance  – Software maintenance performed to make a computer program usable in a changed environment.
  • Perfective Maintenance – The improvements in performance or functionality of software; for example, in response to user suggestions and requests.
  • Preventive Maintenance – Designing a software system that is easy to maintain. The continuous upgrading of a system to enable the system to cope with current and future changes.

To me that seems a lot like some agile practices in building the original product. Maybe that is why my search was disappointing – maintenance is built-in! So the project length is the same as the life of the product.

How will the bean counters handle that?