bbulkow
Well-Known Member
- First Name
- Brian
- Joined
- Aug 30, 2022
- Threads
- 24
- Messages
- 889
- Reaction score
- 729
- Location
- menlo park, california
- Vehicles
- Honda CRV
The system Ford uses is called "Semantic Versioning". It is widely used across a very wide number of software systems and has been for decades. https://en.wikipedia.org/wiki/Software_versioning (scroll down to semantic versioning). 6.14 > 6.2.0 because 14 > 2. 7.1 > 6.15 because 7 > 6. This is common in software because linear systems (like tesla uses) fail in the face of more complex systems where you need to execute minor changes on important field-released versions (eg, someone with 6.2.0 will take 6.2.1 for a safety issue but doesn't like the UI changes in 6.8 and won't take the latest).Oh ok. I am not even sure If 6.2.0 is ahead or behind 6.14. I came to Ford from having owned a Tesla for the past 3.5 years and the updates were pretty simple. Tesla would release an update with a numeric sequence that represented the year of release, the week number of the year, and the revision number. How hard is it for Ford to come up with something similar? Everyone would be able to easily determine how far behind they are but with Ford I see they made it quite complicated.![]()
If you use a cell phone, you've got semantic versioning. "Android 14" is 14.something, and you can continue to get security updates even if you don't move to Android 15. Same thing with IOS - Apple has several release trains running at the moment, and executing patches and minor updates across their entire version system. It also makes hardware changes harder - like if there's a new generation of in-car CPU but it only runs recent, and you need to apply safety patches to older cars. You'll end up with 2.x for some cars, and 3.x for newer cars.
Tesla, being Tesla, appears to have ignored software best practice and used linear. Linear has some advantages, and is actually in use more and more (Microsoft Windows uses it for sections of their code). While it seems easier to you, and is simpler, it restricts both developers and users, which is why decades of software systems have used semantic versioning. Linear is easier *if you don't have a complex range of hardware and a big product line* - leading to faster developer velocity and faster patch releases - but leading to eventual failure because the business as a whole doesn't scale (eg, would Tesla Trucks be on the same release as Tesla Cars? Or would you need two teams replicating exactly the same functionality, one for Tesla Trucks and one for Tesla Cars, even if a number of components are the same and some are different?)
Perhaps all those millions of developers aren't dumb, and maybe Ford did a good thing by staying with industry standard practice?
Sponsored
Last edited: