Your car will be constantly changing

We all have been reading headlines and articles about cars that have been recalled due to certain failures, and the numbers of cars that needs to be delivered to local car shops are always quite high. A quick Google search shows articles like BMW recalls 300.000 cars, Kia recalls 500.000 cars, Fiat recalls 4.8 million cars, this list could be as long as you want it to be.

Recently Tesla's model 3 were tested by Consumer Reports, a nonprofit organization providing product ratings and reviews, and they ended up not recommending this model due to issues with Tesla's stopping distance which were almost 50 meters when braking at about 100 km/h. This was far worse than any contemporary car tested by the magazine and about 2 meters longer than the stopping distance of a Ford F-150 full-sized pickup

Tesla, instead of recalling this model, which has more than 400.000 pre-orders (at this point I was not able to find out how many were already sent out from the factory), they pushed an update over the air (OTA), only days after the report were publicly known. Instead of using months to recall and fix all cars at local car shops, this was done with a push of a button from one of the development headquarters. "This really is an industry first," said Consumer Reports’ director of automotive testing, Jake Fisher.

Even though this is quite impressive, compared to how things are done across the industry, my thoughts automatically go to "how well and thorough" these updates have been tested and verified? Without doubting engineers at Tesla, my concerns goes more towards that more and more other automotive companies will utilize this approach, both GM and Ford have said that by 2020, their new models will be able to accept OTA updates. If they do not invest enough in software development and testing we could witness quite some issues on the road. I hope that they take this more than seriously, and are mature enough before being allowed to push changes over the air. This is also more than valid for all sub-components and sub-contractors which deliver different parts of the vehicle. We have all witnessed how vulnerable some of this software can be in today's cars, with episodes like, "Hackers Have the Power to Remotely Hijack Half a Million Chrysler Cars", "Hackers can access the Nissan Leaf via insecure APIs", "Radio Attack Lets Hackers Steal 24 Different Car Models", or "What we know about car hacking, the CIA and those WikiLeaks claims" just to mention a few.



Just imagine Tesla's stopping distance issue reversed, an engineer team pushed a change which affected stopping distance the other way around, increasing stopping distance. How would that play out with the drivers? How many accidents would be needed to discover and link a specific change to the accidents? How fast would we be able to discover this? Do they have any kind of monitoring in place that collect breaking distance for all cars? Do they roll out gradually, and monitor these cars closely? What data do they collect, how often, does the users know if they do? Many more questions pop to mind.

Even though the following comparison can be disputed, as most subject in this research are from the technology sector, one could also argue that these parts of the automotive industry could also be considered a "tech" sector, as software is eating the world, and continuous delivery, is now appearing in other sectors, such as auto manufacturing... According to Accelerate by Forsgren, Humble and Kim, even the high performers in DevOps which are able to deploy on demand, have less than an hour of lead time for changes, and mean time to recover, still have a change failure rate at 0-15%. So imagine having any amount of % change failing. Without the proper quality assurance and testing of these components individually, in combination with other components, and so called end-to-end, driving a car or being driven in a car some years ahead, could become a sport of high risk, even though you only are going to a nearby local store, if the engineering teams are deploying changes with failures.

Just some food for thought :)

Image: http://www.979rock.ca/wp-content/uploads/sites/37/2017/05/1acar.jpg 

Comments

Popular posts from this blog

How do I stay "up to date" on software testing related stuff?

Shifting left, shifting right - where to shift next? - part 2

Does the language we speak shape the way we think?