To open source, or not open source, that is the question.
The idea of opening a company’s source code attracts a lot of reactions: some companies are opening up to it, some don’t look at it as an option at all, and some are sitting on the fence and just need a few clear incentives for taking their first step to do it.
If you too, are curious about releasing your code and just can’t happen to decide, you'll find the following four benefits helpful.
#1: You will produce better products
Going open source will improve your product significantly.
Quality work for free: A Stack Overflow survey reported that 70% of respondents pursue coding either as a hobby or on an open source project for two or more hours every week. By opening your source code, you can hack into these valuable developer hours.
If you’ll be able to build an engaged community around your product, you can expect contributions from its developers to code fixes and new features for you. This contribution doesn’t come without any investment, maintaining an open source project takes time and resources. However, if you are able to develop a community of contributors around your product, it will be worth the investment.
Open source mindset: If your developers will know their product is intended to be used by thousands of developers from the open source community, they will have a different mindset while developing it. They are much more likely to ensure the open source community will be able to use it. Experience shows that building products, knowing from day one that will go open source, leads to a cleaner and more maintainable code.
Thorough testing and reviewing: Open sourcing your code brings it before hundreds of thousands of developers in the open source community. And no matter how big and extensive your code review process might be, it’s almost impossible to match the level of exposure and feedback that open sourcing your code can lead to.
Even Facebook stated that going open source has improved their products, and that’s Facebook! So just think about the value startups can gain from open sourcing their product.
And it’s not just about feature development, lots of times, you’ll discover the real needs of your users — the features that they’d like you to develop to improve your product through the open source community. These are some invaluable business insights that you could otherwise only learn through market research that may cost you a considerable amount of money.
#2: You will get an exposure before an engaged audience
When a project is released as open source, the project becomes visible to the outside world. This means (almost) free advertising and may lead to higher awareness and familiarity with your company. Not to mention that publishing useful and impressive code will boost your company reputation.
This can be very important to small and mid-sized software companies, especially when it’s competing over market share with large organizations. The SDN market is a great example where you can see companies like Big Switch Networks and Midokura utilizing open source to gain market share from Cisco.
Releasing code as open source, can also improve how your company is perceived. When you open source your code people tend to look at your company as an inventive company. One that believes in the spirit of open source, that believes that in order to develop innovative solutions companies (sometimes even competitors) need to work together and that drives to continuous innovation.
#3: You will attract passionate and talented developers
Developers working on open source projects, at work or after hours, get a real sense of accomplishment from contributing their work to the community. Enabling your developers to be a contributing member as part of their work will give you a lot of credits as an employer. Many developers will perceive this as an opportunity, not only to contribute, but to demonstrate their skills and build up a portfolio to show their colleagues, open source community, members, and potential future employers.
Open sourcing your code also creates a perception before developers that you run an open-minded company with the focus on building innovative solutions and not on re-inventing the wheel. And that’s what talented developers would like to do — great work and not rewrite code. Releasing open source makes your company more desirable to developers who want to innovate.
#4: Openness will become an integral part of your company culture
Open source goes deeper than code. It's more of a culture. A culture of approaching the world in an innovative way, of looking for solutions that breaks from tradition, and of doing so in a collaborative environment where transparency of process is the most important virtue.
Now show me one software company that will not gain by absorbing some of this culture into its own?
The biggest takeaway for most companies will be teaching their developers to work collaboratively. Many companies see that their developers find it overwhelming to work with other departments, not to mentions partner companies. But this is a crucial skill needed to succeed in agile software development environment. Working on open source projects teaches you how to pick up someone else’s code and continue developing it together.
Ready to open source your code, but not sure where to draw the line?
Well, the answer to this question is subjective because YOU are the best judge to decide just how much of your code can be open sourced without compromising on your company’s core business value.
There is more to releasing your code then merely deciding to. You need to choose the right open source license, upload the needed documentation, decide how to manage your versions and more. But take the first step now and decide to become part of the community. Make this your new year’s resolution and enjoy these great benefits from going open source.
At WhiteSource, we practice what we preach. We have released several projects so far. However, we believe our greater contribution lies in offering our services for free for open source products to ease their open source project management.