Let’s do some supposin’.
Suppose you work for a giant, global manufacturer. The company might make air conditioners. Or diesel-powered cars. Suppose you’re given detailed specifications for an embedded software project that disguises the operating status of a product being designed. Suppose the purpose of that application is to underreport the electricity consumed by that air conditioner.
Or — and this just might be the wackiest idea ever — suppose the purpose of the software is to surreptitiously shift a car’s diesel engine into a low-pollution “clean” mode while the engine is running and sensors detect that the steering wheel isn’t being moved and the wheels aren’t rotating. That would present artificially low levels of exhaust pollutants and particulates to environmental test equipment. I know, who could ever dream up such an outlandish, ridiculous scheme? It would be scandalous on an international level.
Here’s the tough question: What would you do if tasked with coding such a program?
You might keep your mouth shut, write the code, grin, and deposit your hefty paycheck. You might become a whistleblower and contact the authorities or the media. You might rationalize the situation and conclude you were just following orders. Perhaps your conscience might drive you to quit and find employment elsewhere. You might even write a time bomb into the code that prevents a car from shifting into low-pollution test mode. What would you do?
As a software developer, are you bothered by the premise of building apps designed to deceive? Have you ever been asked to this? Share your opinions, we’d like to hear from you.