Technology for the rest of us

KDE, Linux, technology.

Monday, January 30, 2006

Time for some tech-support

A simple question: How do I drag and drop text in Kontact and Konqueror? I can drag and drop text from Kate, Kword, oo.org and host of other apps, but I can't drag and drop text from Kontact or Konqueror. Yes, I know how to copy text (middle mouse-button, ctrl+c, you name it), but dragging and dropping doesn't work.

the reason I'm asking is that I'm using Basket (basket.kde.org), and I would love to be able to drag and drop text in to it. I could use the middle mouse-button, but dragging and dropping seems so much more intuitive. And for some reason it doesn't work in Kontact or Konqueror. Any reason why?

Monday, January 09, 2006

The Grand-plan for KDE4...

...Or should I say "What KDE4 would look like if I were the one calling all the shots" (I'm not, I'm just an enthusiastic user).

I have stated bits and pieces of my "ideal KDE4" here and there, but I have no focused message what I would like to see in KDE4. This post is an attempt to fix that. Let's begin.

Applications vs. Content

We don't use applications for the sake of using applications. We have a clear purpose why we use them. We use Kate to write/edit text. We use Amarok to listen to music. We use Konqueror to manage files and to surf the web. And so forth. Yet, for some reason, just about ALL GUI's out there focus on the applications, and not on the content you use with those apps. And it's the content that we REALLY use, not the applications. Applications are just tools we use for those tasks. Yet, GUI's are about those tools, and not about the end-result.

How would I like to see this "content-centric" approach be reflected in KDE4? Here's some things:

- Replace the Kmenu (application-menu) with Content-menu. Instead of listing applications, Content-menu (C-menu for short) would list content. Kmenu categorises applications in to categories (Internet, Multimedia and so forth). C-menu would do that as well. There could be categories like "Music", "Video", "Documents", "Email", "Bookmarks" and so forth. All the users content would be categorised there, with a help of metadata. Music could be categorised by artist and by album, video could be categories by tv-show and by season and episode. And so forth. So, instead of expecting the user to first select an app to use, and then use that app to select the content he wants, the user would simply select the content, and the correct app would be loaded. The number of required steps would be dropped from 2 to 1.

- Implement something like my Desktop is The Application-plasmoid. Basically, instead of expecting the user to load Kontact in order to write email, he could simply type the address of the recipient right on the desktop, and he could type and send the message without leaving the desktop at all. Instead of firing up Konqueror to surf the web, the user could simply type an URL, and the contents of that URL would be displayed right on the desktop. There are many everyday things that could be carried out in this way. However, the full-blown apps would still be there.

- Besides filemanager, offer a content-manager as well. Note :Filemanager and content-manager could be a same application.

- Make the content the focal point of the application. Instead of wasting lots of space for toolbars, menubars, frames and the like, focus on the content. Take a look at the Konqueror-mockups here (EDIT: kde-artists is in a transitional-phase right now, so that link doesn't work). As you see, the windows titlebar has been merged with the menubar. That means that a bit of screen-space has been saved, with no real drawbacks when it comes to functionality. Yes, resolutions are going up. But that's not a valid excuse to waste space on the screen.

Busyness vs. Serenity

I want the GUI to be serene right from the start. What do I mean by this?

- No blinking and flashing icons. Why do we have blinking icons in the splash-screen? Why not make the process of starting KDE a nice and smooth process, with fade-ins and fade-outs, and with NO flashing icons.

- No popups. Things that pop up are bad karma, mmmkay? And that includes stuff like dialog-boxes. Instead of dialog-boxes, we should try to figure out ways to present that information in a different manner. what about having an area in the desktop that has a purpose of displaying such information to the user, instead of presenting the user with a disruptive window that pops up? Such popups make me think that the computer is shouting at me "hey! I'm the computer and I demand your attention NOW! That thing you were doing 5 seconds ago? Stop it, because I need your attention over here!".

- Why do we have all those frames and borders in the GUI right now? Take a look at the content
-area in Konqueror for example. Why has it been framed? It's just another distracting UI-element that simply doesn't serve any kind of purpose. When designing the UI and the individual UI-elements, the developers should ask themselves "what purpose does this serve? Why do we need this here?". If the developer can't come up with a decent answer, the element in question should be dropped, period. Less is more.

Make the core rock-solid

The title is a bit misleading, but still. Instead of having dozens of average apps, have only a handful of apps, and make sure that those apps are the best-of-breed. Kind of apps that people WANT to use them, that users would choose them over any alternative. Instead of shipping tons of stuff that may or may not work properly, focus on handful of core apps and make sure that they absolutely, positively kick ass. What apps would I include in "core-KDE"?

- File/Content-manager. This obviously means Konqueror (or it's successor)
- Web-browser. Again: Konqueror.
- PIM. Currently this is handled by Kmail/Kontact
- Text-editor. Currently this is handled by Kate. Note: I said "Text-editor", not "Text-editor[b]s[/b]"
- Video-playback. An app meant to play back video. Codeine is a good candidate
- Music-playback. Juk or Amarok would serve us well.
- CD/DVD-burning. K3B currently. Although I would like to see 100% transparent CD-burning inside Konqueror
- Terminal. Yes, even with our fancy GUI's, we still need a terminal. Currently this is handled by Konsole, but I have fallen in love with Yakuake recently.
- Viewer-application. Okular, for example.
- IM. Currently, Kopete handles this

That's ten apps (more, if you count Kontact as separate apps). And IMO, that's enough (I'm not including stuff like config-tools, klipper or system guard here). Those apps lets ordinary users get their jobs done, while not overloading the system. Do we need more? Really?

But what about all the other stuff? KStars? Kdevelop? Quanta? Games? Edutainment? They would still be available. They could have independent release-schedules (like Koffice does today), but they wouldn't ship with default KDE. This would enable KDE to have the same collection of great apps, while keeping the core-KDE lean 'n mean, and above all, manageable. And the users would be absolutely certain that when they get new KDE on their machine, they would get absolutely best-of-breed apps with it. It would make KDE-releases easier since there would be less apps to keep an eye on. And it would improve the impression on KDE when 100% of the stuff that ships with KDE are quaranteed to be absolutely kick-ass. Note: this is not meant as a hint that some of the "non-Core" stuff sucks. Rather, it's easier to make sure that dozen or so apps kick ass than to make sure that three dozen apps kick ass. I think that this change would mean that the quality of the "core-KDE" would go up. And the "non-Core"-apps would benefit when they wouldn't have to be tied to KDE's release-schedules.

I can't help but feel that there are quite a few of obscure (or not so obscure) apps inside KDE that receive very little attention, and they just move from one version to other, with little or no improvements made to them.

Yes yes, I know the counterargument: "The user could simply choose to install handful of apps instead of lots of apps". Well, that means two things basically:

- That the user knows what each app does and he has enough information to choose between them

- That the user has to spend time and energy pruning away the apps he doesn't need.

There's another counter-argument as well: "The distributor could choose the apps for him". Why place that burden on the distributor?

Please, make it not suck

There are many things in KDE that suck currently. I love KDE and use it every day, but I'm not afraid to admit that fact. Yes, we all want KDE4 to kick ass and take names, but before that, let's make sure that it doesn't suck. What am I talking about? Simple: Make sure the little things work. By this I mean stuff like window-sizes, visual glitches and the like.

Window-sizes mean cases where the default size of the window is too small to display the default content of the window in question. If the window simply displays so much information that it can't be displayed without scrolling around, developers should REALLY think about adjusting the UI!

Other example of this are those cases where the window doesn't really display that much information, but for some reason the default size of the window is too small to show that information. One example of this is the dialog-box you get when you compress some files in Konqueror. You get a window that SHOULD say "Compressing" in the titlebar, but for some reason the window was made so small that it only says "Compr....". There is no real reason to make the window so small, so I guess it was simply a design-oversight. But, these kinds of things should not happen.

What about those "visual glitches"? Example: Last weekend I discovered the joys of transparent Kicker. I set up my Kicker the way I wanted it to be. But I noticed that as I highlighted the quick-launch buttons I had in the Kicker with the cursor, they occasionally flashed the original (non-transparent) background behind the icons. Things like that should not happen. If they do happen, the feature in question should not be implemented. Handful of features that are rock-solid is better than assload of features that work so-so.

Related to transparent Kicker: The text in the taskbar is black by default. How do I change the color to be something a bit more readable (on my machine, black text on transparent Kicker is a bit hard to read)? I did find the place to change the color of the fonts, but I was afraid that that would change the color of the fonts everywhere, and I only wanted to change the color on the taskbar.

Another example: KDE finally got a cool-looking rubberband. Instead of simply painting the outlines of the rubberband, it's actually a transparent box (I don't know how to explain it, so here is an example from GNOME). But, for some reason, on my machine that cool-looking rubberband is slow as molasses! It stutters and it crawls. Using it is not enjoyable. Now, I don't know that is that an issue with my machine, issue with Kubuntu on issue with KDE. But if it's an issue with KDE, then think that such feature should not have been implemented untill it works properly. If it's a Kubuntu-issue, then it's (almost) equally as sad, since Kubuntu is supposed to be a "polished" distro.

These are all small things that should be working out of the box. But for some reason, they are not. It's very easy to have some big plans, and then forget to make sure that the little things work properly. But it's those little things that the users bumb in to all the time. And usually those little things are pretty yeasy to fix. How long does it take to change the default size of a window in KDE? 10 seconds?

In short: polish, polish, polish and a bit more polish. And when you think you have polished enough, take another look at the desktop, and do so with a critical eye. Assume from the start that "this thing sucks". Try to justify the existence of certain UI-elements and gizmos. If you can't do it, drop it.

Monday, December 12, 2005

The Tyranny of The Developers

I was recently involved in a discussion on kde-devel mailinglist. Somehow the discussion turned in to discussion about place of the developers and others in designing the overall system. One specific quote is quite telling of the situation:

"Coders may be just one of the groups but, whether you, me or whoever else like it or not, they are the most important. Anybody can make suggestions, but only coders can make most of them reality. This, together with the fact that a project always has coders and the fact that coders may have to do even other things because the project may not have enough other groups, may be a reason for the second fiddle situation."

(said by Lubos Lunak, in my comment about other people (UI-experts, documenters, artists etc.) playing "second fiddle" when compared to coders).

Are the coders most important? True, they are the ones that write the actual code. But does that fact mean that they are most important? If anything, it merely means that they are the gatekeeppers. Everything that goes to the overall system must go through them. Usability-experts are rarely good at coding, so they have to rely on coders to implement the stuff. And if the coders disagree with the usability-experts, they could refuse to implement the suggestions. Only thing that the UI-people can make is to make "suggestions".

This situation is made worse by the fact that many times the developers think that they ARE usability-experts. 98% of the time, they are not. And even if they did know something about usability, their opinions would be colored by their background. So their ideal UI would be good for developers, but less ideal for other people. You can actually see this in KDE. Developers are power-users, and UI in KDE is targetted towards power-users.

Again: are the coders most important? Would Mac OS be as loved and successfull as it is if it just had good code, with zero usability? In the overall design of the system, usability is very important.

I think this one particular area is a weakness on Open Source. Apple, Microsoft and others can employ usability-experts that design the system as usable as possible. They also have paid coders that can be told "here, implement this", and they will do it. How does that work in open source? We have usability-people designing the UI. But their suggestions have to go through the developers, and if developers disagree with their suggestions, they will not be implemented. End-result will look something that the developer agrees with, and not like something that was designed by usability-experts.

In short: people who are not experts in that specific field are the ones making decisions about it. Open source is said to be a meritocracy. And it is that, as far as code is concerned. But designing a modern GUI takes a lot more than just code. And in case of usability, that meritocracy does not happen, since the people making the decisions are not the best people to make them. As we speak, we have coders making decision about code. And they are the best people doing it. But we also have coders making decisions about usability, with usability-experts making "suggestions". Does anyone see the problem here?

In an ideal world, we would have a GUI which was designed by the best artists and usability-experts around, with best possible code and architecture, created by the best coders possible. Sadly, that does not happen.

What about GNOME?

I can hear that question asked already. If open source is problematic when usability is concerned, how did GNOME achieve it? Well, it seems to me that they had lots of paid developers working on it. Developers from Red Hat, Eazel, Ximian and Sun were working on it. And those companies had usability-experts designing the system. So the usability-people had lots more power over the design of the system, as their colleagues in KDE had. KDE seems to be a lot more volunteer-driven effort, whereas GNOME seems to have corporate-backing. And while that volunteer-background is a great thing, there are benefits in the GNOME-way as well. One benefit is the more focused roadmap. Instead of havings dozens (hundreds?) of people and organisations pulling the project in different directions, you have relatively few organizations pulling the project to same direction. It does give the project more focus.

Meritocracy for non-coders

How should this be fixed? To be honest, I don't know. I don't want KDE to turn in to system designed by corporations. Even with it's shortcomings, being volunteer-project is a strenthg, value and an asset. Ideal solution would be that we had a meritocracy in other areas besides coding as well. But that would mean that the usability-guys could tell the developers to change some stuff in the system. And that goes against the way open source works, since in OS, developers work on things they want to work on. If they are told to do something that they disagree with, they might not do it. And they have that right.

One way to achieve true meritocracy would be a web of trust. The developers would have to learn to say "To me that does not make any sense. But you are the expert on this area, while I'm not, so I'll trust your judgement". The developers should trust that the other people really do have the best interest of the project in mind.

Thursday, November 17, 2005

Clarity and serenity on the desktop

The Appeal-project is a subproject inside KDE that aims to refine, redefine and beautify the desktop. Besides Plasma, it's the most interesting KDE-project at the moment, in my opinion.

(Note: I'm not related to either the Plasma-project or Appeal-project. Opinions and ideas presented here are purely my own personal opinions)

If I were the benevolent dictator of Appeal-project, how would I go about creating a "serene" desktop? What would it be like?

Shapes

Keep the shapes of objects, windows and icons smooth. By this I mean no sharp corners (if possible). For example, windows with rounded corners look nicer and "friendlier" than windows with sharp corners.

When I look at app-windows on this XP-machine I'm typing this on, the windows look harsh with their sharp corners. They look... old.

EDIT: I feel like I need to clarify this point. Of course it's OK to have sharp-corners in icons, if the icons represent objects that have them (arrows for example). But if there's a choice between having a smooth icons and harsh and pointy icon, I would prefer the smooth one.

Related to the shape of the icons: KDE should take a hint from Apple GUI-guidelines (even though Apple itself doesn't always follow them....). That is, the icons should have clearly distinguished shapes that make them easy to tell apart. For example, I Konqueror there could be arrows for back and forward, round button for reload and square button for stop. Each of those would be recognizable from their shapes alone.

Colors

Keep the colors toned down. Bright colors demand attention from the user and they are distracting. It is OK to use colors, but they should not be bright. Use bright colors only when they are genuinely needed. If the system requires urgent attention from the user or it's conveying an important piece of information, then it's OK to use bright colors. But if we use bright colors everywhere, it becomes very distracting because it makes it seem like every object on the screen is demanding attention.

Use colors that fit well to the surrounding area. For example, compare Finder and Konqueror. Notice the lines around the content-area. In Konqueror they are very harsh and apparent, whereas in Finder they blend in with the background. the line is still there, but it's a lot less obvious. As a result, Finder looks a lot smoother (well, there are other factors in there besides that, but still).

Pop-ups, flashing and the like

We all hate flashing banner-ads. I don't know anyone who likes them. They are annoying, distracting and a general pain in the ass. Banner-ads as such might be OK, but if they flash, they became a nuisanse. So why would we want to have flashing things on our desktop? Instead of having flashing things, have something smoother and nicer. Fade-in/fade-out would be a lot nicer than simple flashing.

Related to this: instead of having windows, dialog-boxes and the like simply appear and disappear from the screen, have them fade in and out. It makes the whole process seem gentler. Other option besides fading would be sliding (like sheets in OS X do).

Separators and other UI-elements

Keep a keen eye on all that generic stuff that can clutter the UI quickly! As an example, look at these two screenshots of a proposed KDE-GUI:

shot 1
shot 2

The two look very similar. But the second shot has no framing around the content-area in Konqueror (I touched on this subject in my Konqueror/Finder-comparison). End-result looks smoother and nicer. And this begs the question: why do we have those frames in the first place? To tell the user "this area here shows your stuff!"? I think they get the idea without the frames as well ;).

Same thing can be seen in toolbar-separators and the like. Even the text-boxes (like location-bar in Konqueror) have those unneeded frames and lines. Why? They make the UI look cluttered and "un-smooth". I have tried photoshopping few Konqueror-screenshots and removed many unneeded lines. With few minor changes, the whole UI looked a lot smoother and nicer, yet usability was not harmed one bit.In fact, I think that good-looking UI's are inherintly more usable, everything else being equal.

What is beauty?

We want KDE to be beautiful. But what is "beauty"? To some, it means fancy 3D-effect, cool gizmos ("whoa, the video is thumbnailed when minimized, and it keeps on playing while being minimized!") and general bling-bling. And while those things might be good, there's more to beauty than that. I think the important beauty is the kind which makes the system joy to use. the user looks forward to the time when he can use the system again. The system just feels right, and it's easy on the users eyes. The interface can be beautiful, without resorting to "bling-bling".

The difference between those two is that the first one is very apparent and easy to show off, whereas the latter is less obvious and harder to show off. But in the long run, the latter is the better approach. Of course, the perfect system would offer all the benefits of the latter, while offering the benefits of the former as well.

"Bling-bling" can be useful as well. For example, in the recent discussion on kde-artists.org about the Strip, I suggested that instead of minimizing or shading the apps, we could push them to the background. The app-window would get smaller and transparent when pushed back, but it would still be visible. And when the user moved around the strip, the windows that were pushed back would seem to move slower than the maximised windows that are closer to the user. It's the same effect when you sit on a train and the landscape close to you zooms past very fast, whereas the mountains far in the background move a lot slower. In this case the effect would look very cool indeed, yet it would be familiar to everyone since they see it in real-life every day. And it gives the workspace the feeling of depth. And it would be useful, just like shading of apps is useful even today. It would have both the bling-bling, and it would serve a genuine purpose

I bet many of us would spend long periods of time just moving around the strip, just to see those windows fly by :).

I know I would.

Wednesday, November 16, 2005

The Vision for KDE4

KDE4 is an ambitious project. It's propably the most ambitious thing KDE-team has ever embarked upon. There is a vision in the minds of the developers. It's still somewhat vague, and it's far in the horizon, but it's there. And now is the right time to discuss what that vision could be in reality. When the system is being built, it's too late to discuss how it should be done.

The Desktop for The Future

Like Aaron Seigo said: KDE4 should be the foundation upon which the future of KDE will be built. KDE4 needs to be more than "same stuff, only prettier". While move from KDE1 to KDE2 and from KDE2 to KDE3 were quite big, the idea of the desktop stayed the same. And it has been the same ever since the idea of "the desktop" was born, first at PARC, and later made popular by Apple. Since then, the desktop has been practically unchanged.

Some might say that the desktop does not need to change. But it does. The world of computing has moved at a trendemous pace, yet the interface through which we use the system has remained relatively static. We still use separate application to carry out our work, we are still confined to relatively small area on the screen.

Content is the key

Fact is that people don't want to use applications. People don't launch Konqueror and say "Yes, I can use Konqueror again!". What they might say is "Yes, I can read Slashdot again!". What people want to do is to work and use the content, they do not want to use the apps. Apps are merely the necessary evil in accessing the content.

I touched this idea on "The Desktop is The Application", and I stand by it. Of course, we can't eliminate apps altogether. But we should try to minimize their importance. There are lots of things the user could do, without having to actually use a full-blown application. In "The Desktop is The Application", I suggested a simple plasmoid that resides on users desktop that allows the user to do many simple thing quickly and intuitively. Instead of using an email-client to write and send a mail, the user could simply write the mail and send it, without having to use a specific app to do it. Instead of launching a text-editor to write text, the user could simply write the text, and be done with it.

Make it simple and easy for the user to access, create and use content. The content is the key. The applications are merely a necessary evil. Instead of saying things like "KDE has some kick-ass applications!", we should try to move towards "KDE allows you to do your stuff with minimium of fuzz!".

First Impressions

Currently KDE suffers from some simple yet annoying problems. And the sad thing is that these problems would be very easy to fix. Yet, they are still there, in KDE3.4.2. KDE doesn't deliver a good first impression to the user.

I'm talking about simple things like sizes of windows for example. I remember when I compressed some files in Konqueror. KDE popped a dialog-box on the screen which said on the titlebar "Compressing". Well, that is what it was SUPPOSED to say. Instead it said "Compre...". Why is that? It was because the default size of the window was too smaal to display the titlebar. And I had NOT changed the default-settings that's the way it was out of the box. Of course I could fix it by adjusting the size of the window, but the point is that the user should not be expected to fix trivial things like that! It gives a very bad first impression. Things should be optimal right from the start.

The same problem can be seen in configuration-options as well. Quite often the option-window displays so much information that the default size of the window is too small to show all the information. And that means that the user either has to increase the size of the window, or scroll around with scrollbars. Unacceptable.

Progress-dialogs in KDE are propably the worst offender on this area. Just about every time I download something, the progress-window is insanely wide, and I have to scroll around it to see all the information it displays. My screen has a resolution of 1280x1024, so this is not a question of low resolution. It's simply a question of design-oversights that simply should not be there.

If little things like these are problems, the user will get a very bad first impression of the system. And since these are little things, yet easy to fix, but still unfixed, many things will start to wonder that if these kinds of things are not fixed, what problems are hidden in the "big things"?

KDE should aim for perfection. And while true perfection is practically impossible to reach, it should still be the goal which KDE tries to reach. And perfection is composed of lots and lots of "little things".

Peace on The Desktop

This is closely related to first impressions: KDE should look welcoming and peaceful. Bright colors and "Look at me! Look at me!" UI is distracting. the just previewed Oxygen icon-theme for KDE4 is a big step in right direction. It doesn't look boring (like icons in GNOME do), yet it looks understated.

And related to this, is the clutter (again). The more clutter there is, the more confused the user will be. And that is the wrong first impression we want to give to people. If the first thing user has to do is to clean up the UI, we are definitely heading in the wrong direction. In short: the UI should look serene, with minimium amount of distracting UI-elements. Make it easy on the eyes.

KDE should highlight the things that are important. Currently KDE highlights everything, and the end-result is a mess. By having less stuff visible, the stuff that is visible gets more attention. So remove all the fluff, and only show handful of things by default. And those things that are visible should be the things that really matter.

KDE should aim for the serenity of the mind and serenity of the user interface. And this should start right from the login-manager and splash-screen. What happens when user logs in to KDE? Well, we get the splash-screen with flashing icons and text explaining what's happening. Only thing missing is the klaxon wailing in the background. Instead of all that, why not simply fade to black when the user logs in. Instead of flashing icons, we would simply have black screen with white text in the middle saying "Starting up KDE...". The "..." could appear one by one to tell the user that the system is working. After the desktop has been loaded, the "splash-screen" would fade in to the users desktop, which is ready to be used.

This sort of behavior would reinforce the feeling that the login-manager is a portal to the system. As the login-manager fades out, and the desktop eventually fades in to view, it reinforces the feeling of moving from one system to the other. And it does that while being very un-obtrusive and peaceful. And maybe we can shave few fractions of a second from the startup, when we don't have to load a complex splash-screen ;)?

Rethinking the desktop

Like I said, the desktop has been unchanged for over two decades now. Instead of re-implementing the desktop in identical way it has been done before, we should really ask ourselves "how could this be done better?". What follows is collection of ideas I have seen (and I have been involved in most of them in one way or the other, mostly by providing feedback). Note: I'm not suggesting that KDE4 should be done like this. Rather, I offer these as a food for thought.

Recently on KDE-artists.org, I have been involved in a discussion about an interesting proposal for the desktop. Instead of having a desktop, what about having a strip? Instead of being confied to single desktop of certain size, what if the desktop scrolled left and right? On the bottom of the screen would be a navigation-strip, helping the user to navigate the strip.

Do we really need the titlebar in windows? Seriously? That said, do we really need the current menu's in menubar? And what about REALLY using the screen-corners?

There are lots of ideas floating around. And they deserve a good discussion. And besides having ideas like these, there should be work done in combining them in to a one coherent whole.

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-users
b) 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.

Tuesday, November 08, 2005

Marketing for KDE

I just noticed on dot.kde.org that KDE has formed a marketing effort.. Finally! For more times I can coun I have ran in to a situation where some user says "It would be cool if KDE had feature xxxxxx", only to be told by someone else, that KDE has had that feature for a long time. And several times I have seen GNOME-guys market some feature their desktop has, as greatest thing since sliced bread.... While KDE has had that feature for long time. Or I have seen them parade about implementing some piece of technology. While KDE-guys quietly implement the same stuff with minimium of fuzz.

You could say that the KDE-folks are focusing on important stuff: making their desktop better, instead of spending their time writing press-releases. But that work might be more or less wasted if others get the credit, or if the users don't know the feature exists. This problem might be related to the problem KDE has: It has so much options, features and clutter that the great features are buried beneath that layer of cruft. KDE is a powerful system that can do a lot for the user. But the user never realizes that, because all that greatness is buried beneath trivial clutter. In a way, KDE is not ruled by a powerful set of core-features, it's ruled by trivialness.

I like to talk about KDE's clutter. Mainly because it's an easy subject to talk about. It's everwhere. And it doesn't need to be that way. That clutter makes KDE look awkward, unsexy and... well, cluttered. It leaves bad first impression on the users mind. And first impressions are important. I can't stress this enough: first impressions are very, very important. They are important in meeting new people, and they are important in choosing your desktop. If the user has to choose between smooth, streamlined and uncluttered desktop (GNOME) and cluttered, confusing and chaotic desktop (KDE), he will propably choose the first one. This isn't just a question of usability and aesthetics: this is a question of marketing as well.

I also like to talk about the clutter because

a) it's relatively easy to fix
b) fixing it would remove the nr. 1 complaint people have about KDE.