Skip to content

Commit 610581a

Browse files
committed
Merge branch 'master' of github.com:maxcapraro/InnerSourcePatterns
2 parents 626f66a + 0b1fca8 commit 610581a

29 files changed

+726
-169
lines changed

.github/CODEOWNERS

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# See GitHub documentation:
2+
# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
3+
4+
# This is a comment.
5+
# Each line is a file pattern followed by one or more owners.
6+
7+
# These owners will be the default owners for everything in
8+
# the repo. Unless a later match takes precedence,
9+
# @global-owner1 and @global-owner2 will be requested for
10+
# review when someone opens a pull request.
11+
* @lenucksi @nyeates @gruetter @NewMexicoKid @cewilliams
12+
13+
# Order is important; the last matching pattern takes the most
14+
# precedence. When someone opens a pull request that only
15+
# modifies JS files, only @js-owner and not the global
16+
# owner(s) will be requested for a review.
17+
# *.js @js-owner
18+
19+
# You can also use email addresses if you prefer. They'll be
20+
# used to look up users just like we do for commit author
21+
# emails.
22+
23+
24+
# In this example, @doctocat owns any files in the build/logs
25+
# directory at the root of the repository and any of its
26+
# subdirectories.
27+
# /build/logs/ @doctocat
28+
29+
# The `docs/*` pattern will match files like
30+
# `docs/getting-started.md` but not further nested files like
31+
# `docs/build-app/troubleshooting.md`.
32+
33+
34+
# In this example, @octocat owns any file in an apps directory
35+
# anywhere in your repository.
36+
# apps/ @octocat
37+
38+
# In this example, @doctocat owns any file in the `/docs`
39+
# directory in the root of your repository.
40+
# /docs/ @doctocat

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
name: Link Check on README.md
44

5-
on: push
5+
on: [push, pull_request]
66
jobs:
77
linkChecker:
88
runs-on: ubuntu-latest

30-day-warranty.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# Title
1+
## Title
22

33
30 Day Warranty
44

5-
# Context
5+
## Context
66

77
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.
88

99
- TBD: link to pattern "setting clear expectations for contributing code"
1010

11-
# Problem
11+
## Problem
1212

1313
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.
1414

15-
# Forces
15+
## Forces
1616

1717
- There is distrust of contributions due to a past history of cheating: teams
1818
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
3838
they are mitigated in a contribution; the system itself is somewhat brittle
3939
(may not be ways to fully test and catch all problems).
4040

41-
# Solution
41+
## Solution
4242

4343
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.
4444

@@ -48,35 +48,35 @@ Note that the warranty period could be 45, 60, or 100 days too. The duration may
4848

4949
<img alt="30 Day Warranty" src="/assets/img/thirtydaywarranty.jpg" width="70%">
5050

51-
# Resulting Context
51+
## Resulting Context
5252

5353
- The receiving team is willing to accept contributions and able to share the
5454
workload of initial adaptations/fixes.
5555
- Increased transparency and fairness.
5656
- Keeps escalations from becoming too heavyweight.
5757

58-
# Known Instances
58+
## Known Instances
5959

6060
This was tried and proven successful at PayPal.
6161

62-
# Authors
62+
## Authors
6363

6464
- Cedric Williams
6565

66-
# Acknowledgement
66+
## Acknowledgement
6767

6868
- Dirk-Willem van Gulik
6969
- Padma Sudarsan
7070
- Klaas-Jan Stol
7171
- Georg Grütter
7272

73-
# Status
73+
## Status
7474

7575
Proven
7676

7777
Drafted at the 2017 Spring InnerSource Summit; reviewed 18 July 2017.
7878

79-
# Variants
79+
## Variants
8080

8181
- Ensure cooperation of dependent teams by making them a community by having
8282
more than one, meritocratically appointed "[Trusted Committers](project-roles/trusted-committer.md)" (TCs) take responsibility.

README.md

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff 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.
24

35
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.
46

@@ -10,37 +12,37 @@ You are already using InnerSource in your company and want to share your ideas a
1012
[gh-how-to-use-patterns]: https://github.com/InnerSourceCommons/InnerSourcePatterns#how-can-you-use-inner-source-patterns
1113
[gh-contribute]: https://github.com/InnerSourceCommons/InnerSourcePatterns#how-to-contribute
1214

13-
# Mission Statement
15+
## Mission Statement
1416

1517
Our mission in this working group
1618
- Collect and document agreed upon best practices of how to do InnerSource - in the form of patterns
1719
- Continuously publish the most mature patterns as an ebook
18-
1920

20-
# List of Patterns
21+
## List of Patterns
2122

2223
The below lists all known patterns. They are grouped into four stages of maturity.
2324

24-
#### Reviewed Patterns (proven and reviewed)
25+
### Reviewed Patterns (proven and reviewed)
2526

2627
* [30 Day Warranty](30-day-warranty.md) - *a pattern for getting a reluctant code-owning team to accept code submissions from outside their team.*
2728
* [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.*
2829
* [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.*
2930
* [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.*
3031
* [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.*
3133
* [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.*
3234
* [Praise Participants](praise-participants.md) - *Thank contributors effectively to engender further engagement from them and to encourage others to contribute*
3335
* [Review Committee](review-committee.md) - *A formal review committee is setup within an org to "officiate" particular inner source projects with resources, etc.*
3436
* [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
3537
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.*
3638
* [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.*
3739

38-
#### Reviewed Pattern Ideas (not yet proven but reviewed)
40+
### Reviewed Pattern Ideas (not yet proven but reviewed)
3941

4042
* [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.*
4143
* [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.*
4244

43-
#### Pattern Drafts (proven, not yet fully reviewed)
45+
### Pattern Drafts (proven, not yet fully reviewed)
4446

4547
* [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.*
4648
* [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
5355
* [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.*
5456
* [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.*
5557

56-
#### Pattern Ideas (not yet proven; brainstormed)
58+
### Pattern Ideas (not yet proven; brainstormed)
5759

58-
* [Don't Bother Looking](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/60)
60+
* [Discover Your InnerSource](discover-your-innersource.md)
5961
* [Junkyard Styled Inner Sourcing](junkyard-styled-innersourcing.md)
6062
* [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.*
6163
* [Incentive Alignment](developer-incentive-alignment-for-innersource-contribution.md)
6264
* [Change the Developers Mindset](change-the-developers-mindset.md)
6365
* [Share Your Code to Get More Done - Likely Contributors Variant](share-your-code-to-get-more-done.md)
6466
* [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.*
6567

66-
#### Pattern Donuts (needing a solution)
68+
### Pattern Donuts (needing a solution)
6769

6870
* [How to Defeat the Hierarchical Constraints](defeat-hierarchical-constraints.md)
6971
* [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
7274
* [Bad Weather For Liftoff](bad-weather-for-liftoff.md)
7375
* [Get Contributions Despite Silo Thinking](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/38)
7476

75-
76-
# What are Inner Source Patterns?
77+
## What are InnerSource Patterns?
7778

7879
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.
7980

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
8182
* [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).
8283
* [Pattern Template File](meta/pattern-template.md) - View a skeleton inner source pattern to get an idea on what goes into a new pattern!
8384
* [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).
8485

85-
# How can you use Inner Source Patterns?
86+
## How can you use InnerSource Patterns?
8687

8788
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.
8889

8990
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).
9091

91-
92-
# How to Contribute?
92+
## How to Contribute?
9393

9494
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.
9595

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
11297

11398
* [A pattern language for pattern writing](http://hillside.net/index.php/a-pattern-language-for-pattern-writing), Meszaros and Doble
11499

115-
# Licensing
100+
## Licensing
116101

117102
![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/88x31.png)
118103

TRUSTED-COMMITTERS.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ Trusted committers (TCs) are those members of our working group who have elevate
44

55
## Current Trusted Committers
66

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)
1212

1313
## Process for Adding new Trusted Committers
1414

@@ -30,6 +30,6 @@ We follow this process (adapted from [here](https://tech.europace.de/voting-in-n
3030
* New TC is added to the #innersource-patterns-tcs channel
3131
* New TC is praised in the [#innersource-patterns](https://app.slack.com/client/T04PXKRM0/C2EFRTS6A) channel.
3232

33-
3433
## Admins
34+
3535
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.

bad-weather-for-liftoff.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,3 @@ Donut
4444
## Author(s)
4545

4646
* Georg Grütter, Wyane DuPont, Michael Dorner
47-
48-
## See Also
49-
50-
This pattern was originally created in this wiki and then ported here.
51-
Original wiki page:
52-
https://github.com/InnerSourceCommons/innersourcecommons.org/wiki/Donut:-Bad-weather-for-liftoff

change-the-developers-mindset.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,3 @@ Old status: Pattern Idea
5858
## See Also
5959

6060
This pattern has been moved for discussion at https://github.com/InnerSourceCommons/InnerSourcePatterns/issues/39
61-
62-
This pattern was originally created in this wiki and then ported here.
63-
Original wiki page:
64-
https://github.com/InnerSourceCommons/innersourcecommons.org/wiki/Pattern:-change-the-developers-mindset

contracted-contributor.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ hours, not during free time.
6262
which does not benefit his day-to-day work, the more will the workload for
6363
his teammates in his business unit increase.
6464
- Individual contributors will likely consider participating in InnerSource
65-
as an opportunity to enhance their professional netowrk within the company
65+
as an opportunity to enhance their professional network within the company
6666
and to gain knowledege and experience in the technical area of her
6767
contributions.
6868

@@ -113,7 +113,7 @@ A formal contracting is also beneficial for contributors and communities:
113113
- With a stable group of contributors, it is more likely that some of them will
114114
eventually achieve [Trusted Committer](project-roles/trusted-committer.md) status.
115115
- A formal contracting provides a basis for resolving conflict related to
116-
participation in InnerSource activities. Note that mediate will likely be
116+
participation in InnerSource activities. Note that mediation will likely be
117117
successful only for a few companies with a culture condusive to that.
118118

119119
## Known Instances

0 commit comments

Comments
 (0)