The concept of open source has allowed software development to evolve in very different ways than many other industries. It’s common practice for even the largest tech companies to regularly rely on open source software – even Google relies heavily on open source to keep running by using languages like Python to libraries like OpenSSL and OpenSSH.
But it’s very easy to take help from the open source community without giving back. That’s a dangerous habit to get into, if only because a company can find itself relying heavily on an open source project that is no longer being maintained. But helping maintain the projects you use is just a starting point. There’s a value in dedicating some of your company’s resources to open source software development, beyond just making sure that you have the software you need, when you need it.
Netflix has released many internal libraries and tools under an open source license, posting the code to GitHub for anyone to use. Part of the logic behind doing so is that the company has benefited from use open source software internally, but Netflix has some bigger goals in mind.
There’s a clear benefit to Netflix if other companies working in the cloud (particularly on AWS) all belong to the same ecosystem, with the same expectations and tools. Vendors can offer better tools if they don’t constantly have to think about yet another exception. Netflix’s libraries are rapidly becoming industry standards, which lets the company have an outsized impact on how the cloud ecosystem evolves.
Most developers actively want to avoid showing poorly written code to the world. Knowing that code will likely be open sourced gives developers an immediate incentive to write better code, as well as to document and test the code in question. But an open source project can have contributors outside of your own company — developers who you might not otherwise be able to bring in on a project.
Resque, created by GitHub and then released, grew dramatically, far beyond how GitHub could have driven the project. More than 100 contributors have improved Resque and hundreds more developers created third-party plugins to extend what Resque is capable of. For a company without the resources to push a project to its full potential, releasing the code under an open source license is an opportunity to get the best possible end product.
GitHub has seen direct results from its efforts, as Tom Preston-Werner points out: it’s provided great advertising, helped build the code faster, attract new talent, sort through prospective applicants, retain talent and improve the code at the heart of the matter.
What if you knew that you could hire developers who are already familiar with your company’s workflow, including the internal tools you’ve developed? Rackspace may be in precisely that position, as it open sources tools like OpenStack, which the company built to better provide cloud computing infrastructure.
Being active in open source gives your company other benefits as an employer: you’ll be able to see how developers work with your code long before you have an opening, letting you recruit people who you know have the chops to work on your projects. A few minutes on GitHub can be enough to let you decide exactly who you want to hire and let you skip the technical interview entirely. Your company will also be more appealing to work for, at least for those developers who have a strong commitment to working on open source projects themselves.
Contributing to open source is a great strategy for tech companies: it improves your own code base, expands the pool of developers you may eventually hire and even shows your company’s commitment to doing good things. You don’t have to start big: just sending patches back to the projects you rely on is a good place to start. The important thing is to actually make a contribution. Your company will reap the benefits.