Last days I spent a lot of time with .NET developers, I spent many hours chatting with my friend’s boyfriend – always arguing about differences between Open Source model and “Closed Source” model of coding. There was no doubt that the decision is far more important than just choosing if you sell or give your work. This choice determinates the way you work, learn, teach, earn money, live (?). Both models have their pros and cons, I’m devoted to Open Source, they’re not (even they really appreciate it). I was wondering what’s the real difference and if there is any. A difference that would make my choice anyhow “better” than their choice.
First thing I see is that all of them are sure that they understand the reasons behind Open Source, and all of them are wrong. They often repeat that “I’m young and enthusiastic” and they were the same many years ago. Well, it doesn’t answer why Novell, IBM or Nokia plays in our game. They all greatly underestimate the power of something that Asiego called “having fun of what you’re doing” – no, not some slogan, a real, great, fun. They’re all a bit blind – they see coding just as a method to get money, nothing more. They might like it or not, but, from what they’re saying, they wouldn’t code if they couldn’t get money for this – so it’s something completly different from most Open Source movement!!! And it’s a huge difference. Second thing is that they can only imagine applications that they can write. They don’t have any Great Ideas for Computer Software which could be created by a huge group of people. Probably because their minds work in a simple relation – every idea has one If statement described as “Can I get money from this idea?”.
But that’s not what I wanted to write here. It doesn’t give me the point I was looking for. And suddenly, yesterday, I found it. They are at the end of a blind alley of coding. No matter if they are 20, 25 or 40 years old. Why? Because none of them asked any question during this long discussions! I was a bit shocked when I discovered that. I made a test and checked my theory – 100% success!
People who’re working on closed source software doesn’t ask questions. They’re not interested in anyone else ideas, knowledge OR they’re sure they know everything. Both cases are just stupid in my humble opinion.
Why is it so important? There is a theory of Memes and Ian Steward and Jack Cohen, in “The Science of Discworld II” used a term “Extelligence” to describe the merged intelligence of humanity. They proved that individual human being has very limited resources and it’s not possible to evolve too far with such small brain. But having extelligence, united intelligence of all human beings we can “reach the stars”. The base of extelligence is a share of knowledge between humans. Open Source is an expert in this game. Closed Source teaches not to share anything – including ideas.
So working for Open Source you must share ideas and knowledge with other people – it’s our way to improve product. All features in our products comes from complex process of selecting ideas from hundreds people who write them down. We learn this thanks to open source, and we can use it elsewhere making our life better, happier.
There is also one more reason – very important for me. Open Source people works with mentors, authorities, people who are a real guru’s for us all. It makes us all modest. We are safe from falling in infatuation, from cheating ourselves that we are gods. I can clearly imagine someone who’s working on his own, without sharing anything, any knowledge, selling his very similar products and getting the feeling that he knows everything. That he is the best. And what is most important – that he doesn’t have to learn. To study. To improve.
Of course, you can find exceptions. rustic Open Source people and charm Microsoft developers 😉 – but I feel that this theory fits my experiences with both kind of developers.
Once you stop learning, when you can’t find motivation to try, experiment, test, create something for fun, learn – who you are? Where do you go? It means that you won’t be any better – and others will overtake you in a minute.
And how can you learn in Closed Source model? You must buy a curse or learn from tutorial – both ways are not funny and you’re quite alone during this process. In Open Source model you learn with others, from others, giving your contribution in reward – it’s a great deal – both sides win + users. And you code together. So you’re more social than boring, sad, tired of coding, closed source guy who don’t want anything from life beside getting money for selling someone his secret code once more.
Well, mostly, that’s all. What do you think? Did I miss some important part in my theory?