Any electronic equipment would consist of the hardware, which determines what it may be capable of, and the software, which is the instructions on how to use the hardware to perform tasks.
Take a microwave. It consists of the box and magnetron which produces the microwaves and the software that controls the intensity and duration of the beam. All the programs for cooking a variety of foods are basically determined by how intense the microwaves are and for how long the food will be subjected to them.
What about a car? You may think you control the speed and power, but the accelerator and speedometer are only a small part of the complex sets of code that makes you car run.
Consider a scenario where it says you are doing 120 km/h but you are really doing less or perhaps more (speedometers are typically allowed to be out by 10%).
Accuracy though is not the same as intentional false readings. It may seem unlikely and it safe to say that it typically does not happen, but the scandal involving Volkswagen last year is an example of how machines can be made to lie.
This will hopefully illustrate the unusual position programmers may find themselves in when someone wants to use code to achieve something that the hardware can’t.
It is a problem that looks set to grow unless more is done to manage the risk.
What happened with VW
Volkswagen wanted to sell a diesel-powered car in the US that would have an attractive fuel economy performance. US law requires diesel engines to have specific emission values in order to manage pollution. The problem was that a planned 2-litre engine could either achieve the fuel economy or the emissions standards but not both.
This was in the mid 2000s and the engineers were looking to launch the vehicles by the late 2000s. Not enough time to find a design to meet the objectives and too big a project to shelve.
They had two options: falsify the fuel economy or the emissions. Anyone would be able to determine if the fuel economy was incorrect, they need only note how much fuel was bought and how far they travelled to tell if it was true.
It was more difficult to determine if the emissions were compliant. So VW created a way to have the engines perform to deliver the emissions benchmarks when tested in a lab, but reverted to the optimised fuel economy on the road.
But how would a car know if it is being tested? Cars have sensors and cars have code. To make a car do anything you need only write code to tell the car what to do when its sensors read certain data.
The default for the code was to run the engine for optimum fuel economy and not worry about the emissions (as much as 40 times over the allowed limit). If the car's sensors noted a certain combination of factors like a light load on the engine, no steering wheel input and constant speed, it would identify that it was being run in a testing facility and so would configure the engine to use more fuel but lower the emissions.
From 2009 to 2014 that is what happened, then a test was carried out on the car while it was not in lab conditions and it found the vehicles failed the emissions test. VW denied that the cars were rigged but that there were technical reasons for the results. Fifteen months later, they acknowledged that they had knowingly rigged the emissions.
In hearings before the US Congress the CEO of VW America said they were not aware of the issue but were investigating who and why the cars had been programmed to deliver different results depending on where it was being tested. In an initial statement he said the issue was created by some errant software programmers.That was November 2015.
A congressman challenged that theory arguing that for the engine to be both compliant and fuel efficient would have marked a major achievement, one which VW may even want to patent, but as they did not, it suggests senior business leaders were aware of the issue and were satisfied with the plan to use what has come to be called a defeat device.
About 500 000 vehicles were affected in the US and an estimated 11 million worldwide, the issue impacted on a multiple VW models and also some Porsche and Audi models.
In September this year one engineer came forward to confess he had created the means to defeat the lab tests and had known that the engines did not comply but managed the approval process in order to allow the engines to go one sale in 2009.
The engineer faces potential jail time and fines. VW US can expect fines and class action suits from those that bought the affected cars and they will need to refit or replace the non-compliant engines. Approval has been given for a $14 billion settlement but that may be affected by a new scandal involving Audi petrol engines.
Information surfaced that Audi engines were not complying with CO2 emissions standards, using defeat devices as recently as May this year. It suggests management must have been aware about the practices.
The challenge to programmers
Programmers are likely to have the same distribution of ethical and unethical members as any other profession, but programmers may come to be put under pressure to deliver business objectives they may find unethical. Refusing to comply would most likely simply see a new engineer appointed to write the code.
There are whistleblowing options, but few believe that speaking out would not affect their futures and so remain silent.
A post by a programmer highlights the issue when he was asked to create code that would promote a certain medication above others. Programmers might often not be in a position to even know if the code they are writing would be used in a way that would be fraudulent.
The real challenge is to regulators that work with brands to meet criteria. If the problem persists regulators might need to work completely independently which is more time consuming and expensive.
It is also a real quandary for consumers. The systems that guide us to our destinations, or make recommendations about what to read, watch or buy and even the rules that govern what will be returned in search results are too complex for us to check that they are working in our best interests.
It may not be a significant issue yet, but in the absence of stricter regulations and adherence to the code of conduct we are likely to see more incidences of this.
This article first appeared on 702 : A code of ethics for code