A lot of people dislike computers, especially those working with them, and in spite of the nearly-unlimited power they provide to their users. One of our main engineering goals will be to reduce that effect to a great extent and to make people feel more at ease facing their computers. This article will explain how we plan to do that.
Why do most people dislike computers ? Let’s try to sum up the most common criticism :
- Computers are complicated : Automatic updates, administrator rights, antiviruses, drivers, utterly complicated network center and permissions… For most people, the less annoying things one has to learn, the best an OS is. That’s one of the reasons why Mac OS X is so popular in some areas.
- Computers don’t work : Applications suddenly crashing, leading to the loss of 1 hour worth of data, all that because one forgot again to click the “save” button, which is hard to remember when you are concentrated on something. Malware destroying data you were not even using and stealing personal information in order to inform the RIAA that you downloaded a song from a singer dead since about 20 years. Unpredictable behaviors that no one knows how to cancel and require one to learn workarounds. All this participates to the bad reputation of computers.
- Computers are slow : Actually, computers are internally capable of doing a lot of tasks way faster than usual human beings, and hence to save a lot of time. However, people generally feel that they’re losing time when they use a computer, partly due to slow operation (where the only thing they can do is wait) and partly due to endless display of annoying popups or other useless and unwanted applications that distract one from what he/she wants to do. Finding a specific file in the hell of folders is also often viewed as a proof of the alleged intrinsic inferiority of computers (even though people also have to tidy up their libraries and rooms).
- Computers are stupid : Do you really want to do this ? Do you really want to do that ? I know what to do, but do you agree with my idea ? People generally feel like computers want to make fun of them with a lot of stupid questions on subjects where the answer feels obvious to them.
- Computers are dictator tools : Computer systems tend to have a dictatorial behavior nowadays : keeping data and applications away from the user, suspecting it’s guilty before it did anything with stupid buggy “copy protection” systems, and hiding system things away from the power users is more and more common, especially in games and Apple products. How could one trust a machine who doesn’t trust you and wants to dominate you ?
If there was a scale for how much people like a technology, computers would get a fairly low rating for most people, who feel awkward when using them. How could our operating system higher this rating at least a bit ? The following development principles sound like a good start to me :
- Be responsive : The first thing one may think of about the speed issue is to reduce computer unresponsiveness. Even if it isn’t actually doing things any faster on the inside, a computer which offers instant responses to user input and keep him busy for good reasons will be perceived as fast, because the user won’t feel like he/she is losing time at doing nothing.
- Do not require a PhD for everyday use : The commonly used parts of the interface should only rely on a limited amount of required knowledge from the user. This way, learning or remembering how it’s used is fast, and everyday operation won’t require a large amount of reflexion.
Keeping the same philosophy, the user shouldn’t have to learn a lot about the system or the underlying hardware in order to use it, and the common administrative tasks (connecting to a network, installing an application) should ever remain dead easy.
- Be easy to learn : One of the reasons why many people dislike command line is that you constantly have to rely on a manual in the beginning. “Why”, ask the user, “can’t I just be put in front of the machine and quickly understand how it works ? Why do I have to learn and remember all these silly commands ?”. A functionality is well-made when the user may find it without the help of the manual or some documentation. It isn’t when it relies on the use of icons without text (how is one supposed to know what that means ?) or other kinds of obscure interface (information surcharge is a common problem).
Ease of learning also comes from interface consistency : two interface elements that do the same thing should look and work the same too. Consistency can be achieved through the use of standards : the way a user does a thing should be independent on the way the system achieves this.
- Don’t annoy the user : Developers should be careful about using pop-up windows. Used in a reasonable amount, they allow good communication between the user and the programs, but too much popup leads to the Windows situation : no one reads them, and they anger the user deeply. Conversely, using no popups leads to the Mac OS X situation : the lack of automatic updates leads to a weakening of security, and Wi-Fi connection drops without the user knowing, leading to loss of data in webmails and forums.
Sadly, there is no general rule about popups : some users want to remain informed about anything in their system, and some don’t want to know a single thing. This leads to the next item.
- Know what kind of user you’re facing : Some questions have a user-dependent answer : should deleted items be temporarily moved into a trash or be deleted immediately ? Should automatic warnings about backups be in use ? Should access to a command line be easily available in file browsing windows ? To address these issues, there needs to be a general understanding of the user. The only efficient way I can think about of doing that is to ask him some questions about his preferences at first boot, with those questions being smart enough to remain in small number (the question game should not last longer than 15 minutes) while answering any design questions.
- Be honest and let people free : The user shouldn’t feel or actually become trapped in a cage and guided to believe any tricks the operating system makers want. If something very bad happens (like the CPU overheating or the HDD dying), he has to know about it before large amounts of damage occurs, if possible, even when it means ruining a reputation of never-dying hardware or something. On the administration side, user friendliness should not lead to low control on the computer. Power shouldn’t be hidden from the power user. If a window has to remain simple and clear while allowing to set a hundred tweaks if needed, tabbed windows and “advanced” buttons should be used. And the user should never be forced to do something (like rebooting his/her computer), unless absolute necessity occurs (like, in the former case, if anything has crashed due to hardware failure).
As one may have noticed, there’s nothing about the unreliability and lacking security of computers in this article. That’s because this is such an important issue that it is the subject of an entire article, the next one. That’s all for now, thank you for reading !