If modern software products were released like modern cars!
A witty thought experiment into the vast differences between the world of software and physical products
I’ve previously written about the differences between car and software but my favourite is the release and lifecycle. Software products gradually evolve over time release, and are ideally deployed often with incremental differences. Car as a product couldn’t be more different.
So in this witty post let’s pretend software is released like cars.
Designing
Years before the release, the UI is designed first. No UX, just the UI.
This is the first step of a long waterfall process that leads to one specific software.
Not many people will ever get to see the UI, not even the employees. The information is shared on a need-to-know basis and the whole process is secretive as if the product is going to be super unique (hint: its UI is the most important difference but even that is streamlined in the industry).
Supply chain
Software architecture is an afterthought once we know how the UI is going to look in Figma, Photoshop, etc. UX comes way later, read on.
Software relies heavily on 3rd parties, but there’s a core or glue that’s built in-house to keep it all together. So as soon as the architecture is in place, negotiations start with the 3rd party providers that shape the supply chain.
Sourcing
Since climate change is all the rage these days, sustainability is a core feature of the software. So if the company is into greenwashing, it’ll make sure to recycle a big chunk of the code from former software products even if it’s in COBOL shoved into C#.
If the company isn’t into green washing, it uses the most performant language per watt (C and Rust) for everything.
Some UX is thrown at the software at this time (but if the UI and UX collide, UI wins).
Testing
If cars were like computers, “For no reason whatsoever, your car would crash twice a day” (hilarious post BTW). But our software is going through elaborate quality assurance (QA) and compliance phases. In fact this part would take longer than the previous phases combined.
Teasing
Months before the official release date. Various marketing campaigns start teasing the public. The CTO goes on record saying the new software has 9.7% less for..loops and the Social Media team shares blurry images of the UI to make folk curious.
Something like this:
Meanwhile marketing, PR and communication carries extensive workshops to find the perfect location to unveil the software in the most iconic and eye-catching way possible.
Maybe in the middle of the Norwegian fjords? Top of the mountain? How about in the middle of water? On the cloud maybe? That’s where the software runs after all!
Unveiling
On the day of the release, the media and some important people are invited. Software engineers and other peasants can watch the event live on YouTube as it unfolds.
Speakers would go on the scene one by one to deliver well rehearsed short sentences full of adjectives like “beautiful”, “powerful”, “innovative” all while describing a piece of software more or less similar to what’s on the market and even available for free open-source.
After the show, there’ll be lighs, girls, music, booze and food. Big party! 🥳
Release
The unveiling is not the actual release. Oh no! For all practical purposes what was unveiled was just the UI. In software terms, it is just a proof of concept (POC).
The customers can already pre-order the software but it’ll be months (sometimes years) before they can actually use it. During that time the engineers are busy setting up the CI/CD pipeline.
Devil
Of course at this pace of going to market, many other software companies come up with similar or even better products. Therefore a big chunk of the upfront budget goes to advertising. The goal is to hammer the point that “the devil is in the details”. It is elaborated with screenshots of the UI and vague statements like:
“We switched to CMYK color system instead of RGB” like that matters
“Our pages loads 12.5% faster” conveniently ignoring that it takes 85% longer for the first input delay (FID)”
Yet it doesn't change the fact that due to regulations and common engineering practices all those software look very similar. Marketing insists that the devil is in the details and he personally sets the price.
The software nerds care about those details but for the average software user, price is the only thing that matters. That’s why the software companies that keep their head above water, have mastered the art of efficiency. They cut the costs as much as they can to maximize margin.
Model year
This all worth it because when the actual software is released, it's bug free and never changes (modern cars cannot be more reliable than the software they rely on). If you want new features, you have to wait for the company to go through the whole cycle again. Every year, the company tweaks the UI slightly to release a new model year but that’s about it. The “platform” under will stay the same and even shared with other similar pieces of software the company may release.
Apple and Tesla
Apple is the closest company to following the process as described in this post, but to their credit, their software is part of the hardware.
Tesla is the closest company to use software lifecycle for the car and hardware.
Conclusion
This was just a thought experiment in a witty article. Absolutely nothing personal or targetted at a specific car manufacturer.
I’m sure I’ve missed some good ideas, pls let me know in the comments and I’ll try to add it to the article to make it more fun!
If you enjoyed it why not share it and help me grow this blog? 🙏