The following is a series of excerpts from a book by Marianne Bellotti on how to revive and maintain a complex system of software that has been in operational use over a period of time, and has accrued a significant amount of technical and operational debt. Each header before the excerpt is my own or a section title from the book.
Preface "We build our computer systems the way we build our cities: over time, without a plan, on top of ruins." - Ellen Ullman
Restoring legacy systems to operational excellence is ultimately about resuscitating an interative development process so that the systems are being maintained and evolving as time goes on...there is little downside to maintaining all systems as if they are legacy systems. It is easy to build things, but it is difficult to rethink them once they are in place. Legacy modernizations are not hard because they are technically hard - the problems and solutions are usually well understood - it's the people side o