When Software Goes Wrong ! – A Halloween Special

With Halloween just around the corner we figured that we should try to fit with the spooky feel of the season with a scary article. But what can be scary about developing software?

Having software fail following its implementation is the worst nightmare of many a software developer, after all the success or failure of code will reflect back on the individual or organisation behind its creation. This is why there are so many guidelines and quality standards put in place by numerous regulatory bodies, but on occasions when these standards get ignored this nightmare can suddenly become a terrifying reality.

In 2013 Japanese car manufacturer Toyota were found to be responsible for a crash involving a 2005 Camry that resulted in the death of one of the passengers. The driver involved in the accident blamed a fault in the Electronic Throttle Control System (ETCS) for causing sudden unintended acceleration that could not be stopped by pumping the brake. Toyota denied that there was any issue with the ETCS stating that the driver must have unintentionally pumped the throttle rather than the brake, but were unable to explain the 150ft skid marks left on the road prior to the impact.

Initial investigations by the National Highways Traffic Safety Administration (NHTSA) and NASA into the ETCS source code were unable to prove that a fault had been responsible, but did not rule it out as a possibility. Further investigation by embedded systems expert Michael Barr revealed that Toyota had disregarded the industry safety standards resulting in spaghetti like source code and a failsafe structure that was built like a house of cards.

Barr concluded that a single bit flip was all that was required to initiate unintended acceleration, and that if already pressed the brake would need to be released completely and pressed again before it would come into effect. in this case a settlement was made before a final verdict was delivered, but there is no doubt that there will be lingering repercussions for the manufacturer for many years to come.

There is no denying that a malfunction, as experienced by Toyota, is truly horrific especially for companies such as Zircon that often work with safety critical systems. We always ensure that we design safety into our software, that our engineers follow the relevant coding standards and that our testing is thorough, as we are by no means immune from the possibility of project failure. Yet it is unreasonable to assume that every project will be easy sailing from beginning to end.

Problems can appear unexpectedly like the villain in any good horror movie, however it is how these occasions are handled that make the difference. Unlike the cowardly protagonist from most classic horror sequences we will never run away from a problem, no matter how scary it may appear to be. On the contrary we will work tirelessly to deliver a suitable solution for each situation, and critically look to learn from our mistakes to ensure that they don’t come back to haunt us in the future.