1: https://www.engadget.com/2017/05/31/toyota-automotive-grade-...
Software however is all but impossible to spec from the beginning, or perhaps ever at all... so with only working with the smaller details, the larger picture is lost. At any time, any team, is instructed to stop a problem and immediately fix it, it's band-aids on top of band-aids.
Having multiple teams working on overlapping projects, with little communication leads to the spaghetti code that was mentioned.
Much of the code being dealt with by Toyota (at least that subject to the lawsuit and so made available for analysis) was embedded code which is a bit more amenable to very deliberate design, testing, and verification. NASA, for instance, has a long history of producing extremely reliable software, even proving the software correct at times. Would any private corporation in the world ever resort to following such a practice? Never. It would quadruple their software spending and, maybe worse, they would have to listen to their engineers. When the business wants to ship a project, if the engineer says 'its not ready yet', if its a bridge and they go ahead someone in a suit goes to prison. If it involves software, everyone goes home happy except the dead customers.
Embedded software can be spec most of the time and it should be.
The software you would use to configure the parameters in the car (e.g sensitivity of headlights turning on, whether or not it'll chime when you're not wearing your seatbelt) hasn't even been ported to 64 bits yet. It seems to have been written by one of their O.E.Ms (Denso) and it seems like the cars have used many of the same design patterns since the 90s.
Look no further than the infotainment system, it's always a generation behind other automakers and we all know that most automakers don't set the high bar of consumer technology.
I found this really interesting. I completely agree that the principles behind the Toyota Production System can be applied to many other disciplines than just car manufacturing. I wonder if Toyota itself actually applies its own principles when it comes to software development. When their software got audited as part of the unintended acceleration case [1] it was described as spaghetti code and having generally poor engineering practices.
I'd be interested to know why this seeming discrepancy exists between Toyota's quality in hardware vs software.
[1] http://www.safetyresearch.net/blog/articles/toyota-unintende...