Some of the engineers I work with design computerized flight control systems such as those that would be considered “fly by wire” or that fly autonomously with no human in control. As such, I’m always looking for ideas on how to make software that is more and more reliable.
Computers have, I’m sure you already know, taken over.
If you’ve flown on any of the recent Airbus planes such as the A300-series or Boeing aircraft including 737s and 747s and so forth, you’ve been on a heavily computerized airplane. Even the older models still in commercial service by major airlines — I was recently on an American Airlines MD80 that was designed and built possibly as far back as 1980 (that’s thirty years ago) — now have mostly “glass” cockpits, the term used by pilots for computer-based LCD displays that replace the older mechanical and electrical instruments.
But as a software engineer, I’ve learned that there is no “last bug”. While the engineers work very, very hard to make sure the computer always does the right thing, that’s not enough.
A tragic example is the Air France flight that was lost mid-Atlantic. Although the final report isn’t out yet, it would appear that the junior pilots were overriding the automatic systems but doing the wrong thing. As a result, the plane never recovered from a storm-induced stall. It crashed into the Atlantic. Everyone was killed.
I say there is no “last bug” in the computer because there’s always that human interaction and, unlike computers, humans are sometimes unpredictable. To be blunt, there’s no way for the computer to anticipate what the pilot might do.
That can be a good thing.
A few years back, you may remember another airliner in trouble. The control cables between the cockpit and the tail control surfaces including the elevator and the rudder had been severed. The normal controls for steering were useless. The pilot attempted to “steer” by increasing and decreasing engine thrust on one side or the other and — while it ended tragically in a fiery cartwheel — he *almost* made it.
And on a happier note, there’s Captain Sullenberger who, after losing all engines due to bird strikes shortly after takeoff from LaGuardia airport, successfully “landed” his Airbus A320 in the Hudson River saving everyone on board.
It’s that creativity that the computer can never be programmed to anticipate, nor should it. That’s why there’s a pilot on board, to deal with eventualities that could not be imagined.
Aircraft manufacturers have increased their use of computers and automated systems to an almost unbelievable degree. While Airbus may be ahead in some areas of computerized flight systems, Boeing and Lockheed Martin and all the others are right there, too. One of the not-so-secret of secrets in military aircraft is that a plane that doesn’t fly well and needs a computer to keep it in the air can do things that a stable and easily flyable airplane cannot do. That’s a distinct advantage, to be able to do things that most airplanes cannot. It’s the computers that make such things possible.
Even aircraft with traditional cables and hydraulics may be heavily computerized through attitude sensors and displays, navigation and GPS, airborne aircraft identification, radios and so forth. And most of the private aircraft you see sitting by the runways in smaller airports will have several computers built-in through various pieces of equipment. Finding an aircraft without at least one piece of computerized avionics will be difficult at most airports today. (Hint: Look for the nostalgia buffs with the fabric-covered tail-draggers.)
One day I asked some of our senior designers what was the most important aspect of a computerized flight control system. Was it the absence of software bugs, the ability to deal with unexpected eventualities, or the ability to let the pilot attempt creative and heroic feats?
After some consideration, the most senior engineer said it was probably the ability to be turned off and started over again very quickly.
I asked, “You mean like Ctrl + Alt + Delete to reboot my computer?”
He said, “Yes. That way, if the computer ever gets stuck, the pilot can basically restart it.”
I paused a moment before asking, “How often does that happen in commercial aircraft?”
An odd smile crossed his face.
“Are you sure you want to know?”