Inner source

{{short description|Use of open source software development best practices and open source-like culture}}

InnerSource is the use of open source software development best practices and the establishment of an open source-like culture within organizations{{Cite journal|last1=Capraro|first1=Maximilian|last2=Riehle|first2=Dirk|date=2017-02-06|title=InnerSource Definition, Benefits, and Challenges|url=https://opus4.kobv.de/opus4-fau/files/7544/capraro-riehle_inner-source-survey.pdf|journal=ACM Computing Surveys|language=en|volume=49|issue=4|pages=1–36|doi=10.1145/2856821|s2cid=5385511|issn=0360-0300|quote=InnerSource (IS) is the use of open source software development practices and the establishment of an open source-like culture within organizations. The organization may still develop proprietary software but internally opens up its development.}} for the development of its non-open-source and/or proprietary software. The term was coined by Tim O'Reilly in 2000{{cite web|url=https://ageofpeers.com/2016/05/09/an-open-source-approach-to-community-culture/|title=InnerSource: An Open Source Approach to Community Culture|date=2016-05-09|author=ben van 't ende|quote=Tim O’Reilly, the founder of O’Reilly Media, coined the term “inner-sourcing” in 2000, describing it as: “the use of open source development techniques within the corporation.”}} in his column.{{cite web

|url=http://archive.oreilly.com/pub/a/oreilly/ask_tim/2000/opengl_1200.html

|title=Open Source and OpenGL

|last=O'Reilly

|first=Tim

|date=2000-12-01

|website=oreilly.com

|publisher=O'Reilly and Associates

|access-date=2017-02-22

|archive-url=https://web.archive.org/web/20150215185341/http://archive.oreilly.com/pub/a/oreilly/ask_tim/2000/opengl_1200.html

|archive-date=2015-02-15

|url-status=dead

|quote=[W]e've also worked with companies on what we call “inner sourcing” — that is, helping them to use open source development techniques within the corporation.}}

Motivation

Open source is recognized to be capable of delivering high quality software.{{citation|surname1=Kevin Crowston, Kangning Wei, James Howison, Andrea Wiggins|editor-surname1= ACM|title=Free/Libre open-source software development: What we know and what we do not know|journal= ACM Computing Surveys|volume=44|issue=2|pages= 1–35|language=de|doi=10.1145/2089125.2089127

|year= 2012|s2cid= 2246943}} 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.{{cite journal|hdl=10344/4443|hdl-access=free|url=https://ulir.ul.ie/bitstream/handle/10344/4443/Stol_2014_inner.pdf?sequence=2|title=InnerSource—adopting open source development practices within organizations: a tutorial|author1=Stol, Klaas-Jan |author2=Fitzgerald, Brian |date=2014|journal=IEEE Software|doi=10.1109/MS.2014.77|s2cid=1965218|quote=[...] a number of organizations have adopted open source practices to develop their software. [...] Unlike traditional approaches, developers of an InnerSource project do not belong to a single team or department. Instead, anybody within the confines of the organization can become a contributing member of this internal community, either as a user or contributor.}}

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:{{Cite journal|last1=Capraro|first1=Maximilian|last2=Riehle|first2=Dirk|date=2016-12-01|title=InnerSource Definition, Benefits, and Challenges|journal=ACM Comput. Surv.|volume=49|issue=4|pages=67:1–67:36|doi=10.1145/2856821|s2cid=5385511|issn=0360-0300|url=https://opus4.kobv.de/opus4-fau/frontdoor/index/index/docId/7544}}{{Cite journal|last1=Stol|first1=Klaas-Jan|last2=Fitzgerald|first2=Brian|date=2015-07-01|title=InnerSource - Adopting Open Source Development Practices within Organizations: A tutorial|journal=IEEE Software|volume=32|issue=4|pages=60–67|doi=10.1109/MS.2014.77|issn=0740-7459 |hdl=10344/4443|s2cid=1965218|url=https://ulir.ul.ie/bitstream/10344/4443/2/Stol_2014_inner.pdf|hdl-access=free}}

; 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:{{Cite journal|last1=Capraro|first1=Maximilian|last2=Riehle|first2=Dirk|date=2016-12-01|title=InnerSource Definition, Benefits, and Challenges|journal=ACM Comput. Surv.|volume=49|issue=4|pages=67:1–67:36|doi=10.1145/2856821|s2cid=5385511|issn=0360-0300|url=https://opus4.kobv.de/opus4-fau/frontdoor/index/index/docId/7544}}

  • HP
  • Red Hat
  • Philips
  • Lucent
  • Nokia
  • IBM
  • DTE
  • Robert Bosch
  • Google
  • Microsoft{{Cite book|url=https://msrc-blog.microsoft.com/2020/12/31/microsoft-internal-solorigate-investigation-update/|title=Microsoft Internal Solorigate Investigation Update}}
  • SAP
  • Trend Micro
  • PayPal{{Cite book|url=http://www.oreilly.com/programming/free/getting-started-with-innersource.csp|title=Getting Started with InnerSource|last=Oram|first=Andy|publisher=O’Reilly Media, Inc.|year=2015|isbn=978-1-491-93758-7}}
  • Capital One{{Cite book|url=https://www.oreilly.com/ideas/using-open-source-methods-for-internal-software-projects|title=Using open source methods for internal software projects|last=Smith|first=Jared|publisher=O’Reilly Media, Inc.|year=2016}}
  • Amdocs
  • Skyscanner
  • Comcast
  • T-MobileArchived at [https://ghostarchive.org/varchive/youtube/20211208/pTssFh1qLwk Ghostarchive]{{cbignore}} and the [https://web.archive.org/web/20200623053930/https://www.youtube.com/watch?v=pTssFh1qLwk&list=PLFGfElNsQthaRSxKnPphH9k4iD7RzRLyc&index=17&t=0s Wayback Machine]{{cbignore}}: {{cite AV media| url = https://www.youtube.com/watch?v=pTssFh1qLwk| title = Commit San Francisco 2020: Shucking Corporate Oysters-Kickstarting an Innersource Culture @ T-Mobile | website=YouTube}}{{cbignore}}
  • Siemens{{Cite web|date=2020-07-28|title=Watch: Creating an InnerSource Hub at Siemens|url=https://jfrog.com/blog/creating-an-inner-source-hub-at-siemens/|access-date=2020-12-09|website=JFrog|language=en-US}}
  • Walmart [https://www.cio.com/article/3101224/how-wal-mart-enables-innersource-with-github.html]

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.{{Cite journal | doi = 10.1145/2533685| title = Key factors for adopting InnerSource| journal = ACM Transactions on Software Engineering and Methodology| volume = 23| issue = 2| pages = 1| year = 2014| last1 = Stol | first1 = K. J. | last2 = Avgeriou | first2 = P. | last3 = Babar | first3 = M. A. | last4 = Lucas | first4 = Y. | last5 = Fitzgerald | first5 = B. | hdl = 10344/3897| s2cid = 6995068| hdl-access = free }}

=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