The Modern World is full of smart gadgets everything from smartphones to appliances like smart refrigerators, smart TV, etc. it all runs on software. Nowadays, Cars have also become smart because they have computers in it. Tesla is different from other automakers, Tesla is more like Apple or Google. It might take years, especially considering that every line of code has to be tested and validated to ensure there are no bugs that can cause catastrophic failure and loss of life. Aviation and Automotive companies require to test their codes multiple times because the person’s life is dependent on the lines of codes written on the system.
Why is Tesla so Far Ahead of its Competitors
When a new line of code is checked in, many tests run on that code like the automated unit test and UI test to ensure that the change that wants to submit doesn’t break any existing functionality. When an engineer wants to make a change, they submit the code change for review from their peers, but it’s also being built against all of the existing tests for all the existing functionality. If changes in the program cause a unit test fail meaning you’ve broken the existing functionality of the program. In this case, the test will not pass and your code cannot be checked in.
Companies like Facebook have incredible levels of automated testing in place to ensure that all the new features after adding can be safely checked in and released to their users on a weekly basis. Now, if there is a critical bug in Facebook software, no one dies from that. They can roll back the changes or issue a hotfix to address the issues and fix them sooner than they wanted to. In the case of cars and airplanes, you can’t really have any level of risk. You can not let a couple of crashes happen.
Companies like GMs and Ford treat their software like aerospace companies where there isn’t much-automated testing. Everything is tested manually by operators so manual testers make sure that every one of those cases and flows is working properly and all the data behaving as expected.
This isn’t the case with Tesla, Tesla operates like a tech company. They have really enthusiastic software engineers who use this level of autonomy and unit testing. They think in terms of their testability. The code needs to have some sort of validation to know that future changes aren’t going to break existing functionality. This is where a lot of companies face huge software challenges and issues. Volkswagen was facing the same issues with their ID.3, they were way behind in terms of software so they did not ship the car because of software problems. This is where people don’t completely understand how different Tesla is.
When Tesla launched performance version of Model 3, though it had really good regenerative braking, when it got down to about five miles an hour, Driver would have to get my foot off the accelerator pedal and hit the break because it couldn’t bring the car to a stop. Later, Tesla fixed that issue via OTA update by adding functionality to be able to stop entirely with one-pedal driving.
The Tesla software changes aren’t limited to cool UI and adding things like Spotify. They even change their core driving logic. In a recent upgrade in 2019, They actually made their cars more efficient and more powerful by updating the motor controller software and Driver logic. That is amazing levels of software engineering that have never been seen before an automotive company. Think about all that, It takes a lot of efforts to build a team capable of operating in a continuous integration and Rapid Release environment. The company has to have managers who understand what goes into that and understand the types of infrastructure they have to build out to support it.
So once they have the managers, they have to hire the individual contributors and that is also very challenging because tech companies are all looking for engineers so software engineering is highly sought out and the level of competition is Fierce. If you’re a good developer, you’re going to want to work at a place like Tesla because that has that name recognition. Working at a company like GM just doesn’t carry the same level of clout that Tesla does.
How other automakers have to take inspiration from Tesla
Companies like Volkswagen, Honda, Toyota have to write software like Tesla. They would have to write a lot of their code from the ground up over again. First of all Legacy code, which is a code that’s been written a long time ago that does its job. They have to have a new code that you can easily upgrade and maintain. Legacy code is good when you don’t want to ever change it which most cars have traditionally worked.
So now they have managers, developers and now they are going to rewrite your entire code from scratch to make it more maintainable while they still have to build out the infrastructure and unit testing sweet, they still need to have high levels of unit testing and other automated test Suites. They have to have tools like static analysis tools that check their code for common issues before they check them in and a team to have the right approach and methodology to shipping software on a rapid-release interval.
Tesla is going to update its MCU software much more often than their driving computer software. When all this complexity put together, it gives you a picture of just how far ahead Tesla is and if you’re not in the software industry, you might not realize just how difficult it is to release software on a fast and Rapid Release schedule. It is probably not an exaggeration to say that it would take most of these car companies like GM and Ford multiple years like 2 or 3 years to rewrite code, build the expertise and the team to be able to handle writing software more like a tech company like Tesla. So for that reason, this is just another one of the examples of just how far ahead Tesla is.