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
Links to this note
When building systems that require monitoring and alerting, a false alarm should be treated as a bug. If it’s not resolved quickly, it diminishes the usefulness of the alerts and trains responders to ignore it. When alerts are ignored, the potential for an actual incident increases along with the severity due to time to detection.