Inner source
InnerSource is the use of open source software development best practices and the establishment of an open source-like culture within organizations for the development of its non-open-source and/or proprietary software. The term was coined by Tim O'Reilly in 2000 in his column.
Motivation
Open source is recognized to be capable of delivering high quality software. Furthermore, the open collaboration in open source enables collaboration even between competitors.Consequently, software developing organizations want to benefit from its outcomes, but also from the development practices exercised and established in the open source world.
Used open source practices
Besides several practices established in foundations such as Apache Software Foundation, Linux Foundation, and Eclipse Foundation, InnerSource and open source projects require open collaboration, open communication, and a proper quality assurance.Open collaboration
All required development artifacts have to be accessible for all employees of a company leveraging InnerSource. Central software forges are an essential tool for implementing open collaboration.Based on the principles of open collaboration every contributor who is willing to help an InnerSource project is typically welcome. Contributions to InnerSource projects are typically judged meritocratically based on the value they bring to the project. Meritocracy can also be enabled by open communication as decisions are discussed publicly. Although an organization does not necessarily become completely self-organizing to adopt InnerSource, InnerSource allows individuals, organizational units, and project communities a higher degree of self-organization.
Open communication
InnerSource projects and programs rely on open communication to make all communication openly accessible for all employees. Open communication is communication that is public, written, archived, and complete. As consequence of this property, the communication is asynchronous. The goal is to allow any individual or party that has stake or interest in an InnerSource project to participate in the communication. As open communication discussions are archived, a detailed documentation of the software is passively gathered that allows one to go back and revisit historic discussions and decisions.Quality assurance through separation of contribution from integration
A dedicated code review and the separation of contributors and committers assures the quality of an open source project, and, therefore, also for an InnerSource project.Benefits
Beyond the quality attributes of open source software the following benefits are reported:; More efficient and effective development
; Overcoming organizational unit boundaries
; More successful reuse
; Better software product
; More flexible utilization of developers
; Enhanced knowledge management
; Higher employee motivation
Prevalence
Among others the following companies are known for adopting InnerSource:- HP
- Red Hat
- Philips
- Lucent
- Nokia
- IBM
- DTE
- Robert Bosch
- Microsoft
- SAP
- Trend Micro
- PayPal
- Capital One
- Amdocs
- Skyscanner
- Comcast
- T-Mobile
- Siemens
- Walmart
Product factors
- Seed product to attract a community
- Multiple stakeholders for a variety of contributions
- Modularity to attract contributors and users
Process and Tools factors
- Practices that support "Bazaar-style" development
- Practices that support "Bazaar-style" quality assurance
- Standardization of tools to facilitate collaboration
Organization and Community factors
- Coordination and leadership to support the emergence of an internal meritocracy
- Transparency to open up the organization
- Management support and motivation to involve people