Friday, November 11, 2005

On the mindset of design

Introduction

People talk of systems, user interfaces and the overall design of things. But beneath all that is the mindset of the design. The details of the design (toolbars, icons etc. etc.) all reflect the mindset of the design. Yet, no-one talks of the mindset, instead people spend lots of time discussing the details. Details are important, and they deserve good discussion. But first, the designers need to answer few simple questions: "What do we want to achieve with this? How do we want to achieve it?"

The Mindsets

When you look at modern user-interfaces, you can see some prevalent mindsets among them. If we want to look at diametrically opposed mindset, I would say that we can find the two extremes at Mac OS X and Gnome with one end, and KDE on the other. I call these two opposites "Mindset of Usability" and "Mindset of Power".

Mindset of Usability

As the name implies, this is all about usability. And it often means simplifying the UI, reducing options, and streamlining feature. But before we brush this off as "not suitable for power-users", we should keep few things in mind:

a) Most users are not power-usersb) Less is more.

The point a) is quite straighforward. Most people do not live and breathe computers. To them, computers are a tool to get job done as easily and effectively as possible. For these people, overloaded UI's and features that get in their way are a hindrance that slow their work down.

The point b) is related to what I just said: by having less UI-elements, options and features, the UI-elements, options and features that ARE there are more apparent and easier to access, making their use easier and simpler. Even complex tasks are easier to do, if the needed features are not buried under a layer of trinkets.

Sometimes, this approach might mean removing features that some users use and love. But it doesn't HAVE to mean that. For starters, things could be implemented in a different way, or the features could be moved to a separate app. It's a question of implementation.

Mindset of Power

This is what KDE is all about. KDE is a powerful system. Very powerful. It propably has more capabilities than GNOME and OS X combined. If there is a system that is closest of making your breakfast and washing your car, KDE would be it.

KDE has lots of features, and it's not afraid to show them. And that's why it's so cluttered. It can be seen everywhere. Menubars and menus are overcrowded. Toolbars are overcrowded. Configuration-options are overcrowded. Kmenu is overcrowded. The functionality is there, but since ALL the functionality is diplayed all the time, it gets very confusing, very fast. It's like the designers weren't able to decide which features should be highlighted, and which should not be highlighted. So they highlight them all, which means that none of them is really highlighted.

KDE has so many features, options and apps that finding the one specific thing the user needs becomes a chore. Take text-editors for exmaple. KDE ships with three editors. Yes, there are "reasons" for having three editors. But users don't care. When they want to edit/write text, why are they required to choose between three editors? They don't want to do that, they just want to write text.

Instead of presenting the user with choices and options, present them with solutions. Right now, it's up to the user co create the solution for his problem. And KDE faciliates that by presenting him with all the options and features he could ever need to create the solution. Intead of doing that, remove the burden from the users shoulders, and present him with a solution. Instead of "You want to edit text? You can do that with this. Or this. Or this. And there are several ways for you to use these tools!", have something like "You want to edit text? Here is the tool to do it, and here's how you do it" instead. Laserlike focus to the solution, with no need for the user to wonder which choice he should make. Because, in the end, user does not want to make choices, he just wants to use something that works.

Changing the mindset

Change is good, but it can be painful. There are lots of users who like KDE because of all the power it presents to them. But if KDE optimizes for 5% of users, instead of 95% of users (that's the situation right now), KDE is destined to be a niche-player. The needs of the 95% outweights the needs of the 5%. Unfortunately, the developers are often in the 5%. They create the system, and they optimize it for their needs (consciously or not). And that means that the usability of the sytem goes down for the 95% of users, while the 5% are happy campers.

I know: "Those who code, decide!". But we should understand that designing a system like KDE is not solely a job for the coders. Are the developers more important than those who write documentation, create artwork, organise events, review usability etc. etc. KDE and other system like it are a result of team-work (at least they should be), why should the end-results be tailored around the wishes of the developers? Yes, the developers write the code. But KDE is a lot more than just a bunch of code. Yet, for a long time, the people who write that "bunch of code" were the ones calling the shots. And, in many ways, they still are. They are the gatekeepers, all the changes that the user will ever see, has to go through them, because they are the ones who turn those ideas in to code that form the system.

That might be a big change for many. But fact is that coders are not experts when it comes to usability. The usability-people don't start telling coders how to code, why should the coders tell the usability-folks how the UI should be designed? No, this thing should be a result of synergistic team-effort. In the past, KDE was solely about developers. They decided and create. Now-a-days things do seem better, but a lot needs to be done.