I recently stumbled upon a statement mentioning that OpenBSD is living a developers culture meaning that they fix things for themselves ratherthan for an abstract user. I had to think about this for a while. I think this is not a really seldom approach in software projects but in fact quite common. I think one CAN handle things that way given that the software is really rather used inside a group of developers. This philosophy doesnt work though if the group of users and developers are not homogeneous. Like in the GNOME project. I would guess that only a few users are also developers.
I think what is good in that idea of developing for developers is that this is kind of a pure, direct action. Meaning people act that are concerned with a matter act in the way they want things to be solved. There seems to be only one problem: Not everybody can or will be a developer, this is due to division of labor. Also not everybody developer will cook his food, build his furniture, etc. etc. . So a “healthy” mix would include those who can not develop themselves, but agree to the general philosophy of a software project and help where they can (bug reports, design, whatever).
Distributions contain the seed to do just that. Apache is one great example for a software project which is made from webmasters for webmasters. There is a great power in this idea. Why? Because the coders would understand better what they need and therefore also those who have that same problem would benefit. Thats why I think specialised distros like for musicians make perfect sense. The good thing about it is that you can then forget about any artificial marketing, because this in itself is a perfect economic an ethical marketing tool.
Where it starts to get complicated is when people who are rather unrelated to some general ideas or the specific distribution are using the provided tools. Some developers expect that they in fact do have the same knowledge or are willing to code in the same extension that they do and they often only accept the position that people are on the way on doing so. This sure can activate some users who are able to to such things. And also I think the general view of the average user that software is there to do what SHE wants and that its just the “job” of the developers to fulfill the requests is plain wrong. My analysis is that these ideas of developers comes from a “poisoned” software market environment – The Microsofts, the Nvidias, the Apples, the AOLs and many seem to have successfully implanted these believes:
- A user does not need to care about software. The ideal is “It just works”
- Software is THE SOLUTION of your problems given or sold to you.
- From the software is expected that it has the user in its focus. A software which does not (yet) do what could be expected is not worth it.
In the open source movement you rather find those believes:
- If you really want things to happen, do them yourself
- The developers decide what goes in and what the general direction is chosen
- Often it is believed that a benevolent dictatorship is best for a software project (like with Python, OpenBSD, Linux kernel)
One can see that these are rather opposing views of how things should get done. The mediation often is done by companies who employ hackers to implement some things that their customers want. I know many developers live of these – but this really deforms the software environment. I would put the actions of Nokia as an example of a company which is able to pay developers to do what they want and also to gain influence in the direction of a software project like GNOME. What happens is the power is transmitted from the heads of developers to the heads of a company – in fact neither the users nor the developers can decide the directions then any more.
One could despair and ask: Who should decide? Whats the solution? I think the best situation for most people is if those who are involved in either the software coding or the usage of software are also those who decide on what is going to happen next. Developers could say they only code for their own likes – but this could also just mean that nobody would like to use their software besides themselves. But then again it often is in the very core interest of a developer to see his software used.