Poor UI Design Can Kill – Air Inter Flight 148, a Harsh Lesson Learned
blog.martindoms.com
blog.martindoms.com
It doesn't hurt if they're encountered frequently enough that the user / operator has a clear sense of their distinction.
vi/vim is a modal editor. There are two ways of interacting with it: "insert" mode, and "normal" (command) mode. In one, you're editing your document, in the other you're operating on it. While frustrating for new users, with experience using modes becomes transparent, as they're switched in and out of all the time. Though the visual distinction of modes isn't always clear.
In a non-programming context, most sailboats have two primary operating modes: under sail, and under power. Here, the contexts are evident from a large number of cues in the environment, and how the boat is skippered is evident from these cues.
Other tools have many modes of operation -- the various apps on a smartphone/tablet effective change the mode of the device. Is it a phone? A music player? A messaging tool? A web browser? The "mode" is specified by the application. Usually visual cues of the display indicate which specific mode is operative.
On a Mac, the keyboard preference pane in system prefs has a "modifier keys" section, which is bizarrely separately configurable for the built-in keyboard vs. a USB keyboard on their laptops. On Linux, the configuration is different for the VT vs. window managers.
A switch built into the chair seat which generates ESC when the user gets up could be useful, though.
I find vim's shorthand notation for commands far easier to deal with than emacs's long alt-meta-command constructs. After a quarter-century, I've pretty much got over the weirdness.
Secondly, its commands are modal. When you begin a command with Meta-X or Ctrl-X, Emacs goes into a different mode: the next character typed will not self-insert.
All command parsing is modal.
Are you sure? Consider the way command lines are executed in Plan's Acme editor: you drag the pointing device to select the text you want to execute, then you click on the selection with the middle mouse button. (Alternatively, drag with the middle mouse button, then release that button.) There is an one-line-high area (called the tag) at the start of every editor window for typing in commands when you do not want the typing to mess up the buffer (the in-memory copy of the file being edited) itself.
Part of the vim cult's belief is the Never-Leave-Home-Row. That is, where you first rest most of your fingers on the asdfjkl; keys. Your hands are 99% of the time if you're not actively typing in the document. If Vim didn't have modes then you'd have to drop this concept. But of course, mistakes in vim don't normally result in dozens of people dying. If something happens that I didn't expect I just glance to the lower-left corner of my terminal to see what mode I'm in.
A common path to fluency with vi is to live in command mode. When you type something, immediately press escape out of habit. When you want to type something new, develop a habit of pressing a/i/o with confidence that you're already in cmd mode.
If you find yourself navigating in insert mode, that's a red flag.
The other very important thing is being able to recover from using a wrong mode easily.
With Vim, it's often a matter of dropping into Normal mode and pressing "u" once or twice. Recovering from closing a private tab will take a bit longer, but you can still live with it. Sailboat and airplane modes are a different story.
I have a better example for your argument, using sails.
Reach port sail config or reach starboard sail config. Its been 20+ yrs since I've sailed but for the landlubbers that means the sails are hanging off one side of the ship or hanging off the other side of the ship.
Tacking between them is quite hazardous you can get whacked in the head and knocked out and swept overboard or if lines are not handled correctly you could tangle a foot and get tossed overboard etc etc, and thats before operator dangers like improper line handling hurting you or rope burns or who knows how else you can get hurt while mode switching. I suppose if you screw up the guying of the mast you could shatter it while tacking and that just isn't good.
So yeah, to a landlubber, a sailboat that can only deploy sails to starboard is obviously a huge UI win because its modeless. Of course that makes the boat uncontrollable and useless most of the time. This is how sailboats would be designed if landlubber UI professionals designed sailboats.
If you'd like an EE analogy of modes, look at multimeters. You're not going to get away with selling dedicated ammeters or dedicated hardware voltmeters other than specialized apps (clamp on current meters, safety inspection high voltage voltmeters, thats about it). People would rather switch modes than pay twice as much. Of course its worse and many meters do semiconductor forward voltage drop, and continuity, and resistance, and frequency, and capacitance, so next thing you know you have 50 meters on your desk or one multimeter.
But you also neatly capture the reason for modes: they provide more capabilities and make a tool more useful. Again the main UI/UX problem isn't that there are modes -- we deal with modes all the time: inadequate vs outside voice, kitchen vs. bathroom activities, behavior with your BFFs vs. your boss or a customer, stadium vs. museum. It's just that these are so totally and fully integrated into our experiences that we don't often think of them as modes. But they are. And the behaviours are learned.
The trick in UI is to make the distinctions so obvious that the user responds like this. Behavior in a given mode is obvious, using the wrong behaviour a glaring error.
I suppose that's the problem - making a mode intuitive isn't universal to all people, which is why sometimes we design things and hand it to someone else who is completely baffled by what seemed to be intuitive.
An interesting consideration though: experienced users know to develop unstacking habits. They wouldn't need the visual indicator even if it were there. Getting out of insert mode is akin to tidying up your ropes after a tack.
The concept in vi is to make reasonably small edits and finish them with ESC, not to type "i" followed by a five day long brain dump. Just like you would not leave your GUI editor in "Alt-F" with the file menu popped up, or your Emacs in Ctrl-X mode, expecting another character like Ctrl-S to save, don't leave your vi hanging in the middle of an insert command. When you get distracted by a phone call, lunch or washroom break, finish the partial edit.
No, that's bad. Your user can always miss the cues, in fact, you have to design considering they will miss.
In vim and other examples you gave, modes aren't a problem less because the distinction is clear and more because being in the wrong mode is not a cause of disaster - but they're still annoying.
The problem with the Airbus VS would exist regardless of indication of the mode it's in, even if it had a giant bright orange screen explaining the value shown is in feet not degrees, because the operator would develop blindness to it. A possible solution is having two VS displays, one for feet and another for degrees, such that the operator can disambiguate at a glance. Another is standardizing to one unit only (which is harder).
[ ] Mode [10.0000 DEG]
...that once toggled turns into this... [X] Mode [32.1234 FTS]
... is bad. This is better: [10.0 DEG] [32.1234 FTS]
You don't have to think, you can use different decimal places to reinforce cues, you can confirm the values are correct by seeing both values at a glance. Further, there's no mode button to fault, the display can't be in an inconsistent state (accusing one mode and showing the value of another).Sometimes you can use modes to hide unnecessary information, but for something that answers the question how fast am I falling you really don't want ambiguity or cognitive load.
What people have to understand is that it doesn't matter how clearly you think you're labeling it, if it breaks the user expectation, it's not clear at all - and an experienced user reads even less, which is the case of a pilot.
Once the pilot develops an habit of, e.g., switching the vertical speed display from feet/s to degrees during final approach (and that may have been what happened), and one day he forgets to switch, or the mode button malfunctions, or double clicks by mistake... there you have a recipe for disaster.
To your point, that overhead can be reduced through various UI techniques, but it cannot be eliminated. It's an extra bit of information you need to track. It's an extra check you need to make before reading the situation (and critically, it cannot be done in parallel). Switching modes is an extra step you need to take before performing an action. These are all additional points of failure. In a high-stress, high-stakes situation that's something you want to avoid.
That's not to say that modal UI's are always bad and never should be used. I'm saying that there's a tradeoff, and that tradeoff is not worthwhile in safety-critical applications.
http://en.wikipedia.org/wiki/Air_France_Flight_447
The two sticks can be pointed in different directions. The plane does not complain about this and averages the inputs. One pilot is pulling back, one is pushing forward, plane crashes. Clearly there are some human factors here, but from what I've read, on Boeing's aircraft pushing one stick causes the other to move, much more intuitive.
I think the UI issue in AF447 is much less clear cut. It's more a lack of any indicator that pilots are making opposite inputs, rather than a misleading or confusing display. Airbus did not anticipate that a pilot would stall a plane and fly it directly into the ocean. There was a whole chain of events (including some appalling human factors) that led to the tragedy there.
The avionics teams at both companies have put an incredible amount of thought into how these systems are designed, and how they fail. The differences are instructive, but we should refrain from being quick to judge which is more or less intuitive.
I´m currently flying A-320, I´ve also flown B 737(300 and 800), and MD88. It´s true that at the beginning the new airbus received a lot of heat from pilots. After all they were trying to reinvent cockpits UI from 0. This led to a series of design accidents (due to initial design mistakes ) like the one on the article.
The initial idea it´s not bad: reducing weight (removing all mechanical and hydraulic controls), inventing the glass cockpit, simplified system management, etc..
It took over a decade to polish the cockpit (and the whole airplane, that had tons of electronics related failures all around) to it´s actual safe and workable state. Those issues, plus the idea that pilots had to readjust your whole idea of a cockpit, were the ones that created that opposition. The opossition it's almost gone now, although in general we pilots still prefer Boeing aircraft (at least in Europe). Airbus airplanes fly very nicely and are great too.
But now that we are used to the new IU, the concept problems are still there.
Main diference between flying normal fly controls and a moving auto-throttle and airbus fly-by-wire:
-Airbus throttle levers don´t move while the auto-thrust is changing the power setting. All the other airplanes as far as I know do it.
-Airbus side-sticks don´t move when the autopilot or the other pilot is giving an input. Also as somebody explained above, the inputs are added, you can end with a double (or zero input), if you forget to push the priority button (in stress situations like last second corrections to land it´s easy to forget it).
Why this is a mistake? because when flying a modern airliner you have an excess of information to process, all at once. A moving auto-throttle let´s you know what the engines are doing through your hands, without having to look at a tiny indicator at the instruments. Also it let´s you override the auto-throttle briefly because you need more power or less power at a given moment, without having to disconnect it. With airbus auto-thrust either the airplane or the pilot has the control, and you have to manually takeover. This may be dangerous at an approach that it´s already hard enough with cross winds or heavy rain.
The same apply to the side-stick. Normal autopilots move the fly controls at the cockpit while actuating them. This let´s you know what the autopilot it´s doing. And of course when a pilot it´s flying manually, the other pilot knows exactly what he is doing ALL THE TIME. He can slightly correct a maneuver without having to take over the controls from zero.
Airbus has wiped a layer of fundamental information available to the pilots, increasing the information overoosd through the vision. It´s the equivalent of driving a race car with a playstation control. Most of the time this information it´s not used(like in cruise), but you really, REALLY need it when things become hairy close to the ground. In fact I routinely disconnect the auto-thrust to land, with the Boeing and MD88 I kept it engaged.
Airbus knows this, but it´s too late to change 20 years of airplane development. They´ll need to change too many things (systems, procedures, certification, instruction), also right now it´s easy to change from flying let´s say a A320 to a A 330, due to having very similar cockpits and systems (that´s a great idea). The conversion course it´s short and relatively cheap. Changing the controls would make this fleet changes much more expensive and time consuming to Airlines.
Edit: overall small changes to improve clarity.
Unfortunately pilots don't have a whole lot of options to exert meaningful pressure on aircraft manufacturers.
If a group of pilots came together to declare an aspect of a plane's functionality as unsafe, wouldn't that send strong signals to the public, governments, ICAO, etc? Even if those signals were ignored initially, they could become more important later if an accident occurred in which the same functionality is (or "was"?) involved. At that time, the media groups, great lovers of scandal and tragedy, would come out and say, "Functionality X contributed to the accident. These pilots warned about the dangers of functionality X back in year Y, and everyone ignored them." After that, the pilots' opinions might be more heavily considered.
To me it sounds like a cost-cutting measure - to have controls that move, there has to be an actuator in them, which makes it more expensive. My stereo which has self-indicating volume knobs actually contains a small motor that rotates them when I use the remote control.
Stalling and flying into the ground have been two common failure modes since flying began and they often happen in sequence. I would think they would be high in the list of misuse cases any aircraft designer would consider.
"we should refrain from being quick to judge which is more or less intuitive."
We should not be quick to judge which UI is more effective, but by definition we can be quick to judge which is more intuitive. In fact, the more time you spend with a system, the less qualified you are to comment on whether it is intuitive. Judging whether a UI is intuitive should take very little time and no expertise past understanding basic operations. I'm certainly not qualified to judge, but I'd think anyone who has experience with modern flight systems would be qualified to comment on whether a particular design was intuitive.
And that is an obvious problem. It's literally one of the first things you cover when you begin learning how to fly. The instructor will sit you down and walk through how you hand off the controls and agree who's flying the plane at any given time. Likewise, when flying with another pilot you always do a positive handoff. "You have the plane." "I have the plane." The physical link between the two sets of controls is an important backup mechanism that ensures this happens.
Not linking the two sets of controls is insane. It's unrelated to the different approaches to fly-by-wire. Taking two radically different control inputs and simply averaging them together makes no sense.
"The investigation was unable to determine whether the copilot was aware of the pilot in command’s dual sidestick inputs, even though they resulted in aural ‘DUAL INPUT’ synthetic voice messages…The copilot’s focus on correcting the aircraft’s attitude and trajectory, together with the numerous FWS synthetic voice messages, may have resulted in the copilot not comprehending the significance of the aural ‘DUAL INPUT’ warnings…"
From: http://criticaluncertainties.com/2011/09/16/pilots-in-the-lo...
Another instance of a very poor choice that led to people being killed in aviation was the one where 'take-off power' was interpreted as 'take power off'.
I can't find a reference to that accident but the essence was that during a go-around instead of full throttle the pilot reduced power causing the aircraft to stall and crash.
My understanding is that the word 'take-off' over the radio is (or at least should be) treated like a loaded gun, you only say it when you mean it. Departure is used in place of take-off where appropriate (e.g. "Speedbird 101, holding short of runway 13, ready for departure.")
In my experience around towered airports, I can't say I've heard "take-off" used in any radio comms I've had. In the example you've given, "departure" would be used instead of take-off as you've said. Towers are encouraged to use other terms[0], like the following:
"N1234 cleared onto the active runway" which means you're free to proceed with your take-off roll.
When you leave the airspace(at least at a class D airport), the controller will contact you with "N1234 frequency change approved", which means you either contact the next frequency planned in flight(such as flight following, or no frequency if you're just flying around in class E).
[0] http://www.faa.gov/air_traffic/publications/atpubs/atc/atc04...
So long as you can always tell which mode is the current one, I feel modes are fine.
That said, the example in the article seems like a pretty severe oversight (crucial indicator, completely identical modes) by itself.
It's fairly obvious, isn't it? A keyboard with no shift key is going to need twice as many keys... but of course you'll also never find yourself accidentally typing with caps lock on. That's the trade off. The UI becomes more complicated.
The caps lock key does a very similar thing to shift, and is not very useful on a modern keyboard. In my experience it is more often engaged by accident than on purpose.
http://web.archive.org/web/20050914030410/http://web.mit.edu...
http://web.archive.org/web/20050412110614/http://web.mit.edu...
Notice that the mode indicator is only in the middle, far from the value it's indicating the mode of, but in the cockpit picture in the article ( http://blog.martindoms.com/wp-content/uploads/2011/01/IMG_82... ), you can see that there are actually two mode indicators, one in the same position as the one in the study and one right above the value where it should be. A quick Google of other cockpit images shows that the plane does have two. I wonder if this was an oversight?
Before we were all concerned for our privacy these modes were (and prob still are) mostly used for surfing porn. When one is surfing for porn in "private" mode it would benefit to have the UI not scream "I'M DOING PRIVATE STUFF".
the moral of the story is avoid modes whenever possible
We try to avoid using global state (and state in general) in software engineering for this exact same reason. Humans just aren't good at keeping track of more than a few things at once, even if they are the ones who designed the system in the first place.To restate my analogy: the problem is when you can run the same function twice with the same input and get a different result. Or when the same variable can mean two totally different things depending on some external context.
This also includes pictures of the displays without (-3.3 and -33) and with (appending two small zeroes for the latter) the fix employed by Airbus.
(I also commented on the original article, but await moderation.)
Not a story for Vim aficionados.
https://www.youtube.com/watch?v=0wp-Dbb2CO4
Start at 3:34. Very revealing comments at 5:20 about pilots having to fight with the "strong but silent partner" in the cockpit.
With something as complex and data-driven as air flight, managing a UI will always be complex as a result. As any given control needs to be available at any given moment, you cannot obfuscate too much in the interest of cleanliness.
With all that said, this issue is still not a UI issue, but a training issue and perhaps also an issue with a lack of standards (I'm assuming, not in flight) with jet UI. Even with poor UI, understanding what you're changing and verifying it should boil down to training.
Based on this article, it seems like there's a lack of continuity between aircraft in where controls are, and I wonder if there's ever been any push for standardization. I realize not all craft could be complete mimics, but general controls and indicators should be in the same general area, right?
Absolutely not! Yes, I want the pilots flying my plane to be as well trained as possible, but there also better damn well be a good UI in place to prevent human error, because that's the one thing we can count on, no matter how good training is or how well-intentioned people are.
As for the airplane example, isn't it quite natural to expect the pilots to have gone through extensive training? I understand consumer websites need to be intuitive, but highly specialized things can't really be intuitive.
One big problem with complex things like a cockpit is that the guys who build it are specialists in a different field from the guys who use it. So how are they going to know if the thing is intuitive? I would imagine a pilot mostly touches the same few commands each day, leaving most modes out of use most of the time. By contrast, the developer needs to build the whole thing.