• %Providing quality teaching resources for the 'computer subjects' (CAT and IT) since 1995.
  • We believe that all learners should be comfortable with computers as part of their lives.
  • Content is presented through real-life examples and scenarios, so that learners may identify with the material more easily and make it relevant to their lives / experiences.
  • We provide videos, PowerPoint presentations, solutions to exercises and data files for exercises - all to make life easier for teachers and learners.
Stacks Image 58588

Study Opportunities' Blog

Beware of bugs - software quality matters more than you think.

Software. The encoding of human thought and problem solving into steps that a brainless machine, unthinking can follow - and follow blindly and unquestioningly.

29 October 2018. Indonesian airline Lion Air had a plane crash 12 minutes after takeoff. 189 people die. The aircraft was a Boeing 737 Max 8. 10 March 2019. An Ethiopian airlines flight crashes shortly after takeoff. 159 people die. The aircraft was a Boeing 737 Max 8.

The 737 Max 8 is a new variation on an old design series. Changes in the physical design of the aircraft (including increasing the size and weight of the engines and moving the engines forward and higher on the wing) result in an aerodynamic tendency for the aircraft to 'nose up'. This can cause the aircraft to 'stall' - a condition where the wings lose all lift and the aircraft literally drops from the sky.

To prevent this 'nose up' tendency a new software system was created to help prevent stalls. The system takes input from two Angle of Attack (AOA) sensors as well as other aircraft sensors (airspeed, flaps, throttle, etc). If the system 'thinks' the aircraft might be about to stall, it automatically (without warning the pilot) pushes the aircraft nose down, preventing the stall. This system is meant to prevent the aircraft stalling (and crashing) when the aircraft is under manual pilot control and operating in tight turns or at low speeds. For information, it is called the MCAS (Manoeuvring Characteristics Augmentation System).

If it senses a too high angle of attack, the MCAS immediately takes control of the aircraft and pushes the nose down. The pilot is not notified This is awesome if the aircraft is actually about to stall. It will prevent a crash and save lives. If the aircraft is not about to stall and the sensor is faulty then what this does is put the aircraft into a dive - and causes a crash.

Pilots were not informed about the MCAS system, it was not documented in the manuals and pilots received no training on the system.

The consequence - when the sensors malfunction, the MCAS takes over. Untrained pilots end up fighting a plane that wants to nose down for no apparent reason. The normal controls to fight this - the yoke - are ineffective. The result: Tragedy. Death.

Boeing 737 Max 8 planes are grounded until Boeing releases a software fix in the next few weeks.

The fact is, getting software as bug free as possible matters.

I have often seen learners struggle and struggle to write a program - and stop the first time they get it to run successfully.

It is our responsibility to make our learners aware of the consequences of buggy software. The cost in millions of dollars to the economy of failed software. The potential for disaster, death, injury, bankruptcy and job losses when software goes bad... We have to install in them the awareness that a developers job goes way beyond simply getting the program to run. They have to test that it handles user errors gracefully. They need to test it with all kinds of incorrect and problematic input. They have to anticipate what they user can do wrong.

Their programs need to be resilient - or the consequences could be dire!

The videos below can be shown as some examples of consequences of software errors. The one titled 'Software disasters' is mainly interesting for the facts and figures at the start - the remainder is likely to put your learners to sleep due to the presentation style.

Other consequences of software errors:

Something worth spending a lesson on maybe - showing the videos, talking about consequences and responsibilities - and possibly integrating with things such as trace tables for algorithms or testing of software for major projects.

Hope it's useful!


Show more posts


Contact Information




Postal Address:


086 293 2702

012 565 6469

PO Box 52654, Dorandia, 0188

Copyright Study Opportunities 2016 - 2021. All rights reserved.

Privacy Policy | Terms of use