F/OSS is a phenomenon of the modern life. But what makes it successful? Ben Laurie is convinced that Open Source Is Just Economics. I beg to differ. Yes, it does make sense for several companies to gang together and develop something jointly. And they did it for years without the open source. Not always successfully, but they did it. For example, IBM has cooperated with Microsoft on OS/2 back in the days, and there are more examples. What makes OSS so special? Ben’s post has links to other possible reasons. But I think I know the answer: global meritocracy in informal communities — this is the mythical secret ingredient, which holds the whole system together.
If you see that certain piece of OSS sucks hard, you are free to tell it as it is, and suggest the ways to improve it. After all the author of this piece of junk is not your boss, not even a coworker. The informality of this situation gives you more opportunities to be truthful and honest in your assessment. If you are ignored, you can easily fork this sorry piece of code and improve it yourself. Of course you can bitch and moan about a close-source software as well, but if you are sent to hell, you have absolutely no recourse. Yeah, I know, “vote with your money” blah-blah-blah — get real! it doesn’t work in most cases.
If you think that the code in question doesn’t worth salvaging and augmenting, you can start your own competing project. You can do it for a close-source software too, but it is easier for OSS because you can reuse gotchas, certain solutions, and some ideas from your “competitors”.
What if the code is “semi-open” and you can potentially improve it on your own? Example: internal IT software in your company. Well, it rarely happens. The most awful software I ever saw in my life was the internal software of major companies. Internal groups have a virtual monopoly to produce those terrible concoctions. Add a byzantine framework of internal bureaucracy, back-stabbing inter-group politics, and bizarre conflicting agendas of myriad of managers, and you understand why the framework is extremely important. F/OSS thrives on informal communities, which are super-light on bureaucracy and don’t have rigid hierarchies. Suddenly “because I said so” doesn’t work — who are you to tell me what to do? Again I will pay attention to your opinion if you proved yourself in my eyes — this is the meritocracy in action. (No, being a boss is not a sign of your excellent technical skills, sorry.)
So we discussed the “meritocracy” aspect, the “informal communities” aspect, now let’s talk about being “global”. It is kind of obvious: I don’t know a single OSS community, which is restricted by citizenship, or visas, or any other technically irrelevant crap. In most cases the biggest restriction is an informal one: by language. You have to know the language of that community in order to communicate. Some communities can have sub-communities based on languages. It works even for relatively small projects. Example: nginx has thriving Russian-speaking and English-speaking communities with cross pollination.
When you are past the natural barrier of a language, it is all meritocracy again. If a guy from Philippines has the best ideas, and a guy from Poland can implement them well, so be it. Both for-profit companies and Open Source communities recruit from pools of talent, but in the latter case the pool is bigger and more diverse improving the chances to find the right guy for the task.
Successful informal communities create an ecosystem — it is a part of self-organization required to have a sustainable community. The ecosystem includes web sites dedicated to the project, friendly blog posts, mailing lists and newsgroups, and people, who contribute code, answer questions, test, document, and cheer. Nowadays smart businesses attempt to have a symbiotic relationship with OSS projects. And this is the part where economic factors play a huge role. But they came to play with us when the playground was already built for them.