Chapter 10. Maintenance

In the long run every program becomes rococo, and then rubble.

—Alan Perlis

“Epigrams in Programming” ACM SIGPLAN, September 1982

This chapter describes how to maintain a development environment and what causes development environments to change. Maintenance of software products is then discussed, along with some typical maintenance tasks and how maintaining a product is affected by each part of a development environment. The final section examines planned removal of things such as files and SCM tags that have been generated while creating products.

Maintaining an Environment

The useful life of the tools that make up a development environment is generally much longer than the life of the products that were created using the environment. No one wants to have to use a different bug tracking tool or a new build tool for every different release of the product. However, environments and their tools do age with time, and as tools are replaced with other tools, the environment gradually changes. The environment that you wrote code in 10 years ago is not the same one that you use now—even Emacs and vi have changed in that time. It’s also probably faster now than it was back then.

What’s important is that older tools and their environment still have to be maintained until all the products that were developed with them are no longer supported. It’s very frustrating to spend time learning about an older version of a product and making changes to the source code, only ...

Get Practical Development Environments 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.