You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 30-day-warranty.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,18 @@
1
-
# Title
1
+
##Title
2
2
3
3
30 Day Warranty
4
4
5
-
# Context
5
+
##Context
6
6
7
7
Teams depend on another team accepting their contributions so that a component produced by the receiving team can be used by the contributing team. The receiving team does not have the resources, knowledge, permission, and/or inclination to write the contributed component.
8
8
9
9
- TBD: link to pattern "setting clear expectations for contributing code"
10
10
11
-
# Problem
11
+
##Problem
12
12
13
13
A team develops a component which is used throughout an organization. This team resists accepting or outright rejects contributions (feature requests). This behavior blocks progress and leads to frequent disruption from escalations.
14
14
15
-
# Forces
15
+
##Forces
16
16
17
17
- There is distrust of contributions due to a past history of cheating: teams
18
18
submitted half finished contributions and subsequently filed requests for
@@ -38,7 +38,7 @@ A team develops a component which is used throughout an organization. This team
38
38
they are mitigated in a contribution; the system itself is somewhat brittle
39
39
(may not be ways to fully test and catch all problems).
40
40
41
-
# Solution
41
+
##Solution
42
42
43
43
Address the fears of both the receiving and the contributing teams by establishing a 30 day period starting with the time the contributed code goes into production, during which the contributing team consents to provide bug fixes to the receiving team.
44
44
@@ -48,35 +48,35 @@ Note that the warranty period could be 45, 60, or 100 days too. The duration may
48
48
49
49
<imgalt="30 Day Warranty"src="/assets/img/thirtydaywarranty.jpg"width="70%">
50
50
51
-
# Resulting Context
51
+
##Resulting Context
52
52
53
53
- The receiving team is willing to accept contributions and able to share the
54
54
workload of initial adaptations/fixes.
55
55
- Increased transparency and fairness.
56
56
- Keeps escalations from becoming too heavyweight.
57
57
58
-
# Known Instances
58
+
##Known Instances
59
59
60
60
This was tried and proven successful at PayPal.
61
61
62
-
# Authors
62
+
##Authors
63
63
64
64
- Cedric Williams
65
65
66
-
# Acknowledgement
66
+
##Acknowledgement
67
67
68
68
- Dirk-Willem van Gulik
69
69
- Padma Sudarsan
70
70
- Klaas-Jan Stol
71
71
- Georg Grütter
72
72
73
-
# Status
73
+
##Status
74
74
75
75
Proven
76
76
77
77
Drafted at the 2017 Spring InnerSource Summit; reviewed 18 July 2017.
78
78
79
-
# Variants
79
+
##Variants
80
80
81
81
- Ensure cooperation of dependent teams by making them a community by having
82
82
more than one, meritocratically appointed "[Trusted Committers](project-roles/trusted-committer.md)" (TCs) take responsibility.
Copy file name to clipboardExpand all lines: README.md
+18-33Lines changed: 18 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,6 @@
1
-
This repository contains the InnerSource Patterns collected by the [InnerSource Commons][isc-website]. These patterns are InnerSource best practices codified in a specific format to make it easy to understand, evaluate, and reuse them.
1
+
# InnerSource Patterns
2
+
3
+
This repository contains the InnerSource Patterns collected by the [InnerSource Commons][isc-website]. These patterns are InnerSource best practices codified in a specific format to make it easy to understand, evaluate, and reuse them.
2
4
3
5
Below you find [what a pattern is][gh-what-are-patterns], a [list of known patterns][gh-list-of-patterns], and [how to use these patterns][gh-how-to-use-patterns] in your organization.
4
6
@@ -10,37 +12,37 @@ You are already using InnerSource in your company and want to share your ideas a
- Collect and document agreed upon best practices of how to do InnerSource - in the form of patterns
17
19
- Continuously publish the most mature patterns as an ebook
18
-
19
20
20
-
# List of Patterns
21
+
##List of Patterns
21
22
22
23
The below lists all known patterns. They are grouped into four stages of maturity.
23
24
24
-
####Reviewed Patterns (proven and reviewed)
25
+
### Reviewed Patterns (proven and reviewed)
25
26
26
27
*[30 Day Warranty](30-day-warranty.md) - *a pattern for getting a reluctant code-owning team to accept code submissions from outside their team.*
27
28
*[Common Requirements](common-requirements.md) - *Common code in a shared repository isn't meeting the needs of all the project-teams that want to use it; this is solved through requirements alignment and refactoring.*
28
29
*[Contracted Contributor](contracted-contributor.md) - *Associates wanting to contribute to InnerSource are discouraged from doing so by their line management. Relief is provided by formal contracts and agreements.*
29
30
*[Dedicated Community Leader](dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.*
30
31
*[Gig Marketplace](gig-marketplace.md) - *Establish a marketplace by creating an intranet website that lists specific InnerSource project needs as "Gigs" with explicit time and skill requirements. This will enable managers to better understand their employee’s time commitment and professional benefits thereby increasing the likelihood of garnering approval to make InnerSource contributions.*
32
+
*[InnerSource License](innersource-license.md) - *Two legal entities that belong to the same organization want to share software source code with each other but they are concerned about the implications in terms of legal liabilities or cross-company accounting. An **InnerSource License** provides a reusable legal framework for the sharing of source code within the organization. This opens up new collaboration options, and makes the rights and obligations of the involved legal entities explicit.*
31
33
*[InnerSource Portal](innersource-portal.md) - *Create an intranet website that indexes all available InnerSource project information. This will enable potential contributors to more easily learn about projects that might interest them and for InnerSource project owners to attract an outside audience.*
32
34
*[Praise Participants](praise-participants.md) - *Thank contributors effectively to engender further engagement from them and to encourage others to contribute*
33
35
*[Review Committee](review-committee.md) - *A formal review committee is setup within an org to "officiate" particular inner source projects with resources, etc.*
34
36
*[Service vs. library: It's inner source, not inner deployment](service-vs-library.md) - *Teams in a DevOps environment may be reluctant to work across team boundaries on common code bases due to ambiguity over who will be responsible for responding to service downtime. The solution is to realize that often it's
35
37
possible to either deploy the same service in independent environments with separate escalation chains in the event of service downtime or factor a lot of shared code out into one library and collaborate on that.*
36
38
*[Trusted Committer](project-roles/trusted-committer.md) - *Many inner-source projects will find themselves in a situation where they consistently receive feedback, features, and bug-fixes from contributors. In these situations project maintainers seek ways to recognize and reward the work of the contributor above and beyond single contributions.*
37
39
38
-
####Reviewed Pattern Ideas (not yet proven but reviewed)
40
+
### Reviewed Pattern Ideas (not yet proven but reviewed)
39
41
40
42
*[Modular Code](modular-code.md) - *Management does not want to spend the extra resources needed to develop modular components and make them available in a visible repository for others to use.*
41
43
*[Improve Findability](improve-findability.md) - *People can't find the internally developed solutions that they need due to poor naming conventions. This causes frustration in finding inner source solutions and a reduction in code reuse.*
42
44
43
-
####Pattern Drafts (proven, not yet fully reviewed)
45
+
### Pattern Drafts (proven, not yet fully reviewed)
44
46
45
47
*[Assisted Compliance](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/74) - *Helping repo owners be compliant by writing their CONTRIBUTING.md for them as a pull request.*
46
48
*[Cross-Team Project Valuation](crossteam-project-valuation.md) - *It's hard to sell the value of cross-team, inner sourced projects that don't provide a direct impact on company revenue. Here's a data-driven way to represent your project that both articulates its value and amplifies it.*
@@ -53,17 +55,17 @@ possible to either deploy the same service in independent environments with sepa
53
55
*[Start as Experiment](start-as-experiment.md) - *An inner source initiative is considered but not started, because management is unsure about its outcome and therefore unwilling to commit to the investment.*
54
56
*[Include Product Owners](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/71) - *Key Performance Indicators (KPIs) for Product Owners are primarily product focused, and don't consider areas such as collaborative development. This results in a lower level of engagement with inner source projects.*
*[Shared Code Repo Different from Build Repo](shared-code-repo-different-from-build-repo.md) - *Deal with the overhead of having shared code in a separate repository that isn't the same as the project-specific one that is tied to production builds.*
*[Change the Developers Mindset](change-the-developers-mindset.md)
63
65
*[Share Your Code to Get More Done - Likely Contributors Variant](share-your-code-to-get-more-done.md)
64
66
*[Introducing Metrics in InnerSource](introducing-metrics-in-innersource.md) - *Involve all stakeholders in designing and interpreting metrics to measure the current status in terms of health and performance of the InnerSource initiative.*
65
67
66
-
####Pattern Donuts (needing a solution)
68
+
### Pattern Donuts (needing a solution)
67
69
68
70
*[How to Defeat the Hierarchical Constraints](defeat-hierarchical-constraints.md)
69
71
*[Project Management Time Pressures](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/47)
@@ -72,47 +74,30 @@ possible to either deploy the same service in independent environments with sepa
72
74
*[Bad Weather For Liftoff](bad-weather-for-liftoff.md)
Patterns are a way of describing a repeatable, proven solution to a problem with a context. They follow a simple form that helps people wanting to implement the solution to understand the constraints on the problem, the forces that must be balanced and the resulting context (the situation you are left with after the solution is applied). In inner sourcing, patterns can provide a way for the InnerSource Commons participants to concisely share information with each other, improving the practice of inner sourcing. Each of the patterns are divided into Title, Problem Statement, Context, Forces, and Solutions as their main sections.
79
80
80
-
*[`What are patterns?` Youtube videos](http://bit.ly/innersource_patterns_videos) - Watch a set of 2-5 min youtube videos explaining Inner Source Patterns
81
+
*[`What are patterns?` Youtube videos](http://bit.ly/innersource_patterns_videos) - Watch a set of 2-5 min youtube videos explaining InnerSource Patterns
81
82
*[Pattern Discussion Webinar](https://youtu.be/i-0IVhfRVFU) - We held a webinar 2017-03-16 to live-discuss a donut pattern (go to 24:30 for the discussion). This is an illustration of the review process we follow. Also see the [June 1, 2017 O'Reilly Webinar on InnerSource Patterns](http://www.oreilly.com/pub/e/3884).
82
83
*[Pattern Template File](meta/pattern-template.md) - View a skeleton inner source pattern to get an idea on what goes into a new pattern!
83
84
*[Introduction to InnerSource Patterns (2016 Fall Summit presentation)](https://drive.google.com/open?id=0B7_9iQb93uBQbnlkdHNuUGhpTXc) - *Tim Yao and Padma Sudarsan* (PDF). Detailed pattern background and examples -- Get a detailed understanding of why and how to interact with our patterns. Also see the [Introduction to InnerSource Patterns (2017 Fall Summit)](https://drive.google.com/open?id=0B7_9iQb93uBQWmYwMFpyaGh4OFU)*Tim Yao and Bob Hanmer* (PDF).
84
85
85
-
# How can you use Inner Source Patterns?
86
+
##How can you use InnerSource Patterns?
86
87
87
88
Patterns must be used in a thoughtful manner. They cannot be blindly applied. In most cases, you will need to adapt the given solution to your own situation; but the information given in the pattern, defining the context (immovable constraints) and forces (constraints that can be changed and balanced against each other), should help you do this. Note that you will also need to determine if there are additional constraints (company context and company forces) that apply to your particular company/organization that must be added to the pattern (as a kind of filter). These additional constraints may require additional solution steps to be applied.
88
89
89
90
The pattern form is useful for describing proven patterns but it can also be used for *brainstorming solutions* where patterns are not yet established, since the form gives a structured way for thinking about a problem. You could also create a *donut pattern* (filling in the problem, context, forces and resulting context fields but leaving the solution blank) as a way of asking the InnerSource Commons community for help (to find a proven solution or to brainstorm things to try).
90
91
91
-
92
-
# How to Contribute?
92
+
## How to Contribute?
93
93
94
94
We welcome your contribution - be it small or huge! To learn more about how you can become a contributor, please see our [CONTRIBUTING.md](CONTRIBUTING.md) file.
95
95
96
-
97
-
# Pattern Meta Info
98
-
99
-
The topics below cover information about how we define, operate, and upkeep this collection of patterns.
100
-
101
-
*[Pattern Template](meta/pattern-template.md) - Start a new pattern with a copy of this
102
-
*[Pattern States](meta/pattern-states.md) - Definitions of the various states and review steps a pattern can be in
103
-
*[Pattern System](pattern-system.md) (draft) For a human reader it is not easy to digest a long list of patterns. We are working on labeling and classifying the patterns further. See [Pattern System](pattern-system.md) for our current thoughts.
104
-
*[Trusted Committers](TRUSTED-COMMITTERS.md) - Who these people are, what elevated rights they get, and how you can become one
105
-
*[Publishing](meta/publishing.md) - How we take completed, reviewed, proven patterns and publish them toward an online book
106
-
*[Markdown Info](meta/markdown-info.md) - Markdown is the ascii text format our patterns are written in; this document briefly defines how we use it
107
-
*[Contributing](CONTRIBUTING.md) - How to interact with our group, create your own patterns, or take part in our review-process; Github / Web centric instructions
108
-
*[Alternate Command-line steps](meta/technical-git-howto.md) - If you want to contribute a pattern using `git` from the command-line, this is your document
109
-
*[Meetings](meta/meetings.md) - Become involved with the people and communications of the Inner Source Patterns group
110
-
111
-
# Related References
96
+
## Related References
112
97
113
98
*[A pattern language for pattern writing](http://hillside.net/index.php/a-pattern-language-for-pattern-writing), Meszaros and Doble
Copy file name to clipboardExpand all lines: TRUSTED-COMMITTERS.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,11 @@ Trusted committers (TCs) are those members of our working group who have elevate
4
4
5
5
## Current Trusted Committers
6
6
7
-
*@lenucksi
8
-
*@nyeates
9
-
*@gruetter
10
-
*@NewMexicoKid
11
-
*@cewilliams
7
+
*[@lenucksi](https://github.com/lenucksi)
8
+
*[@nyeates](https://github.com/nyeates)
9
+
*[@gruetter](https://github.com/gruetter)
10
+
*[@NewMexicoKid](https://github.com/NewMexicoKid)
11
+
*[@cewilliams](https://github.com/cewilliams)
12
12
13
13
## Process for Adding new Trusted Committers
14
14
@@ -30,6 +30,6 @@ We follow this process (adapted from [here](https://tech.europace.de/voting-in-n
30
30
* New TC is added to the #innersource-patterns-tcs channel
31
31
* New TC is praised in the [#innersource-patterns](https://app.slack.com/client/T04PXKRM0/C2EFRTS6A) channel.
32
32
33
-
34
33
## Admins
34
+
35
35
A handful of individuals are currently the technical GitHub Admins for this repository. This includes most members of the InnerSource Commons' #tech-infra team and members of the [InnerSource Commons GitHub Organization](https://github.com/innersourcecommons). However, please channel working group-specific requests through the trusted committers.
0 commit comments