16Maintenance

Troutman's Second Programming Postulate: The most harmful error will not be discovered until a program has been in production for at least six months.

—Anonymous

All programming is maintenance programming, because you are rarely writing original code.

—Dave Thomas

What You Will Learn in This Chapter:

  • Why maintenance is a major percentage of total project cost
  • The four categories of maintenance tasks
  • What the “second system” and “third time's a charm” effects are
  • How to know when you should rewrite code to make it more maintainable
  • Bug tracking states

So you finished the initial release of your application and held wrap-up meetings to make your team members better software engineers. Congratulations! On most projects, a fair number of those people will now wander off to do other things. Some will join new projects and start the whole process all over again. Others may take new roles on other projects. For example, a programmer may become a team lead, or a team lead may become a project manager. Still others may leave to satisfy their life-long dreams of becoming lobster fishermen.

Hopefully, a few team members will remain as the project moves into the maintenance phase. Having some original team members during maintenance helps provide continuity for the project so that its original vision isn't lost.

Get Beginning Software Engineering, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.