Skip to content

Commit d906423

Browse files
authored
Merge branch 'master' into rrrutledge-patch-3
2 parents e4cd775 + 73257d4 commit d906423

9 files changed

+292
-7
lines changed

30-day-warranty.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Teams depends on another team accepting their contributions so that a component
1010

1111
# Problem
1212

13-
A team developing a component which is used throughout an organization is resisting to accept or rejects contributions (feature requests) and as a result blocks progress or is disrupted by frequent escalations.
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.
1414

1515
# Forces
1616

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ The below lists all known patterns. They are grouped into four stages of maturit
1212
* [Contracted Contributor](https://github.com/paypal/InnerSourcePatterns/blob/master/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.*
1313
* [Dedicated Community Leader](https://github.com/paypal/InnerSourcePatterns/blob/master/dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.*
1414
* [Review Committee](https://github.com/paypal/InnerSourcePatterns/blob/master/review-committee.md) - *A formal review committee is setup within an org to "officiate" particular inner source projects with resources, etc.*
15+
* [Service vs. library: It's inner source, not inner deployment](https://github.com/paypal/InnerSourcePatterns/blob/master/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
16+
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.*
1517

1618
#### Reviewed Pattern Ideas (not yet proven but reviewed)
1719

@@ -25,9 +27,9 @@ The below lists all known patterns. They are grouped into four stages of maturit
2527
* [What Before How or Services Documentation](https://docs.google.com/document/d/1_N1wsQeDusfIcNy-O2ZXenY3PL7ZbvkUDRZxGUuegZw/edit?usp=drive_web) - *A lack of common understanding between different management tiers creates funding barriers and increases the risk that solutions will not deliver required business outcomes.*
2628
* [Overcome Acquisition Based Silos - Developers](https://github.com/paypal/InnerSourceCommons/wiki/Overcome-Acquisition-based-Silos)
2729
* [Overcome Acquisition Based Silos - Managers](https://github.com/paypal/InnerSourceCommons/wiki/Overcome-Acquisition-based-Silos)
28-
* [Open Source Trumps InnerSource](https://github.com/paypal/InnerSourcePatterns/pull/46)
30+
* [Open Source Trumps InnerSource](https://github.com/paypal/InnerSourcePatterns/pull/46) - *People find the InnerSource project but, after all things are considered, even if the InnerSource component meets their needs, they still go with the open source component.*
2931
* [Overcoming Project Management Time Pressures](https://github.com/paypal/InnerSourcePatterns/pull/47)
30-
* [Start as Experiment](https://github.com/paypal/InnerSourcePatterns/pull/66) - *An inner source initiative is considered but not started, because management is unsure about its outcome and therefore unwilling to commit to the investment.*
32+
* [Start as Experiment](https://github.com/paypal/InnerSourcePatterns/blob/master/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.*
3133
* [Include Product Owners](https://github.com/paypal/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.*
3234

3335
#### Pattern Ideas (not yet proven; brainstormed)

dedicated-community-leader.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ If a company does not significantly invest in the initial InnerSource community
3131

3232
The value contribution of InnerSource projects will not be obvious for many managers which are steeped in traditional project management methods. Those managers are less likely to assign one of their top people, who are usually in high demand by non InnerSource-projects, to an InnerSource project for a significant percentage of their work time.
3333

34-
Communication takes up a significant percentage of a community managers daily work. At the same time, he or she will likely also have to spearhead the initial development, too. In the face of limited capacity, inexperienced leaders will tend to focus on development and neglect communication. The barrier for potential contributors to make their first contribution and to commit to the community will be much higher if the community leader is hard to reach or is slow to respond to feedback and questions for lack of time. Furthermore, technically inexperienced leaders will most likely have a harder time to attract and retain highly experienced contributors than a top performer with a high degree of visibility within a company would have.
35-
r
34+
Communication takes up a significant percentage of a community managers daily work. At the same time, he or she will likely also have to spearhead the initial development, too. In the face of limited capacity, inexperienced leaders will tend to focus on development and neglect communication. The barrier for potential contributors to make their first contribution and to commit to the community will be much higher if the community leader is hard to reach or is slow to respond to feedback and questions for lack of time. Furthermore, technically inexperienced leaders will most likely have a harder time to attract and retain highly experienced contributors than a top performer with a high degree of visibility within a company would have.
3635

3736
If a community can not grow fast enough and pick up enough speed, chances are they won't be able to convincingly demonstrate the potential of InnerSource.
3837

discover-your-innersource.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,4 +67,4 @@ Brainstormed pattern idea in progress
6767
* Tim Yao
6868

6969
## Acknowledgements
70-
* Contributions from Russ Ruttledge, Ofer Hermoni and Robert Hanmer
70+
* Contributions from Russ Rutledge, Ofer Hermoni and Robert Hanmer

introducing-metrics-in-innersource.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
**Note: This pattern is currently under development in [this Pull
2+
Request](https://github.com/paypal/InnerSourcePatterns/pull/83)**
3+
4+
## Title
5+
6+
Introducing Metrics in the InnerSource Initiative
7+
8+
## Patlet
9+
10+
Involve all stakeholders in designing and interpreting metrics to measure the
11+
current status in terms of _health_ and performance of the InnerSource
12+
initiative.
13+
14+
15+
16+

meta/pattern-template.md

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

44
## Patlet
5-
Concise 1-2 sentance description of the problem and solution. Readers may quickly review dozens of these patlets to discover and browse the larger library of patterns. From http://wiki.c2.com/?PatLet
5+
Concise 1-2 sentence description of the problem and solution. Readers may quickly review dozens of these patlets to discover and browse the larger library of patterns. From http://wiki.c2.com/?PatLet
66

77
## Problem
88
What is the problem - crisp definition of the problem. Short description, usually not more than a couple sentances, that describes what the issues and challenges are. Be careful not to morph into information found in other sections below.

praise-participants.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
## Title
2+
Praise Participants
3+
4+
## Patlet
5+
After an inner source contribution, it's important to thank the contributor for their time and effort.
6+
This pattern gives guidance that not only effectively acknowledges the contribution but also endgenders further engagement from the contributor and others.
7+
8+
## Problem
9+
How can we properly express our gratitude to a contributor for their inner source contribution to a project?
10+
It can be easy to forget to do so or not know the words or medium to use for adequate effect and sincerity.
11+
Praise and thanks are easy, affordable ways to keep contributors and their managers motivated and excited to continue.
12+
A pattern in this area makes it easy to do and ensures that the message comes across clearly and sincerely.
13+
14+
## Context
15+
* You are the trusted committer or maintainer on an inner source project.
16+
* You value the community of contributors and want to maintain and grow it.
17+
18+
## Forces
19+
* You are busy, which makes it easy to forget some of the soft touches like praise and thanks.
20+
* You may not be someone that is comfortable in social situations or good with words.
21+
* Peer recognition is very important to job satisfaction and career development.
22+
23+
## Solutions
24+
It feels good to anyone to be recognized by others.
25+
In a professional setting, increased recognition is also an avenue to increased influence and growth.
26+
Any time someone gives to your inner source project, recognize them with a sincere and qualified "thank you".
27+
28+
For non-trivial contributions (all code contributions and also significant time contributions), say thank you via the following mechanisms:
29+
30+
1. Call out the person by name in any chat location (e.g. _Slack_) where you organize your project activity. Let everyone know what they did and thank them publicly. Example:
31+
32+
> Everyone @here give a high-five to @andrew.clegg for updating the _rcs-viewer_ to the latest version of the _hebo-client_ (https://github.com/rcs/rcs-viewer/pull/81).
33+
Thanks for helping keep this library up-to-date, Andy!
34+
35+
2. Send an email to them and their manager (cc'd) privately thanking them for the contribution.
36+
For code contributions often-times you can just forward the merge notification mail. Example:
37+
38+
> Hi, Andy, I want to thank you again for making this update.
39+
It may have been a small amount of time, but it's attention like this from each person that make the RCS project work for all of us.
40+
Thanks for solving your own problem in a way that also makes the _rcs-viewer_ better for everyone.
41+
42+
## Resulting Context
43+
Feedback like this leaves the contributor with a fantastic feeling and ready to come back for more.
44+
Combining **both** forms of thanks gives them recognition in front of their peers (breadth) and in front of their direct manager (depth).
45+
There's a subtle encouragement for those peers in chat to consider contributing themselves and for that manager to look for appropriate circumstances to encourage their other direct reports to do the same.
46+
Additionally, awareness of the inner source project spreads to the manager, who may have previously not known of the team's use and involvement with it.
47+
48+
One caveat - keep it real.
49+
Make sure that your words stem from the sincere thanks that you feel inside for what they've done.
50+
Keep the level and verbosity of praise appropriate to their level of involvement.
51+
Overdoing it may feel insincere and mechanical and defeat your purpose in reaching out.
52+
53+
## Known instances
54+
55+
* Nike (multiple projects)
56+
57+
## Author(s)
58+
59+
* Russ Rutledge
60+
61+
## Acknowledgements
62+
63+
* [Todd Lisonbee](https://github.com/tlisonbee) for encouraging to "keep it real".
64+
* [Isabel Drost-Fromm](https://github.com/MaineC) for [this extra explanation](https://youtu.be/h3MPewsk5PU?t=357) of a "qualified" thank you.

service-vs-library.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
## Title
2+
Service vs. library: It's inner source, not inner deployment
3+
4+
## Patlet
5+
Teams in a DevOps environment may be reluctant to work across team boundaries on
6+
common code bases due to ambiguity over who will be responsible for
7+
responding to service downtime. The solution is to realize that often it's
8+
possible to either deploy the same service in independent environments with
9+
separate escalation chains in the event of service downtime or factor a lot of
10+
shared code out into one library and collaborate on that.
11+
12+
## Problem
13+
14+
When teams are working in a DevOps environment developers are responsible for a
15+
feature end-to-end: From the customer down to deployment, maintenance and
16+
support. This poses a challenge when working across team boundaries: Escalation
17+
chains may not be the same for errors happening in either team. Coupling
18+
source code and deployment leaves the teams with the question of who is
19+
responsible for on-call support in the event of errors. As a result teams are
20+
reluctant to join forces even if there is significant overlap in requirements.
21+
22+
## Context
23+
24+
Teams are working in a micro-services environment.
25+
26+
They are organised in full functional DevOps teams: Each team is responsible for
27+
their contributions end-to-end, including maintenance, on-call and customer
28+
support.
29+
30+
A team is tasked with providing a service to their downstream customers that is
31+
fairly similar to an existing service built by another team.
32+
33+
## Forces
34+
35+
Organisational escalation paths may be different for each of the teams.
36+
37+
Members of each team may be unwilling to answer on-call support for errors that
38+
do not affect their own downstream customers.
39+
40+
Severity levels for the same types of errors may be different across team
41+
boundaries due to different SLA definitions per team/customer relationship.
42+
43+
## Solutions
44+
45+
Decouple responsibility for source code from deployment: Both teams work to
46+
identify exactly where there is overlap and synergies.
47+
48+
Only shared source code is kept as part of the InnerSource project with shared
49+
responsiblity.
50+
51+
Decouple configuration and deployment pipelines from actual business logic.
52+
Establish a second deployment of the service for the second team.
53+
54+
Treat the common base as a library that is used by both teams with shared code
55+
ownership.
56+
57+
## Resulting Context
58+
59+
Teams are willing to collaborate, benefitting from sharing the work of
60+
implementing the business logic.
61+
62+
A service that originally was built specifically to work in one environment is
63+
converted into a more general solution based on a specific business requirement.
64+
65+
Both teams get to know their respective escalation policy and deployment setup,
66+
potentially identifying improvements for their own setup.
67+
68+
The likelihood that changes are needed and made in the shared source code
69+
increases, leading to more frequent oportunities to refine, improve and optimise
70+
the implementation.
71+
72+
## See also
73+
74+
Related to this pattern is the [Thirty day warrenty](https://github.com/paypal/InnerSourcePatterns/blob/master/30-day-warranty.md) pattern that takes a different approach to solving the forces described above.
75+
76+
## Known instances
77+
78+
Europace AG
79+
80+
## Author(s)
81+
82+
Isabel Drost-Fromm
83+
84+
## Acknowledgements
85+
86+
Thank you Tobias Gesellchen for review internal to Europace AG.
87+

start-as-experiment.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
# Title
2+
3+
Start as an Experiment
4+
5+
# Patlet
6+
7+
Start your InnerSource initiative as a time limited experiment to make it
8+
easier for managers unfamiliar with InnerSource to endorse and support the
9+
initiative.
10+
11+
# Problem
12+
13+
An InnerSource initiative is considered but not started because management is
14+
unsure about its outcome and, as a result, is not willing to commit to an
15+
investment.
16+
17+
# Context
18+
19+
The company is considering to leverage InnerSource to increase the efficiency
20+
of collaboration on software projects. However, most managers are not familiar
21+
with the Open Source working model and are instead accustomed to hierarchical,
22+
top-down control style management. The idea of InnerSource is very popular with
23+
software developers in the company, not the least because many developers use
24+
or are actively developing Open Source software.
25+
26+
# Forces
27+
28+
- Managers will want to validate the claims of improved collaboration through
29+
InnerSource before making a long term investment. This usually involves
30+
measuring the improvements.
31+
- If the InnerSource initiative will likely have a huge uptake among developers
32+
and if many projects are likely to rely on it, a decision to shut it down
33+
will be very unpopular and therefore hard to make. The perceived resulting
34+
loss of control might deter some managers to even start with InnerSource.
35+
- Implementing InnerSource style working models are often a radically departure
36+
from previously practiced working models. It is therefore likely, that
37+
existing, mandatory processes are no longer applicable and that appropriate
38+
governing processes are missing. The result might be that one has to operate
39+
in a regulatory, sometimes legal no-mans land. Examples are tax and export
40+
control related regulations in large corporations with multiple legal
41+
entities in multiple countries.
42+
43+
# Solution
44+
45+
Declare the InnerSource initiative as a time limited experiment. Define and
46+
communicate the criteria for projects to join the InnerSource experiment. The
47+
criteria should be chosen such that they maximize the chances of building a
48+
healthy InnerSource community around the selected InnerSource projects. They
49+
should also help to ensure that the setting of the projects is such that they
50+
can later be used to gain externally valid insights into the effects of
51+
applying InnerSource. Examples for such criteria are
52+
53+
- Sufficient geographical distribution of developers
54+
- Sufficient departmental mix of developers,
55+
- Openness of communication within community,
56+
- Career path based on merit within community,
57+
- Democratic decision making within community.
58+
59+
Consider designating the end of the experiment a _pivot_, _change_ or _pause_
60+
point to re-evaluate. Also consider establishing a [Review
61+
Committee](review-committee.md) to increase the chances of management buy-in
62+
through participation. Depending on company culture, it might be helpful to
63+
accompany the experiment with appropriate metrics [First Steps With
64+
Metrics](introducing-metrics-in-innersource.md). If the projects in the
65+
experiment don't provide a direct impact on the companies revenue, consider
66+
introducing [Cross Team Valuation](crossteam-project-valuation.md) to highlight
67+
their value contributions.
68+
69+
# Resulting Context
70+
71+
Managers are able to kick start InnerSource for the following reasons:
72+
73+
- The experimental setup eases the need of managers to scrutinize the
74+
InnerSource program numbers in the same way that they would for typical
75+
projects.
76+
- The possibility of failure of the experiment is understood and accepted. The
77+
personal risk for the supporting managers is minimized.
78+
- Even in case of a failure, the setup ensures that the company will learn from
79+
the experiment.
80+
- In case of success, the data gathered during the experiment will allow
81+
managers to make a longer lasting commitment to InnerSource.
82+
83+
Participants in the InnerSource experiment are now conscious of the fact that
84+
they have to prove to management that InnerSource yields the promised benefits.
85+
It will therefore help to focus work on those activites which provide the most
86+
demonstrable value thus increasing the chances of success.
87+
88+
Finally, starting as an experiment makes it much easier to sidestep regulations
89+
and forces such as tool and process policies which could decrease the chances
90+
of success.
91+
92+
# Related Patterns
93+
94+
- _Trial Run_ (from the book [_Fearless
95+
Change_](http://www.fearlesschangepatterns.com/))
96+
97+
# Known Instances
98+
99+
- Robert Bosch GmbH (globally distributed software development)
100+
101+
# Author
102+
103+
- Georg Grütter (Robert Bosch GmbH)
104+
105+
# Status
106+
107+
Proven Pattern
108+
109+
# Acknowledgements
110+
111+
- Jason Zink (Robert Bosch GmbH)
112+
- Diogo Fregonese (Robert Bosch GmbH)
113+
- Robert Hansel (Robert Bosch GmbH)
114+
- Hans Malte Kern (Robert Bosch GmbH)
115+
- Russ Rutledge (Nike)
116+
- Tim Yao (Nokia)
117+
- Clint Cain (Optum)

0 commit comments

Comments
 (0)