In the long run every program becomes rococo, and then rubble.
“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.
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 ...