Why you should Open Source your software?
Lots of software companies does not Open Source their software. It is a bad practice, and a waste of money. Open Souring your software has a real good ROI.
This article is first of all for business people leading software companies, or for those who pay for software development. Actually for all those who are decision makers. On the other side I hope it will be interesting for software architects, developers too.
This is not mean to be an in-depth analysis or an article about sheer numbers, charts and stuff. It’s just few thoughts and examples from the real world.
I’m a bit amused how companies does not recognise the importance of the Open Source. I keep hearing humiliating notices about OSS from CEOs, CIOs, managers. Some of them just walk with eyes closed. In the stone-age of OSS, we had only very few enterprise level OSS, but now-a-days the situation is upside-down. Just think of Linux, Eclipse, Firefox, Wikipedia, Apache Server, Open Office, PostgreSQL, etc.. OSS starts replacing enterprise software, step-by-step. Your going the be the part of it, or you’ll doomed. – OK, I exaggerate, but admit, that there is small grain of truth in it.
Now, lets jump onto the topic.
First of all I have to clarify, that when I write Open Source Software (OSS) I mean:
- http://opensource.org/docs/osd
- FLOSS – Free Libre Open Source Software
On the other side I think here about “good” OSS, where quality is high (code, design, docs, etc.), there are reasonable number of users/contributors – this depends on type. – As the Internet is full of junk, there are also a lot of junk OSS. But fortunately there are lot of good sites that can help you find a good OSS, just think of http://ohloh.org, http://freshmeat.net, http://sourceforge.org, etc..
Lets first look at some facts about Open Source:
Users – lots of users means, lots of testers. So you get real life testers for free.
Contributors – with contributor, you get an extra gear, or lots of extra gears.
Quality – well, it’s open source. Would you dress up lousy or ugly for a wedding or for a gala where you suppose to be rewarded? No way, you want to show the best of yourself. I think, in most cases that’s the situation with OSS. It’s open. Everyone can see your code, your design, so you’ll try your best. – On the other hand, if you don’t, your OSS probably won’t live for long. Okay there are exceptions, but hack, there are always exceptions. – One thing is sure OSS tend to be much cleaner, and much better in quality then enterprise software.
Feedback – users and contributors will give you a really good feedback. First of all you’ll know if the software is going in good direction, does it meets the quality expectation. You’ll get mostly good bug reports.
Experts - contributors and even users becomes experts over the time.
Now lets get back to enterprise.
In the enterprise environment, there is a fear of OSS. The fear usually comes from two sources:
- There is an OSS that is a potential competition.
- If we open-source some of our software that could be reused by the competition.
Well, the first one could be a potential risk. But if there is better OSS why not extend it, or just use it and give support for it? Build a service around it, and help the community… – But I do not want to get to deep into this one, as this is not what this article is about. I just want to notice here that open-sourcing whole products might be a good idea, as there are lot of firms doing this…
The second one is the interesting one. I would recommend to open-source anything that is not directly your field of interest. For example if you are developing software for Banks, you probably do not want to sell separately your framework, adminstrative tools for hacking the database, data-pumps, etc.. Now those parts of your big system are potential OSS. And if you open source them even some money will lend in your pocket.
Lets now look at some real life examples.
First lets look at few of the biggest software companies. Google open-sources lots of its software. Just take a GWT for example. GWT was a great idea, but creating it as open-source was even a better one. IBM is another greate example, it created Eclipse as an OSS. Oracle, IBM, and lots of other companies contributed a lots of man-hours into Linux. Why?
Lets look at benefits.
Google’s GWT: Google was never in tooling, IDE and framework business. They just needed a good framework that could fit their needs. So they created one. As it was open source and as it was a good one, it got attention, and today lots of companies uses it. The benefit Google get from it:
- Lots of testers and bug reporters.
- Extra developers.
- Extra documentation – there are books about it, not written by Google personnel.
- Experts! Yes, they can now hire an GWT expert “from the shelf”, and they do not need to spend lots of money on trainings.
- Extra software for it: Visual Designers, integrations, extensions, …
IBM and Eclipse: May be some of you do not even know that Eclipse was an IBM initiative. AFAIK some of IBM’s best IDE developers, who previously worked on VAJava and other IDEs started the project. Afterwards other companies and people joined. Nowadays IBM, Bea, HP, Novel, Oracle, Intel, AMD, etc. donate engineers to work on it, or money to Eclipse Foundation. Eclipse became #1 IDE on the market. Where is the benefit for all those companies, and for IBM first of all?
- All 4 benefits from above
- None of the companies would invest so much money into an IDE development, as they did together. – For the “Eclipse Platform” Ohloh estimates (now) $113,140,186. For WTP: $31,844,709. Probably if you sum them, you’ll end way above $200,000,000. Really big sac of money. So what happened? They joined forces, to create a really great IDE which would fulfil all their needs. – Kind’a “stone soup”.
- Marketing: “We are the good guys, we give of this to you for free”, and “We are so generous, …”, and “We are so big, we can do it.” – For small companies contributing is a bit different marketing: “We did it too.” and “We did it with IBM, Oracle, etc.”.
- What about Rational (formerly: Webshpere) Application Developer (RAD)? It is still for money. It is a Eclipse (Europa) JEE competitor in some way. Well, yes and no. I think IBM strategy is different. They have “business partners” and who knows what else. AFAIK these companies have different level of partnership with IBM, some of them get some of the software for “free” (which is actually an annual fee, etc.) someone gets it with discount, etc.. But even if nobody would buy RAD, it would be still profitable. The contribution of the competitors and other companies give IBM (and to them self) a great IDE worth every cent. – And do not forget, Eclipse is a platform. You can see new versions of old products – like Notes – rewritten based on Eclipse, and all the new products tend to be so.
Linux and Canonical: Ubuntu. Who knows about Ubuntu? And who know about Canonical? Now-a-days almost everybody involved in Computer business knows about Ubuntu. And if you know about Ubuntu you most probably know about Canonical too. And if you use Ubuntu, you know about Canonical almost for sure, and you are a potential Canonical “customer”. So Canonical put a great effort to produce a really user friendly, professional Linux distribution, and now benefits from it.
And I could go on. There are a tons of real world examples, success stories.
If you still hesitate, just keep your eyes open. Find out why big companies invest in OSS. Learn how small companies live from providing support for OSS. Or just pick out one of your in-house developed software and try to compare the quality of it with similar OSS project.
Of course Open Sourcing is not easy. You have to make a product out of your software. You would need a documentation, a modular design, etc.. But if you do care for your software, you probably have all those.
I would encourage everyone to open source everthing. After all sharing is good.
Great writing. In my opinion the greatest thing you can earn from opening your sources is QUALITY. You have to prepare your codes for opening them so you do not just hack codes together. I hope that all moguls of software development companies will see the opportunity in OSS and make their codes public. I myself work for one of these leading companies and see that ignoring OSS causes a lot of trouble. In our project we work with EMF and GEF and instead of using them our management forced developers to rewrite them putting more bugs in the code than it had before. As we have not too many testers compared to OSS projects these bugs will remain 4ever in the code. So OSS 4ever!