On Open Source
- Release early, release often!
Basic OS principle that obviously doesn't fit the world of the commercial SW. And it's clear why - while commercial product must be trustworthy, stable and polished; OS is motivated by improvements and progress. It implies that the lenght of the release cycle reasonably differs.
Open source developers deliver features early (even in poor quality) in order to test them on the users and to get feedback. This approach allows them to make it properly next time in the worst case. Also OS teams are loosely-coupled, there are no hobbling processes, no politics and formal analytical/doc requirements - only concise communication used for coordination. It enables OS community to be flexible and to create SW on proof of concept basis.
- Reuse here, reuse there,reuse everywhere...
In the world of commercial SW you have two options - either build everything on your own or to make some partnership/OEM/agreement/etc. Always you have to be very careful. You may become hostage of components you have incorporated into your product - these can be buggy, you may discover serious performance issues too late, you may get unsufficient support/doc, etc. and since it's closed source world, you are unable to fix it - you always loose.
OS community enables you to build your SW quickly and let you focus on what you want to achive. There are so many possibilities for reuse - you always find what you need. An only obligation you have, is to allow others to do that with your product as well. And that's the synergy that leads to the rapid evolution of the software...
Well, I know that there is a lot of serious analyses on this topic, and these observations doesn't apply to SW gigants. In this post I just wanted to describe my fresh OS experience. Since I would like to make MR to fit this world, I aspire to understand it :-D