Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pattern/contained-innersource #13

Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions contained-innersource.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
## Title
Contained InnerSource

## Context
* The company needs to develop a software product component; multiple business units use this component.
* Multiple business units need a software component.
* The business units (BUs) are in agreement that it makes sense for the BUs to collaborate; each needs some different changes to the code.
* One BU doesn't have the resources to do the development for all the rest.
* InnerSource programs and tools exist ("uncontained" InnerSource).

## Problem
* The uncontained inner sourcing of the collaboration is regarded as distracting from the needed efficiency of specific collaborative development with the other BUs sharing the use of this component, but normal development practices do not effectively work with sharing of development resources to work on this component.

## Forces
* The product's importance to company revenue and the committed feature content and dates require a development paradigm that provides known, stable development resources (headcount).
* Uncontained InnerSource has an effect on on collaborative product development: there is added effort for soliciting and managing contributions. In addition, uncontained InnerSource may have some effect on the ability to control the timeline for completion and deployment.

## Solution
The solution is for the participating BUs to each dedicate development resources to collaboratively add the features that each BU needs to the software component. InnerSource tools and some InnerSource processes are used, but the InnerSource cooperation is **contained**; there is no attempt to encourage open contribution from participants outside the core group of BUs that have entered into this arrangement.

In some cases, the component source might be kept visible only to those BUs participating in its development, even though it uses InnerSource infrastructure and development processes.

Uncontained InnerSource infrastructure and processes effectively allow and facilitate the development collaboration of multiple BUs where existing traditional development infrastructure and processes do not suffice.

## Resulting Context
Product development is successfully completed. Inner sourcing in the classic sense isn't happening, so while the development cooperation that needs to occur happens, the full benefits from inner sourcing are not realized (e.g., exemplary documentation designed to promote further use of the component by others).

## Rationale


## Known instances
* Large company

## Status
* DRAFT pattern (in progress)

## Author
* As told to Tim Yao