Reliability Compounds
The 777 was also the first Boeing airliner to fly entirely by wire. A key reliability requirement for fly-by-wire systems is physical redundancy. Fly-by-wire aircraft need to have at least three copies of each system, all receiving, processing, and transmitting the same set of signals simultaneously. The systems monitor each other: If one starts acting out of sync, the combined system begins to ignore it – Minority Report on a plane. The Space Shuttle had a similar system, but was quintuply redundant: In addition to four primary flight computers, the Shuttle carried a fifth machine, running simpler software, in case the code on the other four had a bug. This was a physical admission of a truth software engineers have long understood: The more complex software is, the less reliable it is.
The development of the 777’s flight control software sounds like a nightmare for the ages (or possibly an epic). They were developing not just the software but a new microchip, and a new bus, now the industry standard, to transmit data around the plane. They chose to work in Ada, a language which had until then only been used on mainframes, and it had to be compiled for not one but two microprocessors. The original plan (later scrapped) called for the software for each of the primary flight computers to be written by a separate team, so no single bug would be introduced into all three codebases.