Wednesday, March 17, 2010

Thinking like a Software Engineer

This whole San Diego Prius incident has me a bit disturbed and for reasons more profound than the obvious. So this guy speeds out of control, calls 911, car gets stopped by a CHP officer and because anything "Toyota" is national news these days, this also becomes one. This is disturbing enough but it gets better. Toyota comes in with a group of experts, takes this car apart, runs tests for a couple of days and makes announcements and news conferences almost stopping short of calling this whole thing a lie.

Prius like any other modern day cars has several hundred embedded control systems. Almost any malfunction can be mechanical, electrical or um.. software? So in SW terminilogy what Toyota said can be translated as " Sorry I cannot reproduce your bug, so you really did not even see the bug". Really? How ridiculous is that ? This statement is almost laughable to any software engineer out there. If it had been any mechanical fault , they would have found it by now. It could easily be a SW fault where some control system failed under some mysterious circumstances. The fact that they did not have logs really means nothing...May be if the module had received the "trigger" it would have done more than log it, it would have actually acted on it and stopped the car. Interrupt is missed, no action taken and hence no logs at all...sounds all logical to me. If it is a tricky SW bug like this, it is extremely unlikely that it would be reproduced that quickly.
Anyway, I am not claiming that I know all the facts here. In fact, a big company in times like this has to be wary of fradulent cliams but jumping to conclusions too soon and slandering someone's story before all facts are in seems a bit too irresponsible.
The conscientious embedded engineer inside of me stirs...

1 comment:

Anonymous said...

Van - You write so well ...Very impressive - Sree