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.
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:
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.
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?
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:
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:
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:
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:
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:
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:
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:
[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 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.
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:
A graph of “Billy Bob’s CMS” which launched last week would look more like this:
“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.
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 …