Enterprise Open Source Policy
One of my colleagues asked me what I had contributed to open-source, lately. I actually haven't contributed any source code to an OSS project for several years but, last year I managed to make a rather rare contribution. I lead a handful of co-workers and we drafted our company's official Open Source Software Use Policy. After a technical, security and legal review, it has become the set of guidelines we use in practice, almost every day. It's probably the most popular standard any EA group I know of has ever written. What follows is a brief synopsis of the policy.
First, we defined several categories of use ranging from just downloading the binary and using the tool all the way to modifying the OSS code and using it on the customer-facing site. Our attorneys were very helpful in this regard as we had to do a risk-benefit analysis from several different viewpoints.
Second, we used the Open Source Initiative's list of licenses and evaluated all of them. We then created a matrix and cross-referenced the license with the category of use. Now this does not mean that just because the license is approved for the category that someone can actually use the software. That's a separate issue.
Third, we outlined a lightweight evaluation process where if the license is approved, the developer and their manager would determine if the software was actually appropriate to use, consult with architecture (something similar might already be pre-approved) and prototype a case. The development manager and the architect can both approve the use of the OSS code in production.
Fourth, we defined a simple process for making contributions back to the OSS community. Simply, development, architecture and legal would review the code and if approved, the company's governing board would be asked to allow the submission back to the project. We essentially piggy-backed on the same process already in place for identifying possible patents and trade secrets, a process most public companies already have.
Fifth, we created the guidelines for a company-sponsored OSS project. This included identifying one senior developer as an ambassador for the project.
We also set policy about extracurricular coding, and weaved that into the employment agreement.
Finally, we also describe a policy where the procurement of OSS software is no different than the procurement of any other software and it gets managed like any other company asset.
The resulting benefits of this policy have been very positive and measurable. We have cataloged all OSS in use, all of it is properly maintained and version-controlled and plenty of patches, bug-fixes and documentation have been submitted to a number of OSS projects. Everybody wins.
I have even personally used the policy as a recruiting tool when asked what the company policy is regarding OSS. It has indeed sealed the deal for several people we have hired.
