Lada was the laughing joke of the 20th Century. It was a true communist manufactured car, encapsulating everything that was wrong with the USSR, within a single chassis. I knew dozens of Lada jokes when I was a child, including jokes about every single part of the car, from its heating system to its windshield wipers. Below is one of my favourites.
Do you know how to double the second hand price of your Lada? Fill it up with gasoline!
The paradox is that for all practical concerns a Lada is better than a Ferrari. To understand why, we need to ask ourselves why we needed a car in the first place. Arguments typically includes something such as follows.
- I need to go grocery shopping
- I need to bring my kids to soccer practice
- We want to go on vacation to our family in the weekends
- Etc ...
None of the above are things you can do with a Ferrari, while a Lada allows you to do all of the above.
What's this got to do with software development?
It's quite simple; We tend to forget to ask ourselves why we're doing what we're doing, and as we loose track of our mission, we end up making terrible decisions. For instance, we might buy into the marketing rubbish of some message broker manufacturer that we'd be able to handle million of messages per second if we use Kafka, Solace, Pulsar or "whatever". Or we might end up thinking MongoDB allows us to persist millions of documents per second. Or we might think using CQRS implies we can scale our application to the point where it is able to perform cold fusion. These are all arguments similar to; "With a Ferrari I can drive 300 miles per hour".
Who cares if you can go 300 miles per hour, when there's not a single road in the western hemisphere where going 300 miles per hour is legal or possible for safety reasons?
Really, it doesn't matter if you could go 1,000 miles per hour, when all you need is 50, to bring your kids to soccer practice.
Who cares if you can store millions of documents per second, handle trillions of messages per second, or scale your app to violate the very laws of the universe, when all you need is for a couple of back office workers to persist data into a simple database?
The "Ferrari solution" becomes a liability at this point, for the same reasons most people don't want a Ferrari car. If something breaks down with your "Ferrari solution", the starting price to get it fixed is 10 orders of magnitudes higher than to simply scrap it and buy yourself a Lada.
- This is why SQL is better than NoSQL
- This is why message brokers are useless baggage
- This is why OOP is a mass psychosis
- This is why DDD is superstitious rubbish
- This is why Agile is completely useless
- This is why frontend Unit Testing is mostly madness
- And this is why Angular is almost always better than React
- And this is why I started on this series of Myth Busting everything in our industry, to "make sh*t real".
Laugh all you can of Lada, but realise that at the end of the day, it's the car you'll probably prefer when you're bringing your Ferrari into the garage for the 10th time in a month to fix some part that costs you $15,000 to fix ... ;)
Top comments (2)
Lada is a poor metaphor given that they are government owned so it really doesn't support your point.
The Hyundai Pony or the post-WW2 Japanese car industry is a much better metaphor for just in time quality that has helped growth.
You're of course right, I just wanted to pick the most revolting and thought provoking analogy I could find. Moscow Tractors (Lada) was the most disgusting comparison I could find, hence here we are ;)