Old boring and battle tested tools
I have been listening to the Under the Radar podcast. More than once both Marco and David mentioned the phrase “old and boring” referring to the ideal tools to get a job done. I totally agree.
I started prototyping AppVersion using MongoDB. Boy, upserting was fast! And so was I in writing code and adding features. Until it came time to deploy. I started having problems with random data losses and I was put off by the recommended setting to deploy at least 3 replica sets.
This was back when the stable release was 2.4. Things might have changed since then. I am not picking on Mongo. I am sure it’s a great choice for some apps and use cases. It just wasn’t ideal for me at the time. But Boy, the upsert was fast :)
Since then I switched to Postgres and never looked back. Luckily I wasn’t blinded by the sunk cost fallacy. Postgres has been around for more than a decade, updated regularly. It’s a great workhorse. Up until a few years ago, before adding JSON support and upsert, it could have been considered done, finished, regularly maintained but not “innovated”.
To some extent its status was similar to the one of Backbone these days, maintained but with no more sparks, fireworks or stellar features.
These are the tools I like these days, battle tested and ripe. My focus is building a business and, as much as I like experimenting with new tools and technologies, I prefer the stability of old and boring tools.
Where’s the thrill then? I had the thrill already, for both AppVersion and Podrover. I had fun prototyping, discovering new libraries and techniques. Now it’s time to consolidate, reduce dependencies, and write code in your-future-self-will-appreciate-this mode. The thrill now is having users that appreciate products that work and are stable.
It’s ok to start prototyping with bleeding edge tools and libraries in alpha version. Indeed, I’d suggest it, so you can jump start your project. But at some point either you declare the project a toy and move on or, if you are serious, you roll up your sleeves and build a solid foundation with old and boring tools for which:
- it’s easy to find answers to common and edge cases
- it’s easy to hire expert people that know them in case you need help
The best part is that you can sleep (a bit) better at night, confident that the next release won’t break your current product and the old release will me maintained for a reasonable time span in the future.