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 (e.g. ARM and Intel working on Linux kernel on merit-based decisions).

Consequently, software developing organizations want to benefit from its outcomes (the software components and tools), 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 (e.g. code, documentation, issue tracker, etc.) 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 (egalitarian, meritocratic, and self-organizing) 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 (within the company), 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 (integrators, developers with write access) 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
 Faster Time-to-Market
 Reduced development costs
 Overcoming organizational unit boundaries
 Cost and risk sharing among organizational units
 Collaboration across organizational unit boundaries
 Program-wide information exchange
 More successful reuse
 Use of competences missing at component providers
 Independence between reusers and providers
 Relief of component providers
 Better software product 
 Increased code quality
 More innovative development
 More flexible utilization of developers
 Simplified developer deployment
 Collaboration of detached developers
 Enhanced knowledge management
 Community-based learning
 Openness and availability of knowledge
 Higher employee motivation

Prevalence 
Among others the following companies are known for adopting InnerSource:
 HP
 Red Hat
 Philips
 Lucent
 Nokia
 IBM
 DTE
 Robert Bosch
 Google
 Microsoft
 SAP
 Trend Micro
 PayPal
 Capital One
 Amdocs
 Skyscanner
 Comcast
 T-Mobile
 Siemens
 Walmart

Key factors for adopting InnerSource
InnerSource can be a promising approach for large organizations that develop software. However, it may not be appropriate in all settings. The following nine factors, grouped in three categories, can be consulted to gauge the extent to which InnerSource may be appropriate.

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

References 

Free software culture and documents
Software development process
Software project management