Whatever happened to quality?
There is a well-known adage amongst programmers that there is no such thing as a bug-free program, but that doesn't mean testing is pointless. Good programmers spend at least as much time on rigorous and systematic testing as they do on design and coding. Poor programmers want to ignore the tedious testing and tead add more features.
Earlier this month, MEPs voted on sweeping changes to European Copyright Law. Part of the voting process concerned some amendments to the bill, which failed by just five votes. After the voting process, 13 MEPs have complained that they may have voted the wrong way because they had misunderstood the buttons on the voting machines, but once voted, the vote cannot be undone. This might be comical if it wasn't such a serious matter that affects all of us, and it is a good example of how poor quality in programming and interface design is so often found to be lacking.
Software development hurts
In the USA, Accenture is being sued by Hertz car rental company to recover the $32 million they have paid so far for a new website which still does not meet requirements. According to the documents filed by Hertz, it commissioned Accenture to build its global website back in mid-2016 with a launch date of 2017. That deadline was missed, and new deadlines of March 2018, and then April 2018 were also missed.
It wasn't just a case of missed deadlines though. The agreed spec was that the new website would be responsive, scale to fit the wide range of devices now in common use. Hertz complain that Accenture have produced a version which works on a large screen, and one which works on a cellphone, but nothing fluid in between. When Hertz complained, Accenture offered to upgrade the website at an additional cost of hundreds of thousands of dollars.
Another complaint is that Hertz specifically said the redevelopment had to be extensible so that it could be used in all of the Hertz companies across the world, and with other Hertz brands such as Dollar and Thrifty. Hertz claim Accenture ignored this and produced a website which works only for the Hertz North America brand.To bring the product up to the agreed spec, Accenture was asking for a further $10m in over-run fees.
Hertz were highly critical of the quality of coding in the front-end systems, and the court submission states the coding "created serious security vulnerabilities and performance problems. The defects in the code were so pervasive that all of Accenture's work on that component had to be scrapped. For other components of the system, substantial portions of the code were also unusable. In addition, Accenture failed to perform proper testing of the software that it developed. Accenture did not perform tests on many components of the system. When Accenture did perform tests, they were seriously inadequate, to the point of being misleading."
Expect to hear a counter-story from Accenture accusing Hertz of an over-ambitious design and an expectations gap. The story is an all too familiar one. The only unusual aspect is the sheer scale of the dispute.
The tragedy of ET302
In March, Ethiopian Airlines flight ET302 crashed after take-off from Addis Ababa, killing all 157 people on board. It was quickly established that this had great similarities to Lion Air flight JT610 last October, which crashed into the sea near Indonesia killing all 189 people on board.
In both cases, the plane was a state-of-the-art 737max, Boeing's answer to the Airbus A320, and in both cases it seems the pilots were battling with the plane's automated anti-stall system, dubbed MCAS. The investigation into JT610 found that a faulty sensor on the aircraft wrongly triggered MCAS without the pilots' knowledge and forced the plane's nose down more than twenty times before crashing into the sea.
Press reports indicate that many pilots were unaware of MCAS and the system wasn't mentioned in the pilots basic manuals. The correct procedure would have been for the pilots to simply disengage MCAS, but that involved flipping the correct sequence of switches, at a time when the pilots have only seconds to react. Neither ET302 nor JT610 were fitted with the MCAS warning system, an optional safety feature which could be fitted for an eye-watering $80,000. In good systems design, safety should be built-in from the start, not an optional add-on at the end.
At this stage it sounds like the problem which led to these tragedies is a combination of poor software design and testing, resulting in software which wasn't robust enough to cope properly with the malfunction of one single sensor, poor documentation and training, and poor interface ergonomics which were never tested in realistic simulations. When we are talking about safety-critical systems and people's lives, there is no excuse for any of those.
The 737max remains grounded, but President Trump, never one to shy away from commenting in areas where he has no expertise, has tweeted his advice: "If I were Boeing, I would FIX the Boeing 737 MAX, add some additional great features, & REBRAND the plane with a new name. No product has suffered like this one."
25th April 2019
This article comes from the SKILLZONE email newsletter, published monthly since January 2008, and covering topics related to technology and the internet. All articles and artwork in the SKILLZONE newsletter are orignal content.