I myself, as an interface designer and programmer, on the one hand see problems, and on the other I understand that they cannot be solved with one wave of the hand, and in many cases there are objective reasons for the compromise. But I suggest not to chew snot, but to gather the will into a fist and walk together in a bright future. In the end, who if not us?
So, sins:
- Slowness
- Blocking interaction
- Inappropriate restrictions
- Unsettled
- Lack of independence
- Forgetfulness
- Pride
Of course, there are a lot more problems, but these are chosen taking into account fashion trends and what the mainstream is gradually becoming aware of. Under the cat more:
1. Slowness
- You ask Exlip to install the maven plug-in and it fulfills your request within half an hour.
- You run Photoshop and have time to read a couple of blog entries.
Programs must run fast. Now it is clear how much speed is a feature. Users leave even slow web pages. And when the program is engaged in an eruda out of the blue - this is a guaranteed parting for life. And most importantly - the interface always, no matter what happens, should respond to user actions. Otherwise, the program is declared dead.
')
2. Blocking interaction
- You press the commit button in svn, and until it leaves completely, no one will let you go.
- You apply a complex filter to the image and you must wait until it is fully calculated before you can press anything.
In the general case, while the program is doing something (even for nothing), it makes you wait “just in case”, you never know what's going to ruin it. The apotheosis of this sin is modal windows - the program does
nothing , but does not allow it to go anywhere. The recipe is simple - work in the background, so it's harder to apply.
Positive example:
Final Cut Pro X , to the tenth version, which acquired background rendering of materials. You should see an ovation at the presentation of this feature.
3. Inappropriate restrictions
- The description can not be longer than 1000 characters.
- The category name cannot contain spaces.
- You must join a blog to read a post from it.
In the general case, one person pointed to the sky and gave birth to restrictions. Also calls it “thought about use cases”. The best restrictions are those that are not. We are not Baitics on diskettes save in the
21st century. It's time to get used to it, that instead of “vasya_poopkin” I can log in using the much more beautiful “Vasily Pupkin”. If you can make, say, a description of a product of any length (and it can) - do it, no need to guess that most likely no one will need more than 1000. Never guess.
4. Unsettling
- First of all, in a text editor, you change the font and turn on autosave.
- First of all, in the browser you remove unnecessary panels and enable saving passwords.
In general, the program in the initial configuration is inconvenient / unpleasant / unsuitable for use. People are used to, that first of all you need to get into the settings. But this does not mean that it is good. The stores do not sell shovels, which must first be forged. You do not change the handle of the hammer immediately after purchase. The program is the same tool, and the obligation of the seller (read the developer) to make it use immediately. By the way, if you think about it, then 50..90% of the settings can be thrown out as useless.
A positive example:
iA Writer , a text editor without the settings panel.
5. Insolvency
- I can not create a project, the folder already exists (empty).
- Your repository needs compactification. Run it!
- I can not start the search, the contents of the file system has changed, click "update".
- Among your hundred thousand and five hundred files, one was found protected, while I’ll stop, what should I do ???
In general, the program does not make something simple and expects an obvious command from the user. Worse, if the task is frequent, or if it occurs during a long process, when a person is not around. The user, of course, will get used to everything, but a little intelligence and decisiveness of the programs would not hurt. Usually, programs have plenty of free time between user interactions, and it would be good to do something useful at this time (index / update / check / add), which will speed up subsequent interaction.
A positive example: Safari browser itself unpacks the archives and mounts the images immediately after the download. Google Chrome itself downloads and installs updates without a single window.
6. Forgetfulness
- You did not specify the address, please fill out this form again.
- Save the document? - Not. - Ok, deleted. - Although wait ...
- You tell the filer to show files in a list, and next time it shows them again with thumbnails.
- You choose one layer, but after some time objects are again created on the other.
- You adjust the window size, and the next time you start it, the program forgets it.
In general, I should not take any additional actions so that what I enter (in any form - information, settings, window configuration, screen brightness) is preserved. Gentlemen programmers need to raise the ass from a chair and go and make sure that it is. This is the default behavior, damn it!
Positive example: IndDesign CS5 even after a fall rises exactly in the place where you finished, regardless of whether you were saved or not.
7. Pride
- The update was successful! (Avast, voice!)
- I haven't started yet, but here's my splashscreen across the whole and stealing trick.
- Hello, dear friend! I know you launched me to do something, but I have an update here, go download it better.
- And I’m a small camera control program, and I’m afraid you’ll never see me, so here’s my toolbar in the browser, the icon in the tray, autorun with splashscreen, the start page and default search.
- You have not cleaned your desktop for 60 days ...
In general, the program considers itself to be the center of the universe and worries the user about any event, so that he scratches behind the ear, download the update, even informs him that everything is going well (!). Programs blink in the taskbar, jump in the dock, shove their icons (I look at you, adobe reader), they demand something from you (arrogantly, not so much?). As a result, if you did not boot into the system for six months, then you will be blocked by a dozen of some stupid windows, and you just need to pick up the file, for example. Still, a computer for a person or a person for a computer? Sometimes it seems to me that my answer differs from the opinion of most developers.
Bonus
Seven examples of enchanting stupidity from the collection of the author.
- Slowness You ask Windows to go to the samba and wait for half an hour first so she asked you for a password, then for another half an hour she will “try to join” the neighboring computer. Feeling as if the border guard took your passport and secretly went to dinner.
- Blocking interaction Entire modal for browser alert / http basic auth form - such that you can not switch to another tab to copy the password.
- Inappropriate restrictions. What should I do if the name given to me at birth does not satisfy the criteria of this nameless analyst?

- Unsettled. All weather sites that do not even try to determine the city by ip.
- Lack of independence. Enter the phone number without spaces or special characters.
- Forgetfulness. Save the document you wrote 7 hours? Well no? Oops.
- Pride. Windows Vista: installed update, are you here? Ok, 10 minutes no one, nailing everything and rebooting. - Hey, man, and what, the electricity was cut off?
If the thoughts expressed here seemed to someone a little interesting, I recommend to continue reading here:
- Donald Norman. Industrial Products Design / The Design of Everyday Things. About the fact that in general there are problems with things, who is to blame for it and who should solve it.
- Jeff Raskin. Interface (posted full text). About how computers could work quite well if they listened to smart people in Microsoft too. Familiar with this book is fun to watch as ideas and principles from it are slowly dragged into the modern world by Epple, and then all the rest.
- Alan Cooper. About the interface / About Face 3 . A very large and very detailed work, on the bones, dismantling modern interfaces and offering adequate solutions to many problems. For example, half the release of OS X Lion at least was predicted here :)