In 2006 I quit my job to work full-time in open source. It was fortunate timing, because the years since then have seen extraordinary growth. What was once a hobby or a sideline has now taken over the web. It’s almost certain that more than 20% of the web will run on either WordPress, Joomla or Drupal by the the end of 2011.

What is even more amazing to me is how fragile it often seems on some days. Having worked in and paid close attention to the people and structures running our three huge projects, I’m constantly amazed by how we survived and made it so big.

I’d been pondering how we made it so far and those thoughts accelerated after reading this post by Matt Asay back in May: “Wake up, Linux hippies“. I knew he was partly right, but missing the much larger picture. I knew I agreed with Glynn Moody, whose post Matt was replying too, but I couldn’t properly explain why.

  • I had similar thoughts watching the WordPress debate about WooThemes and the GPL. WooThemes were completely within their rights to fork another company’s GPL code, so why did so many people feel angry? They never would in the corporate world.
  • I had similar thoughts watching Acquia walking a tightrope: trying to grow and make money, but also make bring their community along with them and make them feel included.
  • I had similar thoughts when seeing community members criticize their own project and those of others.
  • I had similar thoughts watching tension in our communities and wondering what force was keeping them together and preventing forks.

This post is my beta attempt to put what I’ve seen in the last five years and to understand why we feel what we do about open source.

The 4 pillars

I believe that there are 4 elements that sustain our open source projects and businesses: Money, Openness, Morals and Software.

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_11.18.15_AM.png

Each open source project has to balance these four in order to be successful.

It is much, much easier to run a business than a genuine open source project. After all, a business really needs to worry about one of these: money. The others are optional extras and sometimes they provide a business advantage. They are not essential.

Let me briefly define those four pillars:

#1 Money

Yes, money is vital for every open source project. It’s not important for each and every person to be making money. Some community members may even be in the project for completely opposite reasons, but if there isn’t a thriving economy around the project, it becomes hard to innovate and get people to contribute enough of their time.

Robert Douglass from Acquia was talking on a panel at DrupalCon Chicago and an audience member stood up and asked (I’m going to paraphrase both of them here):

“How can I contribute much to Drupal if we’re a small shop? We’re not making much money and I have to spend all my time working with clients.”

Robert’s answer was:

“Make more money. Run a more successful business. Increase your margins and you’ll have more time to give back.”

He’s absolutely right. WordPress development is mainly funded by the success of Automattic’s business ventures. Acquia is making similar steps by hiring several core developers.

#2 Openness

Openness doesn’t just apply to the codebase but also to the community. It applies to openness in communications, in accepting patches, in valuing people’s contributions even if they’re not in the inner circle.

This can be a major problem for all projects and particularly for those with a company at the head. How do they avoid the project looking as if it’s run by and for the company that owns the name, the trademark and core positions in the project?

#3 Morals

I make no apologies for placing money as a key pillar of open source and I make none for placing morals here too.

Perhaps the best word for this is “Mensch” . Are those involved stand-up guys? Do they come across with integrity? If that sounds too highfalutin for you, think about it this way: “do community leaders and members generally act like dicks or not?”

It’s inevitable that there will be dicks in each community and business, but trouble comes with their voices become louder than the Mensches. A project is unlikely to keep its contributors long past that point.

I’ve no doubt that a particular morality has been adopted by many in open source. This includes collaboration rather than rivalry with competitors. It includes winning on the basis of better software rather than patents. It means giving back to the community that is giving you opportunities. To many it means a high level of customer service. Not everyone buys into these of course, but enough do to make it a very real influence. This video and accompanying blog post nicely sums up the moral reasons why many join open source communities:

#4 Software

An open source project has to make good software. That part is the most straightforward pillar of all but it’s worth noting though that it’s just one circle: open source as currently structured has become about much more than just the software.

Some practical examples

How does all of this help us understand open source? The sweet spot for each open source project is the right balance of all four.

The trouble is that it’s very easy to get two or even three of these circles right, but to miss on the rest. That is often a recipe for trouble.

Some companies don’t get anywhere near filling all four circles and so they have trouble getting traction in the open source world. For example, Microsoft is a great business, but certainly not a great open source business. Their chart might look like this:

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_3.png

Apple, on the other hand, might get two credit for money and good software, but still fall well short in some areas. For example, Steve Jobs was celebrated for being a dick rather than a mensch. Can you imagine an open source project leader being celebrated for yelling and cursing out those around him? Apple’s chart might look like this:

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_4.png

Some commercial open source projects such as Chrome, Android and Magento might get closer but still fall short, particularly when it comes to openness of more than just the code:

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_5.png

On the other hand, it’s all well and good to be moral, open and make good software but if your ecosystem is not making money there’s a good chance you’ll be stuck with a small project that lacks traction and mindshare:

tutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_6.png

The sweetspot for open source communities is right in the middle of those four circles. Success comes by nurturing all four elements and growing them together. This is the sweet spot and reaching it all the time is almost impossible. The most successful communities simply reach it more often than others:

tutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_7.png

So now that the basic explanation is in place, let me explain how it’s helped me think about our current situation and the questions I raised at the top:

Was Matt Asay or Glynn Moody right?

They both were, although Glynn was looking at the bigger picture.

Matt was right: there’s no doubt that there’s room for projects and companies that are selfish and not fully open. Glynn was right: the above graphs explain purely selfish projects get so much push back from the wider open source community. Selfishness in open source can be compared to vaccinating your children: it’s fine if one or two people do it, but it leads to disaster if everyone does it.

“Hippies” is one way to describe it, but it’s also possible to view these people as envisaging a better and more honorable way to do business than that practiced by huge multinational software companies. Is “you reap what you sow” really a worse motto than simply “you reap”?

Why were some many people upset at WooThemes?

Because they ended up in exactly the same spot as some of the projects above. What they did was profitable, produced good software and was open in some aspects, but it fell well short when it came to widely-accepted community morals. There’s no doubt that open source communities have added extra layers of responsibility and ethics on top of the GPL. No-one is obliged to follow them, but they should expect community blowback when they don’t. The WooThemes decision could be charted like this:

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_1.12.41_PM.png

[Update] A new post on the WooThemes debate came out a couple of hours after I published this. It perfectly sums up the attempts that have been made to put extra layers of obligation on top of the GPL.

Acquia growing

Acquia is in fundamentally different situation than a company like Automattic. Their revenue sources overlap much more closely with their community members.

They’re trying to quickly increase their revenues and hiring, while at the same time still showing that they have openness to community input, fully share its values and can still help produce good software.

That’s not an easy position to be in. At any one time, one or more of those circles are going to be out of proportion to the others and it will being criticism. They chose that route of course, so don’t feel too sorry for them, but it’s quite some balancing act that they need to maintain and certainly more difficult than running a traditional business.

Providing criticism

tutuploadstutuploadstutuploadstutuploadsmedia_1315246343828.png

Criticism is everywhere in open source. It attracts opinionated people. This is where the “Mensch” aspect really comes into play.  Critcism like “Why I hate Drupal” or “Why WordPress is better than Drupal” would probably fall under “being a dick” if given by someone trying to make their own work look better in comparison. If the intent is to provide constructive criticism, it can be truly honorable thing to do. A strong community needs people within it who can be a Mensch and provide this type of criticism. It’s not a good sign for a community when the reverse is true and criticism is unhelpful or focused on others.

Why are forks of large communities rare?

The larger the community grows, the larger these circles grow. Normally this is a good thing. A community like WordPress has the opportunity to make large quantities of money and software. It also has a huge platform on which influence the web with its openness and morals. A graph of WordPress might look like this:

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_2.png

A graph of “Billy Bob’s CMS” which launched last week would look more like this:

tutuploadstutuploadstutuploadstutuploadsScreen_shot_2011-09-05_at_11.18.15_AM_1.png

Size is a crucial advantage in pushing for the principles behind open source. This quote from Chris Pliakas on Drupal puts it well:

“Drupal has a chance of making an massive impact outside of the CMS space. A real example is the movement by the US government to be transparent about spending and other information. Obviously there is much, much work to be done, but the ideals of open source are creeping into the most unlikely of areas. In many cases we find these initiatives are powered by Drupal, and providing a platform that is completely open helps further these ideals in the places it is used. To me that alone is worth sticking it out and trying to work through these issues.”

Small projects simply don’t get the chance to bid for the WhiteHouse.gov and advance their principles into that type of arena. The opportunities that larger projects make available are a major reason that forks are rare.

[Update] As Amy mentions in the comments, it might well be that larger projects don’t have community forks, but they do have more friendly code forks as one codebase no longer meets the needs of huge audiences.

Overview

I’m sure there’s plenty for all of you to disagree with in here. I expect the idea that “open source” and “software” only make up half of what we think of “Open Source” today, might be particularly disagreeable to some.

Still, for me at least, this framework has helped me understand the tensions and challenges we face.

This analysis does make Open Source look fragile and challenging, and it might be that business pressures mean that open source is reduced to simply “money and open source code” in the future.

However, it’s also possible that these 4 pillars might also be providing a strong, wide foundation for the future.

I’d love your feedback below …

  • Amy Stephen

    [i]“If the intent is to provide constructive criticism, presentations like this can be lauded. If there the criticism is only there to make your own project look better in comparison, watch out for blowback.”[/i]

    In a nutshell, that’s the concern I have, Steve. Folks who are really close to the project seem to be forgetting that Joomla [b]is[/b] our project.

    People could have just as easily judged Walkah and said he was only trying to promote the Lullabot Buzzr project at the expense of the core project.

    All that type of thinking ends up doing is discouraging developers from innovating the code base because doing so will push you out of “the circle of Joomla” and encouraging people to only be #jpositiv and never dare to mention our areas to improve.

    Open mindedness leads to experimentation. Experimentation leads to innovation. The GPL enables the project leadership to pull these innovations back into core (when appropriate) for the betterment of the community.

    In the case of nooku, that is GPL’d code available free of charge to any developer who can use it to create Joomla extensions that run in 1.6 thru 1.7. It is available to the Joomla project, too.

    The reality is, the major projects have been forked many, many times, it’s just not openly discussed. We are just now learning how many times Drupal has been forked in the past several years as they work now to bring those innovations back together.

    We need to trust the Joomla community to be able to handle criticism and exploration and also the project to be able to pull these innovations back together, too.

    Thank you, Steve, for being someone who has always helped us work things out in our community.

  • Steve Burge

    For sure, Amy – all of these pillars are interacting constantly. It’s a fundamental belief in our communities that openness leads to innovation and better software.

    I didn’t want to mark the situation of any of Joomla or any our projects on that graph, but you can make your own minds up …

    Guaranteed: none of use hit that sweet-spot very often.

  • JoeJoomla

    Great post Steve. I too think open source will be very big in the years to come. I like the way you present these pillars. I can immediately see from my personal business point of view where I am weak. The weakness, if ignored, may kill what I am doing. Keeping these pillars in front wil be very helpful to navigate to a necessary balance.

    The argument that I hear from people in the corporate enterprise world is that they view open source people as being loosey goosey, lacking discipline, and unreliable. This doesn’t necessarily mean the open source projects are this way, but the businesses that use open source products often come across like this. On the other hand, the very people that accuse open source of being unprofessional admit that open source developers and products are able to change very quickly. The analogy is small speed boat vs Titanic monster of a vessel. So on the one hand, that hippie attitude means open source doesn’t get a lot of respect or a shot at the big projects, but on the other hand there is a reluctant admiration for the freedom and innovation that open source represents.

    Some open source projects get recognition in the business community. I’m sure there’s a struggle to keep the petri dish of open source projects innovation from being corrupted by the big business interests, yet without the monetary success how can anyone afford to stick with open source?

    Being big is important too, it gives you clout. When you fork you start smaller so unless you have the momentum to continue growing and get big, you run the risk of failure even if you have a great product.

  • Andrew Eddie

    Great post Steve!

  • Alex Stylianos

    Very nice article Steve. I like your point of view and here are a few notices and thoughts:

    - About Openness
    If by openness you mean keeping our minds open and communication channels even more open, then I am with you all the way.

    - Balance of your four pillars
    Putting the right people to hold those pillars is the key. Putting the wrong people means that they will misunderstand and eventually destroy the balance. A very vivid example in Joomla! lately is what most of us actually refer to as “bitching”. I see so many people saying, stop bitching. How can you help Joomla! when you bitch about it all the time. This is a great example on how people with constructive critisism are not heard by the “pillar keepers” and they are shouting, hoping they will be heard. The keepers are unable to understand them, mainly because they don’t even know how to code a simple script, and they call the shouting voices as bitching.

    I am personally so dissapointed that I am not “bitching” anymore because I am done actively supporting Joomla!. So here you have one less bitch, and also one less supporter. Lesson learned? Bitching may also mean caring.

    - Entropy
    This is a little nice word coming from physics. Entropy is a natural force that drives to chaos. The bigger a system becomes the larger the entropy level. Putting the wrong people to support the pillars drives to more and more complicated software that reaches a point that is no more maintenable.

    This means that the software has to be rebuilt from bottom up. Forks do that. But, integrating a fork means that several people in these large projects loose their ego and their glamour.

    - Defenders of the crown
    I have been watching people (God knows how much I want to say which, but lets be civil in this discussion) defending Joomla! as if it was theirs. They suffer from a schizophrenia that makes them believe that they invented the project, and although they don’t know programming, they order programmers to work harder. They preach the merits of community and sharing and all those wonderful things while at the same time they feel they are the managers and they demand harder – and free – work from programmers. In my country we have an expression for these kind of people: kinger of the king. (Most probably there is an equivalent english expression but, sorry, I wouldn’t know it.)

    Community projects would be so much better without this kind of people.

    - Why
    Steve, I think this is what is missing from your pillars to make it complete. You need skilful people to run these projects, and the really good ones will come only if there is a good reason.

    I have been following a few open source communities for a long time, but it is only lately I started knowing the people behind them. Steve you are a wonderful guy, there are very few more I like. I wish there were more people with an open mind such as yours.


    PS. You might want to change “I’m going to paraphrase both of them here”. Paraphrase means that you want to distort the meaning.

  • Beluga

    I closely examined the matter that sparked this blog post and looking at the feverish defensive maneuvers I could not help but think about Scientology. Rigid, cultish behavior just does not cut it in a fast-moving and dynamic field. I am glad at least some of the more forward-thinking ostracized cultists still continue to bring innovation and not go cult-shopping somewhere else.

    Btw. vaccination is a problematic analogy, as it is something that has disrupted the process of our natural immunization, tried and tested over millions of years. So it’s about inadvertently weakening ourselves in every front while phobically trying to avoid a perceived danger.

  • Steve Burge

    @Alex … thanks for such a detailed reply. Yes, all these projects really have is people. Few of them have even the basic systems that they’d expect to find in a business. It’s all built on people.

    It sounds as if you’re pretty sure that Joomla is lacking mensches. I don’t think this is something that can be limited to leaders … projects thrive or die based on whether people like you and me act like mensches or like dicks.

    That confidence in leadership is vital. I thought and thought about this and realized that trust in the people at the top was so critical it needed to be it’s own pillar.

  • Steve Burge

    @Beluga … “cult” is much better applied to Apple (as it often is). There are no secrets in open source as there are with Scientology and Apple. A better way describe is as an ecosystem: it’s a complex web which needs to maintain a delicate balance to survive.

    Does all of this prohibit innovation? Yes, to some extent and some other commenters here have said that too. Open Source projects have accumulated a lot of baggage.

    Who is really kicking the butts of all of us? Tumblr: http://www.google.com/trends?q=joomla%2C+drupal%2C+wordpress%2C+tumblr

    As a business with no openness, no software releases, no-one else relying on them as a platform, and no licenses and standards, they can definitely move faster, dynamic and innovative. Watch the Drupal community and their long, long discussions about the future of their software. You can bet the decision-making process inside Apple or Tumblr is much, much quicker and more decisive.

    Read a lot of tech blogs and writers and they’re already saying that the open era of the internet in ending and closed products like Apple and Tumblr are the future.

  • Beluga

    Secrecy, eh.. you managed to pick the one aspect aside from mass-suicides I was not thinking about when I wrote my comment! When I mentioned rigidity, I really meant it. With that comes the typical public defaming, blaming and shaming -strategy of dealing with people who present views not in line with the doctrine.

    I did not have in mind an equation of open projects = cults. I was talking about our very specific situation and not trying to generalize. We happen to be cursed with this leadership and froth-mouthed fanatics, but at least everything is open, so they can’t shut people out for real. I think it’s great that a fork hasn’t happened and instead there has been a push for innovation through compatible projects. Of course now Joomla forked itself with JPlatform and it kind of reminds me of Canonical trying to push Gnome, giving up and creating Unity and then suddenly Gnome wants to do the Shell thing. A framework already existed, but “not invented here” so JPlatform had to be created.

    Note: I only started using Joomla a half a year ago, so might not know all of the open secrets of the community politics.

  • Ken112

    Yeah it is an era of open source software.
    i am the developer of the program which helps to download youtube videos .
    i agree with you on the importance of all the parameters, you need to be a hard worker and have an open heart to work with open source software :)