It isn’t often that firmware makes the news, but recently VW admitted that, in some of their cars, the engine control firmware detects when an emissions check is being done and then changes parameters to reduce pollution. That also cripples performance, so as soon as the test is done the cars revert to a higher-power, better gas mileage (I would have thought those two were mutually exclusive) configuration.
This quote stunned me: “The software measured factors such as the position of the steering wheel, the vehicle’s speed and even barometric pressure to sense when the car was being subjected to testing, the E.P.A. said. The car then configured itself to reduce emissions of nitrogen oxide, a gas that is a major contributor to smog and is linked to an array of respiratory ailments including asthma, emphysema and bronchitis, the E.P.A. said on Friday.”
While running in cheat mode the cars reduced NO2 pollutants by as much as a factor of 40.
The developers clearly implemented quite a lot of functionality to make the cars cheat the tests. This was no accident. Later it came out that the company lied to the EPA for a year about this issue. So management was involved as well.
As of this writing we know nothing about how the decision was made to add “lie, cheat and steal” to the list of requirements. One wonders what the meetings about this were like. “Team A – your job is to write code that will break US federal regulations.” “Sure, boss, no problem. But our scope died. Can we get Vito to break into Ford’s plant and steal a couple of theirs?”
At what level in the chain of command was this decision made? Was it an engineering suggestion or management fiat? Either way, at some point the engineers were tasked with implementing it. Perhaps the boss cleverly selected some very young group who thought it was a prank, chortling as they wrote the code.
How many were squeamish about this? Did any resign – or even protest? This is more than fleecing the EPA; it’s cheating their customers, who have an expectation of the vehicles’ performance and behavior. It’s possible the fix will reduce the cars’ resale value, which means VW robbed their former fans. A stickup by any other name.
In engineering there are so many ways to cheat. The FM radio’s front end might be a bit cheaper if we tolerate lower gains, which means Joe Customer, who has always been able to tune in his favorite-though-weak channel, now can’t. Tire pressure monitoring code might permit rather uninflated tires (Deflate-gate?) so the seal can be poor, but that means more wear. The poor consumer can’t detect these things during a ten-minute test drive, and even Car and Driver magazine or Consumer Reports could easily miss them in a one-week trial.
Where is the line in the sand? At what point do you tell your boss “no!” Columnist Rod Dreher of the American Conservative had an interesting post over the Kim Davis affair (she’s the clerk who refused to issue marriage licenses as same-sex unions violate her religious beliefs). I expected Dreher, a deeply-religious Christian, to vocally defend Davis. Instead, he wrote that this was not a hill worth defending and advocated a focus on the bigger battles. Perhaps the engineers at VW thought that rebelling against an order to write this code wasn’t a hill worth defending: That they’d protest when management crossed some other, more blatant, line.
My take is simple: If it’s bad for the customer, don’t do it. If it makes you feel uneasy, don’t do it. If it’s illegal, don’t do it. Lie, cheat or steal, and you have to live for the rest of your life remembering that act. And believe me, you do remember your transgressions. Shakespeare was right when he wrote “The evil that men do lives after them; the good is oft interred with their bones.”
Stanley Hauerwas, a well-known ethicist, wrote (somewhere; I can’t remember where) that the decisions we make define whom we are. There’s a lot to like in that. We may struggle with, perhaps, not liking a particular class of people, but it’s when we decide to act on that impulse that we’re morally culpable. We might be tempted to plant some nasty Easter egg in some code, but actually doing so defines one as a developer of questionable ethics.
If the boss says “do this or lose your job,” one is left in a pretty pickle. But in a case as egregious as this, I think the engineers should still have given a collective “no.” Sometimes doing the moral thing is hard, but “hard” is no reason to abdicate right and wrong.
Ironically, in Germany it’s awfully hard to fire someone. Employers have to provide up to seven months’ notice, depending on length of service, and must provide a written letter saying explicitly why the individual was terminated.
Each engineer who purposely wrote code to screw the customer, break the law, and dump noxious gasses into the atmospheric commons has, in my opinion, crossed the line. This action is simply wrong.
Reputedly, VW may face an $18 billion fine for this caper. I’d like to listen in on the next board meeting when that gets discussed!
What’s your take? Have you ever been asked to do something in a product that you considered to be ethically wrong? What did you actually do about it?
Jack G. Ganssle is a lecturer and consultant on embedded development issues. He conducts seminars on embedded systems and helps companies with their embedded challenges, and works as an expert witness on embedded issues. Contact him at . His website is .