In There Is No Software Maintenance by Henrik Warne, the author argues that software maintenance is just product development. Since software is never “done”, all of the things we call maintenance such as bug fixes and improvements are feature enhancements and iterating on the original feature.
I find myself agreeing that there is no definable “maintenance” period that happens between shipping and improving (or fixing) the it, but what developers actually fear is “maintenance mode.” This is end-of-life in disguise and one can’t help but feel like a bag-holder when putting effort into a thing that is going to be replaced or un-shipped—especially if this the majority of one’s job.
- Certain strategies can help reduce the feeling of maintenance—the default strategy for dependencies should be to not add more, choose boring technology
- Compatibility is leverage so using tools/frameworks that focus on compatibility reduced maintenance burden of upgrades
- The npm package ecosystem is a Chevette