Sunday, October 10, 2010

Stages of adopting open source mind-set


These are stages I observed for years from both people and organizations. I might miss something here, but before you think "this is not me/us" think again. I'll use person's perspective, because it always comes to a person. Be it your friend or some big corporate CTO or architect.

  1. Ignorance: open source doesn't exist. If anyone mentions it, you tell yourself "there are dragons there", "it is not secure", "licensing is viral", "I know this guy that once used open source and got sued" etc. Also you think, you can do better on your own.

  2. Waking up: you are doing this great PNG display library for months now and you have only 20 more known bugs to fix before you can start working on your great SSL implementation then some friend comes by and asks "have you tried libPNG and OpenSSL?". You try them and they seams to work. You start reading licenses.

  3. It's a wonderful world v1.0: The sun shines again. Now you know much about open source licenses. You are using as much open source as you can. In fact it's something like a big well and you can take as much as you like right? You start to understand some of the ideas behind. You also have a strong opinion about how those projects should be managed and what needs to be done next there.

  4. Open your heart: It's a big well but wouldn't it be great if you add something to it? You are looking at your own projects and start thinking - "should I open them?". You decide to try with caution. You open couple of your most unimportant projects. You select them because no one have time for them in hope that "it's a big community, there should be someone willing to add improvements". Now you consider yourself a full grown open source citizen and so is your company.

  5. No love for me: No one wants to work on your open projects. In fact no one cares. You are wondering what's wrong with the community. Looking at other open projects and comparing them to your own, you can see some differences. Maintaining an open source is not an easy task. Getting support from community comes with a price. And if you don't like and care for your projects, others won't too.

  6. It's a wonderful world v2.0: You start opening only your significant projects. Selecting those you are sure many people will find useful. It is important for those projects to have some unique features and/or be clearly better than similar open source projects. They need to be well documented, with clear license and build instructions. Some samples are useful too. Once you have that you will get community support. You understand that open source doesn't necessarily mean nobody gets paid to work on it. It just means it is open for others to look at the code and use it, and they might contribute. Now you can decide should you be the main contributor or just step out and leave it to the world to handle from now on.