I used to agree with this. Now I don't think so any more.
You should prefer "boring" tech, and boring should be read as has been around for a while and therefore is well understood.
See these for context:
- https://mcfunley.com/choose-boring-technology
- https://boringtechnology.club/
- https://www.youtube.com/watch?v=65qlc7qbRtI
1/5
Ubiquity is a bad test for well-understood technology. Age as a test for ubiquity is also bad.
Let me talk about the age part first. The original article says, "if you choose to use MongoDB, you just spent one of your innovation tokens." Innovation tokens are Dan's way of saying, it's not boring tech, because Postgres is considered a 0 cost choice in the other article.
2/5
Since time is such an important aspect of this argument. I feel it's worth laying some dates out:
- The original article was released in 2015.
- MongoDB was released in 2009.
- Postgres was released in 1996.
The implication is choosing a ~20 year old piece of tech was better than ~6, purely because we have more time to understand it.
3/5
Oracle DB, made in the 1980s, is older by at least a decade from Postgres and can be reasonably be argued to be more used than Postgres or MySQL. I doubt Dan would argue that Oracle DB is "good". I know I wouldn't, having used it in the past.
How should we choose technology then?
- time
- ubiquity, the more companies you can name that are using it
- criticality, the more this enables the core value of your company
- team knowledge, the more people in your company knows each tech
4/5
Once a technology crosses a certain threshold of time or ubiquity, they become less important and the more important team knowledge becomes.
As an example, if you're choosing between Postgres and MySQL, you can have reasonable discussions about which to choose and why. If everyone has only used MySQL, then doing research on alternatives may be prudent, but I'd have to ask how critical the decision is.
5/5
Fitness for a particular purpose. I wouldn't choose MongoDB over PostgreSQL unless the principle purpose was for a document store (and I'd probably choose a different document store).
@simon_lucy in principle, I agree. I wouldn't use a document store for highly relational data.
I also wouldn't use SQLite as an analytics store or Excel as a background worker. That said, I've also seen both in production at scale. Weird fitness for purpose choices on both, and they were successful.
As a consequence, I weigh this aspect less.
Aligning #FitForPurpose of a tool is downstream from people aligning on #purpose, in general, no?
At some state of perspective all choices become debt that needs maintenance or refactoring.
The spreadsheet driving job management and costs turns into something else especially when the person who conceived/operated it moves on.
@raiderrobert Maybe then one shouldn't use computers to begin with They haven't been around for too long...