Paying talented developers to write high quality code isn't cheap; why on Earth would you then turn around and give that code to your competitors? Turns out, there's probably a competitive advantage in doing so.
To this point, at OpenStack Summit earlier this year in Atlanta, Colin McNamara gave a talk on some of the challenges OpenStack operators face, as well as the advantages their companies stand to gain, when trying to contribute code they write back to the upstream project. McNamara is Chief Cloud Architect at Nexus IS, a systems integrator based in Silicon Valley. His talk looked at sticking points and benefits across both business and technical perspectives.
Overcoming challenges on the business side
Perhaps the biggest challenges to committing upstream code are the desires to maintain business as usual. Traditionally, code and other intellectual property have been seen by some as the core assets of a technology company. If you give them away, what do you still have? For a business to succeed, McNamara argues, there has to be some reason that the company is special—the one "unfair advantage" they have over their competition is. Code is just there to support that one special thing.
When you share code upstream, you're sharing the development burden with your competitors, and potentially even future employees. And competitors may not even be the right word. In McNamara's words, "Just because someone is in the same business segment is you, does not mean that they are a competitor. It means they are similar to you." The are potential future collaborators and even potential employees. When you commit upstream, you are increasing the pool of individuals and potential future collaborators familiar with your work, increasing your credibility, and allowing for future growth that might not otherwise be able to occur.
And the technical solutions too
Git, Gerrit, and Jenkins—the tools that enable code commits, review, and continuous integration in the OpenStack development process—also have tangible advantages for organizations trying to control the flow of code and make sure that the necessary legal controls are put into place. Particularly to organizations with access to proprietary code bases that they need to be be sure don't accidentally get merged into upstream code, having the right technical checkpoints in place can be useful.
McNamara has a lot more insight to share than just the little bit which I shared here. At just over forty minutes, it's well worth the time to sit down and watch all the video the way through.