I realize the previous post did NOT have enough pretty pictures and easy bullet points - I will try to do better this time.
IndependenceLet 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".
ChoicesLast 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 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 FreeSo 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.
ConclusionI 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.