29 January, 2010

On Being Free

As I promised on an obscure mailinglist where the evil plans for KDE World Domination are being developed (and consequently rejected), I'd like to solicit some opinions in this blog about Freedom.

I'm not talking about the free-as-in-beer nor the free-as-in-speech, but the relative independence the KDE community enjoys from the influence of one or a few large corporations. Most of you probably realize that it's a rare property for a community of our size - pretty much all other communities with over a 100 developers (KDE has about 2400 active developers!) are basically run by anything from one up to 3-4 large companies with little or no volunteer input. At a recent meeting Frank, Jeff and myself had with a major manufacturer of mobile chipsets it became abundantly clear that the independence the KDE community enjoys is seen as a big plus by companies who might want to work with us.

Of course, talking with volunteers you are not seldomly reminded how they prefer their freedom. While support from a big company is nice, for many the decision making power has to be with the community, even for those employed by companies. Some say it's because it results in better decisions, others argue it is simply more satisfying to be in control. Whatever the reasons, it matters to us.

Now the KDE community certainly DOES work with big companies, and not just a few. I am compiling a list of companies active in our ecosystem, and it is impressive. Of course some are more involved than others. Some work closely with a sub community, providing incentives for specific features, like XXXX does within the Amarok community. Others have so many developers working on a specific piece of technology they almost run the whole thing, like is the case with KDAB and KDE PIM. Of course, especially in the latter case, the question might come up: to what extend is this community still independent? The answer might be a difficult one, however just asking around gives you a decent idea. The companies around KDE PIM (yes, not just one) put serious thought and effort in keeping the community in control, working with and not behind or over them, supporting and attending meetings and sponsoring several developers.

So despite the corporate input we receive, we still are largely independent and in control, and we'd like to keep it that way. Basically, that gives us two ways forward:
- don't work with commercial parties anymore than we already do, and maybe even tone it down here and there. Effecively keeping our community as it is - volunteer based. Of course organical growth is possible, esp considering that we grow by about 300 (mostly volunteer) developers per year...
- figure out what exactly it is which keeps us independent and keep an eye on those factors while proceeding to work with (more) commercial parties.

In my opinion, the community needs to think and decide how comfortable and happy they are with working with (more) companies in the first place. It might surprise you but there are people with vastly different ideas about this than you might have. We need to get those opinions on the table, and decide, as a community (or as sub communities!) where to go from here.

To help with that, I'd like to make the second option a real posibility: proceeding with increasing corporate collaboration to grow and improve our products while staying independent in terms of decision making. For that we need to figure out 'what keeps us sane', about which I'll be writing my next blog. For now, any input, ideas and discussion are welcome!


  1. "2400 active developers"

    i believe that number is for contributors, not developers. there are "only" 300-400 active developers at any given time.

  2. 2400 something is the number of active svn accounts I believe... To an average KDE SC release about 600-700 ppl contribute. The others hack outside of the 'official' modules.

    this is based on the numbers jeff gathered, and some site measuring numbers, can't find it now.

  3. I think there are two ways we can maintain independence as a community. One is to simply not take funding from companies (probably not the best for our overall productivity). The other is to always maintain a diverse allocation of corporate assistance (I like this option better).

    If we get into a situation where say 2-3 companies have hired the majority of the active developers in the community we are essentially at the will of those companies. And should they decide to work together they could even unify as a singular voice of command that dominates the direction of the project. On the flip side, if there were some major disagreement between them they could also put the project into shambles.

    However if we can maintain a vast number of interested corporate sponsors then it would be much harder for any one company or co-op to dominate the landscape of the community. I believe this would continue to keep things in more of a community driven system like we have now since there is no real ownership by any one place. Any attempt by a single company to force their agenda on the project would likely fail unless it was supported by the larger community. At the same time, the funding drawn from this model would greatly increase the amount of work we can get done versus only having people work on KDE in their spare time. At the moment this seems to kind of be the model that exists in our community anyways. As you mention in your post we have a number of great companies partnering with us right now. So hopefully we can just push it forward and continue to grow in this manner.

  4. +1 for neomantra

    This would be 'divide et impera' in FOSS world. Example: we have companies A, B, C and projects X, Y, Z. Let each company work on one of projects without interfering with other parts of KDE.

    Of course it really works if there are enough interested parties to sponsor development. It is hard to say "thank you, but no" if no one else is going to fill particular niche.


Say something smart and be polite please!