15 March, 2010

More on Being Free

About 6 weeks ago I wrote a blog about the state of decision making in the KDE community. I stated that generally speaking we are not heavily influenced by any single entity, something many of us cherish. Because of rising corporate interest in open source over the next years this situation might or might not change - it depends entirely on how we approach the challenges before us.

I realize the previous post did NOT have enough pretty pictures and easy bullet points - I will try to do better this time.


Let me start by trying to expand a bit on the decision making itself. What does it mean to be independent? Not that commercial parties have no say or influence at all - after all, they contribute in various ways. A problem emerges when for example volunteers feel they're being left out due to the large contributions of full-time corporate workers. This was once described by Till Adam (from KDAB) as the freight train effect. This is problematic for both the volunteers (who might walk away) and the company. Companies often work project-based and need the community to solidify and maintain their contributions.

So the question I see when it comes to independence is NOT: "How do we prevent companies from having any influence at all". The question is: "How do we preserve a balance between company and volunteer input to preserve the long-term health of the community".


Last blog I concluded we're facing a choice between:
  • not caring about our independence
  • restricting influence of other parties by not working with them, or only to a very limited extend
  • figuring out why we're still our own masters and making good use of that knowledge
The first. Yes, I actually added this one, as there is always the option to do nothing. What will happen if we just go on like we're doing right now? Considering the increasing interest of commercial parties in KDE technology, I guess we'd get more corporate contributors. Larger ones, too, which hire many people in the community to work on certain things. Our technology will spread more and more, and will appear on cool devices. Some companies might try and get their stuff upstream, others might not. But. Corporate influence can be at odds with community ideas (money can do that) which may very well lead to loss of passion for an development area or product some company took over. Things might go downhill from there. At some point, we *might* find us in a situation where our general direction is decided upon by an 'advising' or 'consulting' Board with companies like Nokia, Intel, Novell and other major corporations. We will probably be spending a lot of money on a CEO or a similar function, and choices are made top-down. Some developers will have no problem with this and continue hacking on cool things - it's all (L)GPL, after all. Others might dislike what has happened and will leave.

The second option will keep things in our community more as they are now (though we might even want to chase away some companies working with us as they're very influencial in some areas already). We will probably stay on the fringes, with a small marketshare - but we'll have fun. We can continue to invent and work on innovative technology but I reckon without help of big companies and working with them finances will get a bit tighter than they currently are (less coding sprints?) and we will fall behind in some 'corporate feature' areas volunteers don't like to work on.

And the third option - if we decide to go in that direction, we'd need to be consious of our values and freedom and protect them. We will need to know how it came to be that the KDE community, while one of the largest Free Software communities in the world, still makes decisions by itself and is not dominated by (and depending on!) a single entity or just a few. This will help us expand on our ecosystem of different organisations and volunteers working together. Currently, we get input from a variety of sources, be it independent volunteers, universities, companies or NGO's. Diversity is the keyword here - and we will get more of that. I will expand on this third option a bit further.

What's keeping us Free

So what contributes to an diverse and open development process? Below a list of things which I think have kept us 'sane'.

1. Strong focus on technology and cool things.

Most decisions are made on technical grounds or because users are asking for certain features. In companies, decisions on what is needed in the code are often made by non-developers - managers, committees, marketing people. I'm proud to say I don't have any say in development at all ;-) Generally speaking, companies working with us have had to adopt to this way of thinking, similar to how decision making works in the linux kernel development community: technical merits and arguments, not 'my manager said so'.

2. Flat organization, little hierarchy.

We don't have much if any hierarchy and the different teams are mostly independend. This ensures that no one individual, foundation, or corporation can dictate the future direction of KDE development as a whole. As a result the project can grow more organically, and innovate more easily as well.

3. having a diverse ecosystem.

Having 2 or 3 large companies hiring most developers contains a risk for the independent decision making process by the community. If a much larger variety of organisations (both for- and non-profit entities) contribute in a variety of ways, the opportunity for each to push a certain agenda is much smaller.

4. The role of KDE e.V. is strictly supportive.

Companies have no business controlling KDE e.V. - it wouldn't help them as e.V. is not involved with development decisions, only supports us all in doing whatever we want. If we all wanted to move into the beautiful world of bowling, e.V. would probably continue to support us. We might have to vote for a new president, however.

5. Regular developer meetings.

Our regular meetings don't just help development, they also create stronger bonds between developers. Not only among the volunteers but also with non-volunteer developers. This mitigates the effect of 'the freight train': corporate developers are often sitting in one room and thus have a tendency to start discussing things there and make decisions, instead of doing so with the wider community over the web.

6. Meetings are funded by KDE e.V.

Funding by KDE e.V. instead of specific sponsors per meeting allows more independence of corporate sponsors when it comes to goal setting and justifying the results.

7. Having had to deal with Qt licensing.

The Qt licensing issues early on in the KDE history have made the community consious of corporate influence and Freedom in general. We've set up a Free Qt Foundation dealing with this and receive and discuss regular reports about the status. And of course there's our legal dude in the e.V. (ade), who is rumored to sneek into your room at night and steal your underwear if you allow wrongly licensed code into your app.


I think the community, that is all of you reading this - developer or not, should stop for a second and think about what we want. Personally, I would love to bring our 'Be Free' to every device out there - but I would prefer to do it in a way where we don't loose ourselves. This community is big fun. It is open, it is free, everyone can be a part of it and make a difference. Decisions are made by us, talking and doing. And for that, we might have to put some safeguards in place.

I would love comments on the above, input on other factors I missed and practical tips. Next time I will try, with help and inut from others, to make a list of what we can/should do to remain Free.

The treat

Now a picture as reward for reading through (and thinking about!) all this stuff. This kitty stood behind our back door in our new house meeowing until we let it in. After checking out the room it decided it wanted to sit on my lap (while I was working, grrrr) and I can't say no to cuties so I let it. While finishing this blog it's purring beside me. Aaaw... Any suggestions for a proper name?