Maintenance is the essential work behind the scenes that your customers will never notice–unless you don’t do it. When I set out to build Sifter, I never really thought about maintenance. I had a vision of finally choosing my technology stack and being able to write code and have fun all day. That’s not how it goes. I spent a lot of time doing the fun stuff like designing and coding, but maintaining a web app is necessary, even if it isn’t exciting. That’s no bad thing, but don’t expect to be just designing and developing all the time.
Update and Patch Regularly
You can’t neglect regular security updates. Your servers. Your application. Any third-party components your application relies on. They all need regular updates. My RSS subscriptions include a handful of feeds about our various technology components. It’s important to realize that every component you add to your application is another component that needs regular security patches.
Maintain Performance
From time to time, you might write some inefficient code or add a feature that needs some optimization to avoid slowing your system to a crawl. Or you might think you’ve written good code, but discover that it’s less than impressive once it’s running on a production-scale database. Performance problems are rewarding once you solve them, but they aren’t always straightforward. For performance improvements, the most important thing is to measure it. Applications like Skylight, Datadog, Scout, and New Relic can make it more approachable. If you aren’t monitoring and measuring it, you can’t improve it.
We all write bad code, and at times that bad code can either slow or altogether obstruct other improvements. Thanks to test-driven refactoring, I’ve come to really enjoy refactoring time, but at the same time I dread it, because I know that it’s not something that directly benefits our customers.
Support and maintenance are just part of the game. It may seem harmless enough to put them off or delay them in favor of more interesting tasks, but that’s just tempting fate. And delaying things like security patches can lead to problems far more onerous than the effort it takes to regularly apply updates.