Control of the situation makes you happy

Hi, Habr! I present to you the translation of the article "Controlling Your Environment Makes You Happy" by Joel Spolsky.

About the author: Joel Spolsky, co-owner of Trello, Fog Creek Software and head of Stack Overflow


Most C ++ developers can't stand user interface programming. This is surprising, since I consider UI programming to be ridiculously simple, understandable and fun.

Simple , because the most complex algorithm here is to place one rectangle in another. Understandable , since you immediately see the shoals and you can fix them. Fascinating , because you like watching the process and the results of work.

I think developers are afraid of UI programming because of the fear of UI design. In their understanding, UI-design is similar to graphic design - a mysterious process, subject only to creative “total-black-look” individuals with strange piercings that absorb lattes and create nice looking things. Programmers see themselves as logic analysts: they are good at argumentation, in work they are zeros. Therefore, we are sure that the interface design is not for them.

I find the UI design structured and uncomplicated. To master it, it is not necessary to get a diploma from an art college and dye your hair in acid-pink. There is a less thorny path: apply a couple of simple rules and improve the interface of the program you are working on.

I will not publish the guide "Zen and the art of UI-design." It is not related to art or Buddhism, it is a set of sound rules for programmers. I guess you don't need instructions for creating a menu bar: rather, you wonder what to put in it, and whether you need it. Therefore, I will teach you a simple to understand, but important principle of a good user interface.

In my youth I worked in an industrial bakery. The bakery contained six production conveyors. On every second conveyor there was one mixer, which made dough pieces weighing 180 kg, and then dropped to the right or left:


So it was intended. In fact, something was missing and the location looked like this:


The attentive reader will be indignant: "How did the dough get from the second mixer on the sixth conveyor?" It was the turn of the little Joel. It is hard to believe, but all the work involved was that I had to stand to the left of the second mixer, catch the giant piece in the cart, drive it to the sixth conveyor and put dough on it using a winch-like device.

I did this every ten minutes from ten in the evening until four in the morning. But there were other difficulties. The sixth conveyor could not cope with a weight of 180 kg, and I had to divide the dough into ten parts with a giant knife. I do not want to go into details, how stupid it was.

At first, I lousy cope. This work seemed simply impracticable. Every bone of my body ached with pain, a blister sitting on a blister. Sick places, the existence of which I did not suspect. The first time I did not have time to supply the dough conveyor. The gaps in the line provoked constant interruptions: the dough with gaps fell into the oven, and the bread burned due to the smaller volume for a constant amount of energy.

Sometimes the conveyor clogged and stopped, but the mixer continued to work properly. The problem is that the place in the cart could run out. When this happened, I was forced to scrub the floor, lubricate it with oil, throw out the dough, and collect it later. This is not the best way out, because after 30 minutes the dough began to ferment, and good bread did not work out anymore. Then it was necessary to chop it into pieces of 5 kg and add one piece to each new batch.

But after a week I got a good job: 2 minutes of rest for every 10 minutes of the “test cycle”. I made an exact schedule and learned how to pause the mixer when a failure occurred in the pipeline. Then I wondered why, as they say in beer advertising, some days are better than others.

Once I noticed that one of the carts had faulty wheels. I was a little annoyed that sometimes she turned in the wrong direction and demolished everything in her path. Slightly infuriated that pulling the winch chain, I scratched with a small piece of metal. It was annoying when I ran with an empty cart to catch the dough and slipped on splashed oil.

But there were tiny victories. I planned out the time for making the dough so that the fresh batch was ready for shipment seconds before the previous one ended. From freshly-dough dough turned out excellent bread. Some victories were even less significant: I noticed a small drop of dough, flown away from the mixer, scrapped it with a spatula for paint, which I carried in my back pocket, and threw it away. Oh yeah! Sometimes it turned out to cut the dough into even pieces. At such moments I managed to keep the situation under control, even in small things.

So my days went by. A bunch of small defeats plus a bunch of small victories. What did I get in total? Even a small disorder affects mood. Quality is more important than scale when it comes to emotions. I noticed that the happiest days were accompanied by numerous small victories and several mini-failures.

Years later, in college, I studied an important psychological theory of the learned helplessness of Martin Seligman. This theory, supported by years of research, tells us that depression grows out of a sense of helplessness when you cannot keep the situation under control. The better you control the situation, the more you get. You get angry and freaking out if everything goes out of control: the space on the keyboard is broken, and when you type, the words stick together. It's annoying because you press the spacebar, but nothing happens. The key to the front door does not always open the lock. He gets stuck when you rotate him. In sum, all these little things upset us day by day. Despite the fact that they look like utter nonsense compared with hunger in Africa. But damn it, I am worried about the stupid gap!

Okay, let's get back to the computers. I propose to create a typical Windows user named Pete. This helps to keep in mind the image when creating the interface. The more realistic an imaginary user, the easier it is to imagine how he will use the product. Pete works as an accountant in a technical publishing company and for six years uses Windows at work and at home. He is competent and technically savvy. Pete installs his own software: reads computer magazines and even programs simple Word macros to make it easier for secretaries to send invoices. He has a cable modem at home. Pete never used a Macintosh: it's expensive for him. “For a PC with 700 MHz and 128 MB of RAM - too much to breathe ..”, - OK, Pete, we understood you.

Once, Pete's girlfriend, Gina, asked for help with her computer. Gina has a Macintosh iBook, and she just adores translucent “boxes”. Pete hates these things, so he got mad as he sat down at the computer. As a result, he helped her friend, but was extremely dissatisfied: "Macintosh has a ridiculous user interface." Absurd? What is it about? Everyone knows that the Macintosh has an elegant interface, and the whole thing is in its ease of use.

Here is my analysis of this riddle. You want to drag the window onto the Macintosh - just pull over any edge. On Windows, the title bar is used to move, and if you pull the corner, the window changes shape. Applying this principle, Pete tried to expand the window on Mac Gina, but it was treacherously moving. When a message box pops up on Windows, you press Enter or the spacebar, and it closes. On Mac OS, the space does not work, you have to click the mouse. Having received the notification, Pete habitually clicked on the space to remove it. It worked the last six years, but not this time. Without realizing it, Pete began to hammer on the key. He was sure that Mack simply did not register a click. In the end, he took advantage of the mouse, but managed to be nervous.

Pete used to close the Windows window with the Alt + F4 key combination. On the Mac with their help changing the volume. At some point, Pete wanted to click on the Internet Explorer icon, covered by another window. He pressed Alt + F4 to close the window and immediately double-clicked on the desired icon. Well, after that he had to close two windows: the operations worked differently.

It would seem trivial, but they managed to spoil Pete the evening. The guy tried to keep everything under control, but nothing happened. Spacebar and Alt + F4 "did not work", but in our perception it looks more like a breakdown. The naughty window seemed to be making fun of Pete and moving, rather than expanding. Bad window. Even this subconscious, subtle feeling of uncontrollability turns into helplessness, which turns into misfortune. “I love my computer,” says Pete. - Winda works the way I like. On these poppies is so difficult and uncomfortable. Some disorders. If Apple had been working on the operating system for all these years, instead of messing around with Newtons, there would have been no such confusion. ”

We understand you perfectly, Pete. But despite your feelings, the Macintosh is very convenient to use. For example, for Mac users. Microsoft programmers who, presumably, copied the Mac interface, thought that they were adding a new cool feature, allowing you to resize windows, stretching any edge. Mac OS 8.0 programmers probably thought it would be convenient to move windows using edges. Most wars fueled by user interfaces are focused on the wrong things. Windows is better because it is convenient to resize the window? It does not matter. The trick is that the interface must meet the user's expectations. If this is not the case, the user will feel helpless. Like me, when the trolley wheels turned the wrong way and I hit the wall. You are dyes!

The user interface is important because it influences the feelings, emotions, and mood of your users. If the UI is bad, then people will not be able to control the operations performed, they will be upset, and the developer is to blame. If the interface works as it should, then users will be happy because they have achieved their small goals. Hooray! It worked! Great software! Woohoo!

To make people happy is to give them control over the situation. For this you need to correctly interpret their actions. So, the main rule of UI-design says:

“A good user interface behaves exactly as expected”

As Giggel said: "Everything else is just comments." The rest of the UI design rules are just consequences.

Source: Controlling Your Environment Makes You Happy
Translation: cinnamongirl

Also popular now: