Tuesday, November 08, 2005

KDE and it's future: It's the usability, stupid!

incrementalism is not what we need in KDE4. we need to embark on a course that will support our next decade of success and we are no longer competing with windows 2000.

Amen! We (well, I'm not a KDE-developer, just an user) need to make sure that KDE4 will be truly great. No, not great: groundbreaking. We must not feel shackled by our past, rather we should explore new areas in interface design. We should not make things a little bit better, we should make it A LOT better.

The desktop-metaphor we have today was introduced close to 22 years ago (even longer than that, really). And during that time, there has been no major changes. Sure, things look better and we have more eye-candy. But deep down, the desktop has not changed.

No, I'm not saying that we should change things for the sake of changing them. But we need to rethink many things in KDE.

People who have read my ramblings in dot.kde.org, kde-devel-mailinglist or kde-artists.org, propably have a vague idea what I'm about: usability. Before you start to roll your eyes, ask yourself: what is usability about? It's about making the system easy to use. And that is a worthwhile target, don't you agree?

Many of you are thinking of GNOME and their drive towards usability. They took the route of "less is more", and removed fetures and options.And you know what? For the most part, they succeeded. No, we should not do a 1:1 imitation of GNOME, but we CAN and SHOULD learn from them.

The road to Usability

The worst thing software can do to the user is to confuse him. Unfortunately, KDE delivers confusion in spades. What do I mean by this? I mean that KDE and it's apps offer all the options and functionality to the user right from the start. And that makes it look too confusing. Toolbars are full of buttons, menubars are full of entries, settings are full of.... settings. Users will not know where to start. By offering them so much choice, KDE in fact removes the choice from them. Users are capable of choosing between handful of options. They are not capable of choosing between dozens of options.

The app should have a defined purpose, and a UI that matches that purpose. When you have defined the purpose of the app, define the core set of funcntionality needed to carry out it's purpose. Remove all the extra fuzz, focus on the essential. This way the purpose of the app becomes apparent to the user, and it becomes harder for the user to make an error, since the app guides the user towards correct solution.

If the app offers dozens of features and options to the user, the user can (and often does) gets lost in the maze of functionality. When there's more things for the user to choose from, the possibility of error grows. In a way, the app has more points of failure.

This would mean that we remove the more advanced features and options from the default-view. But, basic users don't need them anyway. And those advanced-users who do need them, are advanced enough to get to them. But if we offer those features and options by default, we will confuse the basic users who have no idea how to navigate the maze of features.

In short: basic users will get confused by the multitude of functionality. Advanced user are advanced enough to add the missing functionality if they miss it.

The best UI is no UI at all

What if we could make carrying out tasks so easy and intuitive that we didn't really need an UI to do them? And I say that we CAN make it so easy. UI is another point of failure. And before you start worrying about losing the beloved UI, remember: we don't use computers to marvel at the UI. We use computers to carry out certain tasks.

A while back I made a suggestion entitled "The Desktop is The Application" in kde-devel mailinglist. While it sparked some discussion, nothing tangible came from it. I still support that idea, and I think it could help us re-think the way we use our apps.

What is "The Desktop is The Application" you ask? Well, I will post my proposal in a separate blog-entry. It's somewhat long piece of text, so it's better not to clutter this blog with it.

"From my cold, dead hands!"

What worries me is complacency. KDE-devels have talked about overhauling KDE for 4.0-release. And that is a good thing. But I have already seen indications of people (read: other developers) complaining that things should not be changed too much, that only incremental updates are needed. That "things work the way they are, why change them?". For starters, because things DON'T work the way they are. KDE is in need of a serious overhaul. And, IMO the scope and magnitude of that change should rival the change from KDE 1.x to KDE 2.0, if not surpass it.

Someone has to be the first to do new things. Why couldn't that "someone" be KDE? Time of conservatism is over!.