...: Marsh Chatter
Toyota Brake - Shutdown Cruise?
Let's start with a caveat!
This whole Toyota unexpected acceleration thing is still unraveling and I certainly don't know the full story. However, after seeing a potential reason in a couple of news reports (Detroit Free Press, Cincinnati.Com) - I had to respond. The following is not specifically an assault on Toyota - but a question to the programming/developing community.
What I Know...
In high school I studied auto mechanics. I did very well in those courses, even being awarded an Industrial Arts Departmental Award in my Junior year. As a result of that early career, I've driven a lot of makes & models of cars since the early 70's. This includes American brands, Euro-brands, and yes, even Asian brands. I have driven these vehicles in the U.S., in the Caribbean, and in Europe. I grew up in a family dependent on Ford Motor Company (Dad worked there) - hence our family drove Fords. I like their vehicles and have purchased them over the years.
Many of these vehicles were outfitted with Cruise Control. One of the greatest inventions for modern drivers - as far as I'm concerned! This included Lincoln's, Caddies, Pickups and Vans, and many econoboxes. I would venture to say that I've benefited from Cruise Control for over 35 years. Even my little 10 year old Ford Escort ZX2 has Cruise Control (<$15k, mind you) and I would not be exaggerating to say that probably 60-70% of my driving has that feature active; specifically when I'm at 40+ mph - and with 196k miles... that's a bunch.
So what... you say? Well - I just wanted to help you know where I'm coming from.
Expectations
All of the vehicles in which I've used Cruise Control, they have all shut the Cruise Control OFF, with any tap of the brake pedal. I've never remembered it not doing that, and to me - that seems to make 100% commonsense. Who would think that's not the right chain of events?
Programming Defaults & Ethics
In the "old days" - this was done with a cut-off switch that was activated by the brake lever. Today it occurs via software. However, in the case of Toyota - as reported... it appears they did not believe it should be part of all models of their cars. WHAT?
Today I write software. That software is used in business and if it fails, it certainly is a bad thing as it could mean improper business decisions could be made, invalid financial transactions could occur, etc. In my case the software I write is not used in situations where if it fails it would kill someone. Writing software that works is the correct thing to do - even more so, when human life is at stake.
All programmer/developers who consider themselves professional should always consider that there are certain default functions for the software. You don't save a record without proper data, you perform lots of validation on data, and more. These are commonsense things.
So why would a programmer/developer writing code that controls automotive systems NOT add a line of code that says:
If Brake.Activated then CruiseControl.TurnOff()
Isn't this commonsense. It is used by too many automotive manufacturers and on various brands; both high cost and low cost models, to not be considered the default behavior. So how did Toyota not do this on all of their cars that have Cruise Control as standard or optional equipment. Really... if you pay $15,000, $20,000, or more than $30,000 for a vehicle - how much could that add to the cost? Really!
Who's Responsible?
Programmers & Developers - we are responsible here. An accounting business decision that has potential to affect human lives - ought to generate significant heat in project meetings. By heat - I mean yelling folks! Ethically this is a real problem and could affect our community in the same way that Enron affected the Accounting/Business community.
I'd hate to see legislation and the heavy hands of government come into our community - but this could very well be the result. It happened as a result of Enron, WorldCom, and others.
Up to Us!
The programmer/developer community can do better. We have to do better!