Skip to content

Commit 08f3d9c

Browse files
authored
Review patterns from Europace. Changes mostly focused on correct formatting in our gitbook. (#260)
In detail: - remove line-breaks in lists, as otherwise the list items don't use the full width of the book pages. extra line-breaks in lists may also lead to broken links - link to other patterns where possible - format file names with filename syntax - introducing sub-sections for both README.md and CONTRIBUTING.md - further minor typos and formatting inconsistencies
1 parent bd3299f commit 08f3d9c

File tree

6 files changed

+62
-159
lines changed

6 files changed

+62
-159
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ The below lists all known patterns. They are grouped into three [maturity levels
4040
* [Service vs. Library](patterns/2-structured/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
4141
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.*
4242
* [Trusted Committer](patterns/2-structured/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.*
43+
* [Standard Base Documentation](patterns/2-structured/project-setup/base-documentation.md) - *New contributors to an InnerSource project have a hard time figuring out who maintains the project, what to work on, and how to contribute. Providing documentation in standard files like README.md/CONTRIBUTING.md enables a self service process for new contributors, so that they can find the answers to the most common questions on their own.*
44+
* [Issue Tracker Use Cases](patterns/2-structured/project-setup/issue-tracker.md) - *The InnerSource host team fails to make not only plans and progress but also context for changes transparent. This is solved by increasing the use cases for the project issue tracker to also serve brainstorming, implementation discussion, and feature design.*
45+
* [Communication Tooling](patterns/2-structured/project-setup/communication-tooling.md) - *An InnerSource project is being used outside the original development team but users are having trouble getting help and getting in touch with the project team. The idea is to setup and document standard communication tooling that allows for discussions to become visible, archived and searchable.*
4346

4447
#### Pattern Drafts (proven, not yet fully reviewed)
4548

@@ -50,9 +53,6 @@ possible to either deploy the same service in independent environments with sepa
5053
* [Open Source Trumps InnerSource](https://github.com/InnerSourceCommons/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.*
5154
* [Start as Experiment](patterns/2-structured/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.*
5255
* [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.*
53-
* [Standard Base Documentation](patterns/2-structured/project-setup/base-documentation.md) - *New contributors to an InnerSource project have a hard time figuring out who maintains the project, what to work on, and how to contribute. Providing documentation in standard files like README.md/CONTRIBUTING.md enables a self service process for new contributors, so that they can find the answers to the most common questions on their own.*
54-
* [Issue Tracker Use Cases](patterns/2-structured/project-setup/issue-tracker.md) - *The InnerSource host team fails to make not only plans and progress but also context for changes transparent. This is solved by increasing the use cases for the project issue tracker to also serve brainstorming, implementation discussion, and feature design.*
55-
* [Communication Tooling](patterns/2-structured/project-setup/communication-tooling.md) - *An InnerSource project is being used outside the original development team but users are having trouble getting help and getting in touch with the project team. The idea is to setup and document standard communication tooling that allows for discussions to become visible, archived and searchable.*
5656

5757
### Maturity Level 1: Initial
5858

patterns/2-structured/project-setup/base-documentation.md

Lines changed: 28 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Standard Base Documentation
66

77
New contributors to an InnerSource project have a hard time figuring out who
88
maintains the project, what to work on, and how to contribute. Providing
9-
documentation in standard files like README.md/CONTRIBUTING.md enables a
9+
documentation in standard files like `README.md`/`CONTRIBUTING.md` enables a
1010
self service process for new contributors, so that they can find the answers to
1111
the most common questions on their own.
1212

@@ -30,40 +30,15 @@ speed quickly.
3030

3131
## Forces
3232

33-
- The project was converted into an InnerSource project only recently. Before,
34-
users were either only internal or on-boarded in personal face-to-face
35-
sessions. Equally, people working on the project went through personal
36-
on-boarding sessions which do not scale with growing numbers of contributors or
37-
remote contributors. As a result, self service documentation is lacking.
38-
- The project was newly created as an InnerSource project. However the host team
39-
lacks experience with InnerSource. As a result they need guidance on which
40-
information to include in their documentation, where to put that documentation
41-
so others can find it and which types of readers to address in their
42-
documentation.
43-
- The project was converted into an InnerSource project only recently, the host
44-
team has limited experience with InnerSource. As a result, existing
45-
documentation addresses a lot of technical aspects. It does not cover
46-
communication, coordination, information needed to facilitate transparent
47-
planning.
48-
- The project was converted into an InnerSource project only recently. As a
49-
result, a lot of implicit knowledge that exists within the team is neither
50-
written down nor obvious to contributors.
51-
- A lack of documentation leads to potential contributors taking a long time to
52-
get setup and get started. Producing documentation (and keeping it up to date)
53-
requires a time investment. Even if the host team relies on contributors to
54-
help with lacking documentation, those contributions still need time to review.
55-
- Project members are spending a lot of time answering getting started
56-
questions. Maintaining a comprehensive database of what could be considered
57-
support questions requires a lot of time and effort though.
58-
- Different teams within the organization have diverging standards for how to
59-
format source code and which software patterns to use. As a result
60-
contributions often end up getting re-written to a large part or even
61-
entirely. Standardizing all of that and enforcing the standard often
62-
would require a lot of time and work.
63-
- The added work for repeated explanations and re-writes diminishes the
64-
usefulness of the InnerSource approach.
65-
- Frequent escalations due to extra work and delays due to re-writes lead to a
66-
big cheese situation.
33+
- The project was converted into an InnerSource project only recently. Before, users were either only internal or on-boarded in personal face-to-face sessions. Equally, people working on the project went through personal on-boarding sessions which do not scale with growing numbers of contributors or remote contributors. As a result, self service documentation is lacking.
34+
- The project was newly created as an InnerSource project. However the host team lacks experience with InnerSource. As a result they need guidance on which information to include in their documentation, where to put that documentation so others can find it and which types of readers to address in their documentation.
35+
- The project was converted into an InnerSource project only recently, the host team has limited experience with InnerSource. As a result, existing documentation addresses a lot of technical aspects. It does not cover communication, coordination, information needed to facilitate transparent planning.
36+
- The project was converted into an InnerSource project only recently. As a result, a lot of implicit knowledge that exists within the team is neither written down nor obvious to contributors.
37+
- A lack of documentation leads to potential contributors taking a long time to get setup and get started. Producing documentation (and keeping it up to date) requires a time investment. Even if the host team relies on contributors to help with lacking documentation, those contributions still need time to review.
38+
- Project members are spending a lot of time answering getting started questions. Maintaining a comprehensive database of what could be considered support questions requires a lot of time and effort though.
39+
- Different teams within the organization have diverging standards for how to format source code and which software patterns to use. As a result contributions often end up getting re-written to a large part or even entirely. Standardizing all of that and enforcing the standard often would require a lot of time and work.
40+
- The added work for repeated explanations and re-writes diminishes the usefulness of the InnerSource approach.
41+
- Frequent escalations due to extra work and delays due to re-writes lead to a big cheese situation.
6742

6843
## Solution
6944

@@ -72,52 +47,40 @@ creating this documentation should be to make getting started as much a self
7247
service process as possible with frequently asked questions answered in standard
7348
documentation format.
7449

75-
If it does not yet exist, create a **README.md** for your project. It should
50+
### README.md
51+
52+
If it does not yet exist, create a `README.md` for your project. It should
7653
contain:
7754

78-
* The [mission of the
79-
project](https://producingoss.com/en/producingoss.html#mission-statement) in
80-
as a concise format as possible. It should answer what the project's purpose
81-
is and enable contributors to make a good first guess whether a suggested
82-
feature will likely be in scope for the project, or not.
83-
* A "Getting Started" section for downstream users of the project. It should
84-
explain how to setup/ integrate the project artifacts as well as an
85-
explanation of some of the first typical steps for first time users.
55+
* The [mission of the project](https://producingoss.com/en/producingoss.html#mission-statement) in as a concise format as possible. It should answer what the project's purpose is and enable contributors to make a good first guess whether a suggested feature will likely be in scope for the project, or not.
56+
* A "Getting Started" section for downstream users of the project. It should explain how to setup/ integrate the project artifacts as well as an explanation of some of the first typical steps for first time users.
8657
* Deeper documentation for project users - or a link to that.
87-
* Documentation needed for making modifications to the project - or a link to
88-
that.
58+
* Documentation needed for making modifications to the project - or a link to that.
8959
* Documentation on how to contribute to the project - or a link to that.
90-
* A "Getting involved" section that explains which public, archived, linkable
91-
communication channels the project uses. This should include a link to the
92-
project issue tracker, but also to any further discussion media used.
93-
* A "Who we are" section explaining who the Trusted Committers behind the
94-
project are - with an explanation that instead of contacting these people
95-
privately the public communication channels above should be used for
96-
communication.
97-
* An explanation of what the criteria are for the project to turn contributors
98-
into Trusted Committers - if that path exists.
60+
* A "Getting involved" section that explains which public, archived, linkable communication channels the project uses. This should include a link to the project issue tracker, but also to any further discussion media used.
61+
* A "Who we are" section explaining who the [Trusted Committers](../trusted-committer.md) behind the project are - with an explanation that instead of contacting these people privately the public communication channels above should be used for communication.
62+
* An explanation of what the criteria are for the project to turn contributors into Trusted Committers - if that path exists.
63+
64+
### CONTRIBUTING.md
9965

10066
If the explanation of the steps to make a contribution are too involved, create
101-
a separate **CONTRIBUTING.md** document. This document should answer frequently
67+
a separate `CONTRIBUTING.md` document. This document should answer frequently
10268
asked questions that contributors have asked in the past. There is no need to
10369
provide a comprehensive book up front. Rather, share information that has proven
10470
needed by contributors. Likely it will touch upon one or more of the following
10571
topics:
10672

10773
* How to checkout the project source code from version control.
108-
* How to make modifications to the project (potentially including information on
109-
coding guidelines.)
74+
* How to make modifications to the project (potentially including information on coding guidelines).
11075
* How to build the project.
111-
* How to run tests to make sure the above modifications aren't introducing new
112-
bugs.
76+
* How to run tests to make sure the above modifications aren't introducing new bugs.
11377
* How to submit your modifications back to the project.
11478
* Some information on which turnaround time to expect for modifications made.
11579

11680
![Brief picture of README.md and CONTRIBUTING.md content](./assets/base_docs_drawing.png)
11781

118-
119-
There are many of good examples for how to write a README.md and what kind
120-
of information to include in a CONTRIBUTING.md file in various open source projects.
82+
There are many of good examples for how to write a `README.md` and what kind
83+
of information to include in a `CONTRIBUTING.md` file in various open source projects.
12184
Pages like [how to write a readme that rocks](https://m.dotdev.co/how-to-write-a-readme-that-rocks-bc29f279611a),
12285
[Open Source Guide from GitHub](https://opensource.guide/) as well as
12386
the book [Producing Open Source](https://producingoss.com/en/producingoss.html)
@@ -137,10 +100,8 @@ started right away: [README-template.md](templates/README-template.md) and
137100
## Resulting Context
138101

139102
* The time for contributors to get up to speed is significantly reduced.
140-
* Time spent on answering initial questions for Trusted Committers is
141-
significantly reduced leaving them more time to work on other tasks.
142-
* Escalations due to misunderstandings and misalignment are significantly
143-
reduced.
103+
* Time spent on answering initial questions for [Trusted Committers](../trusted-committer.md) is significantly reduced, leaving them more time to work on other tasks.
104+
* Escalations due to misunderstandings and misalignment are significantly reduced.
144105

145106
## Known Instances
146107

@@ -151,8 +112,6 @@ started right away: [README-template.md](templates/README-template.md) and
151112

152113
* Isabel Drost-Fromm
153114

154-
## Acknowledgements
155-
156115
## Alias
157116

158117
Provide standard base documentation through a README

patterns/2-structured/project-setup/communication-tooling.md

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,9 @@ answer.
2525

2626
## Forces
2727

28-
- The host team is interested in receiving contributions and willing to mentor
29-
contributors.
30-
- Teams have a strong verbal communication culture and are inexperienced with
31-
setting up project specific asynchronous communication channels.
32-
- Communication channels may be aligned with specific groups that should be
33-
reached but not by communication purpose.
28+
- The host team is interested in receiving contributions and willing to mentor contributors.
29+
- Teams have a strong verbal communication culture and are inexperienced with setting up project specific asynchronous communication channels.
30+
- Communication channels may be aligned with specific groups that should be reached but not by communication purpose.
3431

3532
## Solution
3633

@@ -42,24 +39,14 @@ The goal when streamlining communication channels for InnerSource projects
4239
should be to align communication around topics, not around certain sets of
4340
people:
4441

45-
- The project should have it's own issue tracker where structured communication,
46-
decision making and progress tracking can happen transparently for all host
47-
team members but also for downstream users and contributors to follow.
48-
- The project should have one or more discussion channels that come with less
49-
rigid a structure. Typically this will be mailing lists, online forums or even
50-
archived chat channels. Usually it is enough to start with just one channel
51-
for the project, if traffic increases too much it's helpful to split
52-
discussions around project usage from discussions around project development.
53-
- In addition the project should have one private channel where sensitive
54-
communication can happen between Trusted Committers - e.g. adding further
55-
Trusted Committers to the host team. This channel should be used with great
56-
care such that communication defaults to open and is kept private only under
57-
very rare circumstances.
42+
- The project should have it's own issue tracker where structured communication, decision making and progress tracking can happen transparently for all host team members but also for downstream users and contributors to follow.
43+
- The project should have one or more discussion channels that come with less rigid a structure. Typically this will be mailing lists, online forums or even archived chat channels. Usually it is enough to start with just one channel for the project, if traffic increases too much it's helpful to split discussions around project usage from discussions around project development.
44+
- In addition the project should have one private channel where sensitive communication can happen between [Trusted Committers](../trusted-committer.md) - e.g. adding further Trusted Committers to the host team. This channel should be used with great care such that communication defaults to open and is kept private only under very rare circumstances.
5845

5946
While communication can happen outside of written channels, as much information
6047
as possible should be brought back to the asynchronous channels.
6148

62-
All communication channels should be documented in the project README.md The
49+
All communication channels should be documented in the project `README.md`. The
6350
host team members need to make an effort to direct questions that they receive
6451
personally back to official communication channels.
6552

0 commit comments

Comments
 (0)