A company’s open source participation typically follows a spectrum that begins with consumption -using open source tools and components- and progresses to code contributions with increasing levels of commitment. Contributors start by fixing bugs, then adding features, and finally starting and leading new projects. The process typically involves four stages: consumption, participation, influencing, and initiation.
Contents
The 4 Stages of Corporate Open Source Participation
- Consumption: Companies look for open source projects that offer a benefit to products, either now or in the future. They use these projects as a base on which to differentiate their own products, services, or infrastructure.
- Participation: Once a company is consuming an open source project, its developers begin finding and fixing bugs in that project. When this happens, they can commit those fixes back upstream to the central hub of the code so that the company’s code then becomes a permanent part of the open source project.
- Influencing: A company can leverage open source by identifying which project they are using that needs additional functionality for their own purposes. They will begin to make changes to that project to change its technical direction and advance it in a different way or take it further.
- Initiation: After participating in open source communities long enough to build a reputation, a company is in a position to benefit from shared R&D and/or commoditize a competitor’s technology. It can share, or open source, its proprietary projects that could be of use to the community. Or it can create new open source projects from scratch and benefit from collaboration among external developers.
Best Practices for Building Open Source Competency
Companies that have been using and participating in open source for a while and have found success—innovating through open source—typically follow many of the same best practices. Open source programs can be structured many ways – from one or two advocates on an engineering team to entirely separate R&D divisions. Regardless of the specific path, companies adopt and evolve these practices at their own pace to suit their own needs. The most successful programs eventually achieve a level of mastery in each.
Below are seven key best practices. When taken individually, each practice helps address a common issue companies face when integrating open source technologies and practices. Collectively, they are the building blocks for establishing open source mastery within a company.
1. Hire an open source program manager
An open source manager is an executive-level position that provides hands-on management of corporate activities and involvement in open source projects. Many companies have found that having a manager for their open source efforts is a crucial way to grow their open source programs. The program manager is dedicated to and responsible for increasing open source participation within a company, ensuring legal compliance with open source licenses, and building the company’s reputation within open source communities.
2. Identify critical open source projects
The open source program manager can work across teams and departments to identify which open source projects are critical to a company’s products or services. He or she can then work to integrate the selected open source code into the technology stack by creating an “open source map,” which will provide strategic direction for a company’s open source participation. To go beyond consuming open source projects, a company needs to establish processes to facilitate their developers making contributions to those projects and communities. Once a company understands its IP portfolio and the open source contributions its developers want to make, it can work to ensure its developers are empowered to make those contributions.
3. Establish a compliance program
open source software is released under licenses that allow source code to be used, modified, and shared freely. Licenses include the developer’s name as the originator and owner of the code and often require projects that modify the code to release changes back into the open source community.
When open source code is used for commercial products, questions of license compliance can arise. Companies that use open source software in their products have established open source compliance programs to address these issues. Most companies create a FOSS compliance program and set up a core team, usually called the Open Source Review Board (OSRB) to ensure proper compliance. The OSRB often consists of representatives from engineering, product teams, and legal in addition to the Compliance Officer (sometimes called Director of Open Source). In addition to the core team, an extended team that consists of various individuals across multiple departments (Documentation, Supply Chain, Corporate Development, IT, Localization, etc.) also contributes on an on-going basis to the compliance efforts.
4. Foster open source culture
In open source software development, design decisions, strategies, and discussions happen in public by means of collaborative tools such as version control systems, mailing lists, web forums, and bug trackers. Use of these tools fosters the establishment of a more open and transparent culture for collaborative software development.
5. Hire or grow open source developers
Developers are mobile and in short supply, they have a multitude of opportunities and can pick and choose between the companies and projects they’d like to work on. So how do companies find and recruit developers to build their teams?
- Look inside the company.
- Developers participate in mentoring programs outside the company.
- Build an open source team is to hire well-known open source developers.
- Assuring a good level of participation in open source projects can also help attract developers.
6. Leverage external R&D
Open source software development allows companies to take advantage of external R&D. External R&D is the practice of using open source projects as a base on which to build a company’s own tailored software, and its benefits are many. It greatly speeds time to market by allowing a company to leapfrog over some of the development time. It saves money because the pre-existing software projects are already completed and are free. It expands a company’s horizons by exposing it to new and different ways of doing things. And it aids in recruitment, allowing a company’s developers to get to know and work with external developers that might be potential new hires. Experience in open source development is transferable from company to company, so it saves companies training time for new hires as well because the developer has already been working on a company’s project before being hired.
7. Join a Foundation
Open source foundations are key enablers of networking in the open source community at large. Joining organizations such as the Apache Software Foundation, Eclipse Foundation, The Linux Foundation, and Outercurve Foundation, helps companies in all stages along the open source spectrum of participation. Foundations offer a mix of resources and services from legal protection and advice, to financial management, training, and events, all of which strengthen and support their members in the open source community.