Technology for the rest of us

KDE, Linux, technology.

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.