Secrets of Software Maintenance

I remember this post by David EddyPublished: July 1, 2000 in July 2000. In my next post I will try to update this list with some new hints  !


  • Secret #1 – There are no secrets. If you can accept this reality, you are well on your way to understanding the true “secrets.”
  • Secret #2 – Maintenance is an inherently bottom-up process, primarily because maintenance is a game of details, and managers are not hired to “do” details.
  • Secret #3 – Good maintenance, like good development, is just the consistent application of sound life-cycle practices (requirement analysis, configuration control, independent verification and validation, et al.) that have been well known and understood, if spottily applied, for decades.
  • Secret #4 – Development and maintenance are merely two sides of the same coin. To believe that one is better or worse than the other entirely misses the point. They are a continuum very much like the mathematical oddities of a Möbius strip or a Klein bottle.
  • Secret #5 – The administrative infrastructure that supports the development/maintenance effort must become self-sustaining. Otherwise, the effort will be seen as busywork (read “costly, paper-pushing bureaucratic waste of time”); and it will die as soon as the original sponsors shift their focus or, worse, mutate to take on an expensive life of its own that is unrelated to productive work.
  • Secret #6 – The job of management is to put into place the practices which enable the work of fixing, extending, and enhancing systems that support the business. 
  • Secret #7 – Organizations that are more intent on affixing blame for software problems than on ensuring that the conditions which caused the problem are removed/resolved will always regard maintenance as a headache to be endured until the mythical silver bullet is found.
  • Secret #8 – There are no spectacular winning-touchdown-in-the-last-3-seconds events in this game and certainly no silver bullets. Success is simply the steady, incremental application of the basics one small tactical step at a time.
Posted in Software Maintenance.

I am full professor of Software Engineering at the University of Québec in Montréal, in its Software Engineering faculty. I have more than 30 years of Helthcare, Finance/Banking and Telecommunications IT industry experience, especially in Cloud Computing, Big Data, software acquisition, contracts, software quality assurance and business process management. I am more comfortable with open source, practical applications and technology transfer to industry.
Currently I concentrate on research projects. In the past I was the recipient of the ISO award for higher education in standardization in 2011, as well as the chair of the Software Engineering gratuate program and of the Software Engineering departement. I also published Software Engineering Books: Software Maintenance Improvement and Software Quality Assurance.