Github is not enough
One could be forgiven for wondering if Github is enough to “be open source”. Certainly there are a lot of organizations pushing code into Github and declaring “we too are open source!”. The thing is, infrastructure, even awesome infrastructure like at Github is just a piece of what it takes to “truly be open source”. This thought is worth explaining. I know there are many people working in open source who knew this long ago… clearly this post isn’t for you. And please do comment to share your wisdom as it is valuable for others to learn from.
One day while watching my daughter play an organized sport, I had a thought which helps explain. There’s a spectrum of formality and the need for coordination. At the bottom of the spectrum, my daughter can grab the soccer ball/football and head out into the yard. Her friends might notice, come over, and start participating with her. They can have fun. Success!
Further along the spectrum, in the school yard, she and her friends can do much the same thing. In the school yard there are more kids around so it’s easier for them to notice and thus attract other kids to participate. They can get more participation faster. Success!
But with more participation, suddenly there may be different interpretations of how they should play the game. Picking up the ball with your hands is a silly laugh in our yard at home. It may be very offensive to others in the school yard who have different expectations. You probably see where I’m going with this. Let me take it a bit further before wrapping up.
The league we signed her up for is another area further down the spectrum. There are many teams, coaches, referees, they keep careful track of score, and even have playoffs at some point to distinguish and recognize teams. There are costs involved to run the league so we need to pay a registration fee. The money collected needs to be managed with some degree of transparency so people can trust it wasn’t simply pocketed or wasted.
At the extreme end of the spectrum are professional leagues. These are the places for pinnacle of achievement in that sport. They simply cannot function without a very high amount of formalization. There’s a lot of money and prestige at stake.
Which of these areas/points on the spectrum is better? This is really a pointless question. It depends on what you want to achieve. Sometimes informality is ideal and just what you’re looking for. Sometimes well defined rules are necessary to allow things to happen that are very difficult to achieve without them.
Github is awesome enough and confident enough that I hope they don’t mind me using them as an example. Github provides really great infrastructure. It’s the metaphorical equivalent to a good quality ball & well groomed field. It supports a broad spectrum of possibilities. It is important to recognize that if you’re looking to reach an area on the spectrum I described above that involves broad participation across an industry and involving considerable financial/prestige interests, rules – let’s call it governance is needed. It should be posted somewhere accessible so people know what they’re getting into. You need to spell out how the rules get changed so people can trust they won’t change arbitrarily and suddenly. It’s generally a good idea to make it hard to change the rules. If the participants themselves define and can update the rules when needed, then even better. This is what a Foundation does in addition to providing infrastructure. “All of these projects follow the same rules and they are posted here” is a powerful statement to support trust. Open source projects can’t thrive without trust.