diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index c426727c9..cb7753883 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -8,7 +8,7 @@
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
-* @lenucksi @nyeates @gruetter @NewMexicoKid @cewilliams @spier
+* @lenucksi @NewMexicoKid @cewilliams @spier
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
diff --git a/.github/workflows/book.yml b/.github/workflows/book.yml
index 7bf585c90..5af618ba5 100644
--- a/.github/workflows/book.yml
+++ b/.github/workflows/book.yml
@@ -3,7 +3,8 @@ name: Book ToC Generation
on:
push:
branches:
- - "master"
+ - "main"
+ - "book-staging"
jobs:
book-toc-generation:
diff --git a/.github/workflows/main.yml b/.github/workflows/link-checker.yml
similarity index 70%
rename from .github/workflows/main.yml
rename to .github/workflows/link-checker.yml
index 8ae300776..f82b2bb0e 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/link-checker.yml
@@ -6,8 +6,11 @@ name: Link Check on Patterns and README
on:
push:
branches:
- - "master"
+ - "main"
pull_request:
+ schedule:
+ # * is a special character in YAML so you have to quote this string
+ - cron: '30 8 * * *'
jobs:
linkChecker:
@@ -18,6 +21,6 @@ jobs:
id: lc
uses: peter-evans/link-checker@v1
with:
- args: -v -d . -x "http://creativecommons.org/licenses|https://isc-inviter.herokuapp.com|https://github.com/rcs/rcs-viewer/pull/81|fearlesschangepatterns.com" README.md patterns/ -r
+ args: -v -d . -x "http://creativecommons.org/licenses|https://isc-inviter.herokuapp.com|https://github.com/rcs/rcs-viewer/pull/81|fearlesschangepatterns.com|https://ulir.ul.ie/bitstream/handle/10344/4443/Stol_2014_inner.pdf" README.md patterns/ -r
- name: Fail if there were link errors
run: exit ${{ steps.lc.outputs.exit_code }}
diff --git a/.github/workflows/lint-patterns.yml b/.github/workflows/lint-patterns.yml
index e64f010f5..a55402a2a 100644
--- a/.github/workflows/lint-patterns.yml
+++ b/.github/workflows/lint-patterns.yml
@@ -4,7 +4,7 @@ name: Pattern Syntax Validation
on:
push:
branches:
- - "master"
+ - "main"
pull_request:
paths:
- ".github/workflows/lint-patterns.yml"
diff --git a/README.md b/README.md
index e84e526ab..08914fd3c 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,11 @@
# InnerSource Patterns
-
+
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.
-If you are here for the first time, you may start by reading our most mature patterns, published at [innersourcecommons.gitbook.io/innersource-patterns](https://innersourcecommons.gitbook.io/innersource-patterns/).
+If you are here for the first time, you may start by reading our most mature patterns, published at [patterns.innersourcecommons.org](https://patterns.innersourcecommons.org).
Below you find [what a pattern is](#what-are-innersource-patterns), a [list of known patterns](#list-of-patterns), and [how to use these patterns](#how-can-you-use-innersource-patterns) in your organization.
@@ -30,51 +30,59 @@ The below lists all known patterns. They are grouped into three [maturity levels
### Maturity Level 2: Structured
-#### Reviewed Patterns (proven and reviewed)
-
-* [30 Day Warranty](patterns/2-structured/30-day-warranty.md) - *a pattern for getting a reluctant code-owning team to accept code submissions from outside their team.*
+* [30 Day Warranty](patterns/2-structured/30-day-warranty.md) - *When accepting contributions from outside of your own team, there is a natural aversion to taking responsibility for code not written by the team itself. Through the 30 Day Warranty the contributing team consents to provide bug fixes to the receiving team, which will increase the level of trust between both teams and makes it more likely that contributions get accepted.*
* [Common Requirements](patterns/2-structured/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.*
* [Contracted Contributor](patterns/2-structured/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.*
* [Dedicated Community Leader](patterns/2-structured/dedicated-community-leader.md) - *Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.*
* [Gig Marketplace](patterns/2-structured/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.*
* [Maturity Model](patterns/2-structured/maturity-model.md) - *Teams have started adopting InnerSource. The practice is spreading to multiple departments. Understanding of what constitutes an InnerSource project are wide spread though. The solution is to provide a maturity model to allow for teams to go through a self check and discover patterns and practices that they are not yet aware of.*
-* [InnerSource License](patterns/2-structured/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.*
+* [InnerSource License](patterns/2-structured/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.*
* [InnerSource Portal](patterns/2-structured/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.*
* [Praise Participants](patterns/2-structured/praise-participants.md) - *Thank contributors effectively to engender further engagement from them and to encourage others to contribute*
* [Repository Activity Score](patterns/2-structured/repository-activity-score.md) - *The repository activity score is a numeric value that represents the (GitHub) activity of an InnerSource project.*
-* [Review Committee](patterns/2-structured/review-committee.md) - *A formal review committee is setup within an org to "officiate" particular inner source projects with resources, etc.*
-* [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
-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.*
-* [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.*
+* [Review Committee](patterns/2-structured/review-committee.md) - *The InnerSource working model is a radical departure from more traditional approaches, for developers and managers alike. By establishing a review committee as an interface between the InnerSource initiative and all senior managers of business units participating in it, the latter are more likely to familiarise themselves with the initiative and support it, as it affords them a certain level of oversight and control without fostering micromanagement.*
+* [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 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.*
+* [Trusted Committer](patterns/2-structured/trusted-committer.md) - *Many InnerSource 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.*
* [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.*
* [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.*
* [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.*
-
-#### Pattern Drafts (proven, not yet fully reviewed)
-
-* [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.*
-* [Cross-Team Project Valuation](patterns/2-structured/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.*
-* [Reluctance to Receive Contributions](patterns/1-initial/reluctance-to-accept-contributions.md) - *Core owner of shared asset is reluctant to take contributions due to the required maintenance that comes with them.*
-* [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.*
-* [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.*
-* [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.*
-* [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.*
+* [Cross-Team Project Valuation](patterns/2-structured/crossteam-project-valuation.md) - *It's hard to sell the value of cross-team InnerSource 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.*
* [Transparent Cross-Team Decision Making using RFCs](patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md) - *InnerSource projects that want to achieve high participation rates and make the best possible decisions for everybody involved need to find ways to create participatory systems throughout the full software lifecycle. Publishing internal Requests for Comments (RFCs) documents allows for discussions early on in the design process, and increases the chances to build solutions with a high degree of commitment from all involved parties.*
+* [Start as an Experiment](patterns/2-structured/start-as-experiment.md) - *Start your InnerSource initiative as a time limited experiment to make it easier for managers unfamiliar with InnerSource to endorse and support the initiative.*
### Maturity Level 1: Initial
* [Modular Code](patterns/1-initial/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.*
-* [Improve Findability](patterns/1-initial/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.*
+* [Improve Findability](patterns/1-initial/improve-findability.md) - *People can't find the internally developed solutions that they need due to poor naming conventions. This causes frustration in finding InnerSource solutions and a reduction in code reuse.*
* [Overcoming Project Management Time Pressures](patterns/1-initial/overcoming-project-management-time-pressures.md) - *Project management believes timeline pressure and commitments on feature content does not allow for developers to spend the time needed to develop shareable code and provide support.*
* [Introducing Metrics in InnerSource](patterns/1-initial/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.*
* [Shared Code Repo Different from Build Repo](patterns/1-initial/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.*
* [InnerSource Portal - Hygiene](patterns/1-initial/innersource-portal-hygiene.md) - *Allow generation of an official badge for projects intending to be recognised as InnerSource project within your company.*
+* [Reluctance to Receive Contributions](patterns/1-initial/reluctance-to-accept-contributions.md) - *Core owner of shared asset is reluctant to take contributions due to the required maintenance that comes with them. Summary pattern that lays out four children patterns with three to be defined.*
+* [Include Product Owners](patterns/1-initial/include-product-owners.md) - *Engaging and educating Product Owners about InnerSource can help them modify their actions (e.g., in the space of KPIs) to help InnerSource collaboration work better.*
+* [Assisted Compliance](patterns/1-initial/assisted_compliance.md) - *Helping repo owners be compliant by writing their CONTRIBUTING.md for them as a pull request.*
+* [Open Source Trumps InnerSource](patterns/1-initial/open-source-trumps-innersource.md) - *Developers disregard InnerSource projects because they consider open source projects to be superior. Introducing a required evaluation of InnerSource projects before choosing an open source project increases the likelihood of the InnerSource projects to be adopted.*
+* [Transparent Governance Levels](patterns/1-initial/governance-levels.md) - *There are projects in multiple stages of InnerSource adoption. Contributors get confused when working with projects that are at different stages.*
+* [Contained InnerSource](patterns/1-initial/contained-innersource.md) - *Apply InnerSource methods to facilitate collaboration in a cross-divisional project but don't invest in soliciting contributions from outside of that project.*
+* [Good First Project](patterns/1-initial/good-first-project.md) - *An InnerSource program has been launched at an organization, and to get off to a successful start it requires some good first projects that lend themselves to InnerSource-style development. Assessing the InnerSource-readiness (fitness) of the candidate projects can help in selecting projects that have the potential to help demonstrate the power of InnerSource.*
+* [InnerSource Guidance Group](patterns/1-initial/innersource-guidance-group.md) - *A highly divergent set of development standards in different teams can slow down collaboration betweens these teams. A InnerSource Guidance Group that establishes broad governance and behavioral guidelines can help to reduce these frictions.*
+* [Unified Source Code Inventory](patterns/1-initial/source-code-inventory.md) - *In a large organization with different legal entities is often hard to get full visibility into all software assets, in particular all source code. This situation reduces the opportunities to increase business value and keep liability costs, such as software maintenance, under control across the organization as a whole. An organization-level source code inventory addresses these issues while exploiting opportunities to identify and support valuable InnerSource assets.*
+* [Explicit Shared Ownership](patterns/1-initial/explicit-shared-ownership.md) - *A software component that several teams depend on has grown to the point where owners are no longer capable of taking full ownership. There is confusion who to involve for changes. Sharing ownership explicitly and making expected behaviour visible removes ambiguity. Writing a contributions document creates a natural way to evolve ownership.*
+* [Standarized Release Process](patterns/1-initial/release-process.md) - *Teams may be reluctant to use InnerSource projects that they are unfamiliar with when there is no clear release process apparent in the repository. Providing clear release notes and a published artifact (binary, docker image, jar, etc) gives people confidence you are publishing a quality product.*
+* [Explicit InnerSource Principles](patterns/1-initial/explicit-innersource-principles.md) - *The usual InnerSource explanation of "applying open source best practices inside an organisation" does not work well with people lacking an open source background. As a remedy the most important principles of InnerSource get published widely.*
+
+
+
* [Overcome Acquisition Based Silos - Developers](patterns/1-initial/overcome-acquisition-based-silos-developer.md)
* [Overcome Acquisition Based Silos - Managers](patterns/1-initial/overcome-acquisition-based-silos-manager.md)
* [Discover Your InnerSource](patterns/1-initial/discover-your-innersource.md)
* [Junkyard Styled Inner Sourcing](patterns/1-initial/junkyard-styled-innersourcing.md)
* [Incentive Alignment](patterns/1-initial/developer-incentive-alignment-for-innersource-contribution.md)
* [Change the Developers Mindset](patterns/1-initial/change-the-developers-mindset.md)
+* [Change the Middle-Management Mindset](patterns/1-initial/change-the-middle-management-mindset.md)
* [Share Your Code to Get More Done - Likely Contributors Variant](patterns/1-initial/share-your-code-to-get-more-done.md)
* [Code Consumers](patterns/1-initial/code-consumers.md)
* [Explaining InnerSource to Management by anchoring it to Agile / DevOps / Lean](patterns/1-initial/concept-anchor.md)
@@ -86,15 +94,19 @@ possible to either deploy the same service in independent environments with sepa
* [Organizational Mindset Change](patterns/1-initial/organizational-mindset-change.md)
* [Bad Weather For Liftoff](patterns/1-initial/bad-weather-for-liftoff.md)
* [Incentive mechanisms to foster voluntary contribution](patterns/1-initial/incentive-mechanisms-for-voluntary-contribution.md)
+* [Duplicated Projects](patterns/1-initial/duplicated-projects.md)
## What are InnerSource Patterns?
-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.
+Patterns are a way of describing a repeatable, proven solution to a problem within a context. Patterns follow a simple form that assists you during the implementation of a solution to understand the constraints of the problem, understand the forces you need to balance, and the resulting context - the situation created by applying the solution.
-* [`What are patterns?` Youtube videos](http://bit.ly/innersource_patterns_videos) - Watch a set of 2-5 min youtube videos explaining InnerSource Patterns
-* [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).
-* [Pattern Template File](meta/pattern-template.md) - View a skeleton inner source pattern to get an idea on what goes into a new pattern!
-* [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).
+Patterns can provide a way for the InnerSource Commons participants to concisely share information, improving the practice of InnerSource. Patterns are divided into Title, Problem Statement, Context, Forces, and Solutions as their main sections.
+
+* [What are patterns?](https://bit.ly/innersource_patterns_videos) - Watch a set of 2-5 min videos explaining InnerSource Patterns
+* [Pattern Discussion Webinar](https://youtu.be/i-0IVhfRVFU?t=1479) - We held a webinar 2017-03-16 to live-discuss a donut pattern (go to [24:40](https://youtu.be/i-0IVhfRVFU?t=1479) 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).
+* [Pattern Template File](meta/pattern-template.md) - View a skeleton InnerSource pattern to get an idea on what goes into a new pattern!
+* [Introduction to InnerSource Patterns (2016 Fall Summit)](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).
+* A scientific look at how to write patterns: [A pattern language for pattern writing](http://hillside.net/index.php/a-pattern-language-for-pattern-writing), Meszaros and Doble
## How can you use InnerSource Patterns?
@@ -106,10 +118,6 @@ The pattern form is useful for describing proven patterns but it can also be use
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.
-## Related References
-
-* [A pattern language for pattern writing](http://hillside.net/index.php/a-pattern-language-for-pattern-writing), Meszaros and Doble
-
## Licensing

diff --git a/TRUSTED-COMMITTERS.md b/TRUSTED-COMMITTERS.md
index fd343bc16..fab7c6e6f 100644
--- a/TRUSTED-COMMITTERS.md
+++ b/TRUSTED-COMMITTERS.md
@@ -1,16 +1,31 @@
# Trusted Committers
-Trusted committers (TCs) are those members of our working group who have elevated rights and direct write access to this repository. *TCs act as stewards of the working group and community. They aim to make consensus-based decisions in the best interest of the working group.* They also act as the guardians of this repository: TCs react to, referee, and give feedback about incoming contributions.
+Trusted Committers (TCs) are those members of our working group who have elevated rights and direct write access to this repository.
+
+> Trusted Committers act as stewards of the working group and community. They aim to make consensus-based decisions in the best interest of the working group.
+
+They also act as the guardians of this repository: TCs react to, referee, and give feedback about incoming contributions.
+
+For further information about the concept, also see the [Trusted Committer Pattern](patterns/2-structured/trusted-committer.md).
## Current Trusted Committers
* [@spier](https://github.com/spier) (added 2020-12-11)
* [@lenucksi](https://github.com/lenucksi) (added 2020-04-24)
-* [@nyeates](https://github.com/nyeates) (added 2017-03-02)
-* [@gruetter](https://github.com/gruetter) (added 2017-03-02)
* [@NewMexicoKid](https://github.com/NewMexicoKid) (added 2017-03-02)
* [@cewilliams](https://github.com/cewilliams) (added 2017-03-02)
+## Hall of Fame (aka Alumni)
+
+While Trusted Committers are in principle appointed for lifetime, interests or priorities of a TC can change and they might not have enough time any more to contribute to the project.
+
+In those cases we ask them if we should move them to the Hall of Fame. Doing so allows us to appropriately thank them for all of their fantastic contributions. When doing so we also remove them from `.github/CODEOWNERS`, so that reviews of Pull Requests aren't assigned to them anymore, and GitHub notifications are reduced. That increases the clarity for the community who to expect feedback from when creating PRs.
+
+The alumni in the Hall of Fame can of course always start contributing again in the future and go back to being Trusted Committers if they want to.
+
+* [@gruetter](https://github.com/gruetter) (added 2017-03-02)
+* [@nyeates](https://github.com/nyeates) (added 2017-03-02)
+
## Process for Adding new Trusted Committers
We work based on trust: Our goal is to add most people who contributed a sizeable change - quick and early.
@@ -34,4 +49,6 @@ We follow this process (adapted from [here](https://tech.europace.de/voting-in-n
## Admins
-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.
+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.
diff --git a/assets/img/landscape-of-effective-and-efficient-software-development.png b/assets/img/landscape-of-effective-and-efficient-software-development.png
new file mode 100644
index 000000000..ff99ad071
Binary files /dev/null and b/assets/img/landscape-of-effective-and-efficient-software-development.png differ
diff --git a/assets/img/patterns-steps-and-maturities.png b/assets/img/patterns-steps-and-maturities.png
deleted file mode 100644
index 872aad73d..000000000
Binary files a/assets/img/patterns-steps-and-maturities.png and /dev/null differ
diff --git a/assets/img/review-committee-sketch.jpg b/assets/img/review-committee-sketch.jpg
index 9e55121f0..9cc317bb5 100644
Binary files a/assets/img/review-committee-sketch.jpg and b/assets/img/review-committee-sketch.jpg differ
diff --git a/assets/img/source-code-inventory-mockup-dashboard.PNG b/assets/img/source-code-inventory-mockup-dashboard.PNG
new file mode 100644
index 000000000..ba23f3a77
Binary files /dev/null and b/assets/img/source-code-inventory-mockup-dashboard.PNG differ
diff --git a/assets/img/source-code-inventory-mockup-questionnaire.PNG b/assets/img/source-code-inventory-mockup-questionnaire.PNG
new file mode 100644
index 000000000..8be251877
Binary files /dev/null and b/assets/img/source-code-inventory-mockup-questionnaire.PNG differ
diff --git a/assets/img/thirtydaywarranty.jpg b/assets/img/thirtydaywarranty.jpg
index 08ee4cf62..f9915fc20 100644
Binary files a/assets/img/thirtydaywarranty.jpg and b/assets/img/thirtydaywarranty.jpg differ
diff --git a/book/README.md b/book/README.md
index dcc5ae680..6f6dc76f6 100644
--- a/book/README.md
+++ b/book/README.md
@@ -1,44 +1,42 @@
# How to generate the InnerSource Patterns gitbook
-Whenever changes to the [InnerSource Patterns][InnerSourcePatterns] GitHub repository are made, a new version of our InnerSource Patterns book is published at gitbook.com.
-
-The files in the `./book` folder contain generator scripts and some extra content required to create our gitbook.
+Whenever changes to the [InnerSource Patterns][InnerSourcePatterns] GitHub repository are made, a new version of our InnerSource Patterns book is published at [patterns.innersourcecommons.org][book_production].
## Where is the book published?
-The most up-to-date version of the book is available for readers/consumers at [innersourcecommons.gitbook.io/innersource-patterns/][book_production].
-
-*NOTE:*
-The final URL of the book has not been determined yet.
+The most up-to-date version of the book is available for readers/consumers at [patterns.innersourcecommons.org][book_production].
-We also have a [Staging version][book_staging], used by the editors/producers of the book for testing purposes.
+We also have a [Staging version][book_staging], used by the editors/producers of the book for testing purposes. If you want to make any structural changes to the book, please send a PR to merge your changes into the `book-staging` branch. That way we can test your changes on the Staging version first, before they go live.
## Which patterns are published?
-In the book we publish the patterns of maturity **Structured** (Level 2) or **Validated** (Level 3). For more on these maturity levels see the [Contributor Handbook](../meta/contributor-handbook.md).
+The book contains patterns of maturity **Structured** (Level 2) or **Validated** (Level 3). **Initial** (Level 1) patterns are not published in the book, because those are still subject to a lot of change, and have likely not even proven to work yet. For more on these maturity levels see the [Contributor Handbook](../meta/contributor-handbook.md).
## How does it work?
+The `./book` folder contains generator scripts and some extra content required to create the gitbook.
+
- `/.gitbook.yaml` - Holds basic configuration for the gitbook service. This never needs to be changed.
- `/book/toc.md` - An auto-generated table of contents (ToC) for the book i.e. a list of all pages and patterns that are part of the book. The ToC is what you see on the left-hand-side menu in gitbooks.
- `/book/generate_toc.rb` - Takes patterns of maturity **Structured** and **Validated**, extracts title and patlet, and injects this info into `/book/toc_template.md`. The output is written to `/book/toc.md`.
- `.github/workflows/book.yml` - A GitHub Action that triggers the execution of `/book/generate_toc.rb`.
- `/book/introduction.md` - The introduction to our book. This content is what the reader sees first when they open the book. The current content is based on [README.md](../README.md). We may need to modify this content even further, to address the readers of the book more specifically, rather than the readers of our GitHub repository.
-- `/book/contribute-to-this-book.md` - Information about how to contribute to this book.
+- `/book/contribute.md` - Information about how to contribute to this book.
## Objectives of the book
These patterns are already publicly available in the [InnerSource Patterns][InnerSourcePatterns] GitHub repo. So why publish such a book at all?
-We think there are a couple of good reasons to publish the InnerSource patterns as a gitbook:
+There are a couple of good reasons to publish the InnerSource patterns as a gitbook:
* (consumers) have something that is “nicer” to read than things on GitHub
-* (consumers) have stable URLs for patterns i.e. even if the files move in the folder structure in the repo, the URL of the pattern stay the same
+* (consumers) search for keywords across all patterns
* (consumers) export book as PDF and read on other devices
-* (producers) a motivation for pattern authors (and all contributors) to level up patterns from 1-initial, as only 2-structured and 3-validated are published in the book
+* (consumers) have stable URLs for patterns that can be used as references in other material e.g. from the Learning Path (i.e. even if the files move in the folder structure in the GitHub repo, the URL of the pattern stay the same)
+* (producers) a motivation for pattern authors and all contributors to level up patterns from 1-initial, as only 2-structured and 3-validated are published in the book
* (producers) a motivation for us to introduce more specific quality guidelines for level 2+3, so that we can be even more proud of the content in the book :)
* (producers) learn which patterns are most interesting for readers (e.g. through Google Analytics)
[InnerSourcePatterns]: https://github.com/InnerSourceCommons/InnerSourcePatterns
-[book_production]: https://innersourcecommons.gitbook.io/innersource-patterns/
-[book_staging]: https://innersourcecommons.gitbook.io/innersource-patterns-staging/v/book/
+[book_production]: https://patterns.innersourcecommons.org
+[book_staging]: https://innersourcecommons.gitbook.io/innersource-patterns-staging/v/book-staging/
diff --git a/book/contribute-to-this-book.md b/book/contribute-to-this-book.md
deleted file mode 100644
index 7484c09ee..000000000
--- a/book/contribute-to-this-book.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Contribute to this book
-
-You want to help us make this book better? That is awesome!
-
-The InnerSource Patterns book itself is an open source project, and welcomes any form of contribution. Nothing is too small!
-
-If you have never made a contribution to an open source project before, know that the InnerSource Patterns community is group of friendly people and with that a safe place to try it out :)
-
-## Before you get started
-
-As the sources for the InnerSource Patterns and this book are kept in a repository on GitHub, you will need a user account there to make edits and suggestions to this book. If you don't have a user account at GitHub yet, head over to [github.com](https://github.com) and create one for free.
-
-## Different ways to contribute
-
-Here a few ways in which you can contribute:
-
-1. fix spelling, formatting, or other glitches that you notice in this book
-2. improve the content of an existing pattern (e.g. by adding a short description of how you are using a pattern as a _Known Instance_)
-3. contribute a new pattern, describing how you have overcome InnerSource-related challenges in your organization
-
-For (1) and (2) above you can simply hit the **Edit on GitHub** link that you see at the top of each page in the book. This will take you straight to the respective file in our GitHub repository, where you can suggest your changes.
-
-For (3) you need to clone the [InnerSourcePatterns](https://github.com/InnerSourceCommons/InnerSourcePatterns) repository, and add a new file with your suggested pattern. When making such larger contributions to this book please review our [CONTRIBUTING.md](../CONTRIBUTING.md) and also our [Contributor Handbook](../meta/contributor-handbook.md).
-
-## License of Contributions
-
-The contents of this repository are licensed under [CC-BY-SA-4.0](../LICENSE.txt). By contributing to this repository, you grant us (and everyone else for that matter) the right to use your contribution in accordance with that license.
diff --git a/book/contribute.md b/book/contribute.md
new file mode 100644
index 000000000..07713f642
--- /dev/null
+++ b/book/contribute.md
@@ -0,0 +1,31 @@
+# Contribute to this book
+
+You want to make this book better? That is awesome!
+
+The InnerSource Patterns book itself is an [open source project][repo], and welcomes any form of contribution. Nothing is too small!
+
+No matter if you want to help us fix grammar/spelling, improve the design, or contribute entirely new patterns based on the InnerSource experiences that you have made at your workplace. We love all of that! :)
+
+If you have never made a contribution to an open source project before, know that the InnerSource Patterns community is group of friendly people and with that a safe place to try it out.
+
+## Before you get started
+
+The sources for the InnerSource Patterns and this book are kept in a repository on GitHub. Therefore you will need a GitHub user account to make edits and suggestions to this book. If you don't have one yet, head over to [github.com](https://github.com) and create an account for free.
+
+## Different ways to contribute
+
+Here a few ways in which you can contribute:
+
+1. fix spelling, formatting, or other glitches that you notice in this book
+2. improve the content of an existing pattern (e.g. by adding a short description of how you are using a pattern as a _Known Instance_)
+3. contribute a new pattern, describing how you have overcome InnerSource-related challenges in your organization
+
+For (1) and (2) above you can simply hit the **Edit on GitHub** link that you see at the top of each page in this book. This will take you straight to the respective file in our GitHub repository, where you can suggest your changes.
+
+For (3) you need to clone the [InnerSourcePatterns][repo] repository, and add a new file with your suggested pattern. When making such larger contributions to this book please review our [CONTRIBUTING.md](../CONTRIBUTING.md) and also our [Contributor Handbook](../meta/contributor-handbook.md).
+
+## License of Contributions
+
+The contents of this repository are licensed under [CC-BY-SA-4.0](../LICENSE.txt). By contributing to this repository, you grant us (and everyone else for that matter) the right to use your contribution in accordance with that license.
+
+[repo]: https://github.com/InnerSourceCommons/InnerSourcePatterns
diff --git a/book/explore-patterns.md b/book/explore-patterns.md
new file mode 100644
index 000000000..c3670d9e9
--- /dev/null
+++ b/book/explore-patterns.md
@@ -0,0 +1,19 @@
+# Explore Patterns
+
+More and more patterns are contributed to this book by the InnerSource Commons community. That is awesome!
+
+Now how to make it easy for readers to discover the patterns that can help them in their particular situation?
+
+For this purpose we provide this mind map. It **categorizes patterns based on the different phases of an InnerSource Program**, and the challenges that might appear in the respective phases.
+
+
+
+## Improve this Mind Map
+
+If you notice anything in this mind map that looks wrong, please [open an issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues), describing the problem and the fix that should be made.
+
+Further if you have other ideas for improving the discoverability of these patterns, or want to make this mind map better, review the documentation of our [Pattern Categorization](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/pattern-categorization/README.md) approach, and also check how to [contribute to this book](contribute.md).
+
+## References
+
+The idea for categorizing patterns like this is loosely based a description in [Thoughts on an InnerSource Pattern Language](https://drive.google.com/file/d/13AY8glCOdpLOVuz7cVD6QOB8d2xbHCS1/view) by Tim Yao, Bob Hanmer and Padma Sudarsan (2018). For specifics see slide 15 in that slide deck.
diff --git a/book/innersource-patterns-book-cover.jpg b/book/innersource-patterns-book-cover.jpg
index b9352cf17..9c62fde54 100644
Binary files a/book/innersource-patterns-book-cover.jpg and b/book/innersource-patterns-book-cover.jpg differ
diff --git a/book/innersource-program-mind-map.png b/book/innersource-program-mind-map.png
index bd3d7229c..43a44a022 100644
Binary files a/book/innersource-program-mind-map.png and b/book/innersource-program-mind-map.png differ
diff --git a/book/introduction.md b/book/introduction.md
index aed6a0f6e..64502aac4 100644
--- a/book/introduction.md
+++ b/book/introduction.md
@@ -3,36 +3,35 @@
{% hint style="info" %}
-This is an early release of the InnerSource Patterns book.
-You may still find broken links, spelling mistakes, or other errors in this book.
-Please help us to fix them to produce the best book possible :). Learn how to [contribute to this book](../book/contribute-to-this-book.md).
+You are reading an early release of the InnerSource Patterns book and may still find broken links, spelling mistakes, or other errors.
+Please help us to fix them to produce the best book possible :). Learn how to [contribute to this book](../book/contribute.md).
{% endhint %}
-Welcome to the **InnerSource Patterns book**.
+Welcome to the **InnerSource Patterns Book**.
This book contains InnerSource best practices codified in a specific format to make it easy to understand, evaluate, and apply them in your context. We call this format a **pattern**.
-These patterns have been collected by the [InnerSource Commons](http://innersourcecommons.org) community over many years. The most mature patterns have been published in this book. Mature in this context means that each pattern has been reviewed by members of the community, and has at least one known instance where this pattern has been used.
+The [InnerSource Commons](http://innersourcecommons.org) has collected these patterns over many years, publishing the most mature patterns in this book, where members of the community review each pattern, with at least one known instance of pattern use.
In this introduction we explain [what InnerSource is](#what-is-innersource), [what a pattern is](#what-are-innersource-patterns), and [how to use these patterns](#how-can-you-use-innersource-patterns) in your organization.
-If you are using InnerSource in your company already and want to contribute your experiences to this book we would love to [welcome your contributions](../book/contribute-to-this-book.md)!
+If you are using InnerSource in your company already and want to contribute your experiences to this book, we would love to [welcome your contributions](../book/contribute.md)!
## What is InnerSource?
We define InnerSource as:
-> The use of open source principles and practices for software development within the confines of an organisation.
+> The use of open source principles and practices for software development within the confines of an organization.
-InnerSource takes the lessons learned from developing open source software and applies them to the way companies develop software internally. As developers have become accustomed to working on world class open source software, there is a strong desire to bring those practices back inside the firewall and apply them to software that companies may be reluctant to release.
+InnerSource takes the lessons learned from developing open source software and applies them to the way companies develop software internally. As developers have become accustomed to working on world-class open source software, there is a strong desire to bring those practices back inside the firewall and apply them to software that companies may be reluctant to release.
-For companies building mostly closed source software, InnerSource can be a great tool to help break down silos, encourage internal collaboration, accelerate new engineer on-boarding, and identify opportunities to contribute software back to the open source world.
+For companies building mostly closed source software, InnerSource can be a great tool to help break down silos, encourage and scale internal collaboration, accelerate new engineer on-boarding, and identify opportunities to contribute software back to the open source world.
## What are InnerSource Patterns?
-Patterns are a way of describing a repeatable, proven solution to a problem within 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 created by applying the solution.
+Patterns are a way of describing a repeatable, proven solution to a problem within a context. Patterns follow a simple form that assists you during the implementation of a solution to understand the constraints of the problem, understand the forces you need to balance, and the resulting context - the situation created by applying the solution.
-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.
+Patterns can provide a way for the InnerSource Commons participants to concisely share information, improving the practice of InnerSource. Patterns are divided into Title, Problem Statement, Context, Forces, and Solutions as their main sections.
* [`What are patterns?` Youtube videos](http://bit.ly/innersource_patterns_videos) - Watch a set of 2-5 min youtube videos explaining InnerSource Patterns
* [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).
@@ -41,19 +40,19 @@ In inner sourcing, patterns can provide a way for the InnerSource Commons partic
## How can you use InnerSource Patterns?
-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.
+Patterns must be used thoughtfully. They cannot be indiscriminately applied. In most cases, you will need to adapt the given solution to your 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.
-The pattern form is useful for describing proven solutions but it can also be used for *brainstorming new solutions* where patterns are not yet established. This is, because the anatomy of a pattern provides a frame for thinking about a problem in a structured manner. 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).
+The pattern form is useful for describing proven solutions but it can also be used for *brainstorming new solutions* where patterns are not yet established. This is because the anatomy of a pattern provides a framework for thinking about a problem in a structured manner. 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).
## How to Contribute?
-Please refer to: [Contribute to this book](./contribute-to-this-book.md)
+Please refer to: [Contribute to this book](./contribute.md)
## Credits
This book is the result of many years of work from countless [Open Source Contributors](https://github.com/InnerSourceCommons/InnerSourcePatterns/graphs/contributors) from around the world. Their willingness to openly share the challenges that they faced in their companies, and how InnerSource has helped them address those challenges, make this book such a valuable resource for others on their InnerSource journey.
-We want to specifically mention the InnerSource Patterns Working Group. They have nurtured the quality of the InnerSource Patterns and helped others to contribute. Lastly they also compiled a selection of available patterns into this book.
+We want to specifically mention the InnerSource Patterns Working Group. They have nurtured the quality of the InnerSource Patterns and helped others to contribute. Lastly, they also compiled a selection of available patterns into this book.
The title image of this book was created by [Sebastian Spier](https://spier.hu) and adapted from an image by [Tony Hisgett - Alhambra 6](https://www.flickr.com/photos/hisgett/29345405788/), available under [CC BY 2.0](https://creativecommons.org/licenses/by/2.0/).
diff --git a/book/toc.md b/book/toc.md
index 22b1c21ce..8058dfbd0 100644
--- a/book/toc.md
+++ b/book/toc.md
@@ -11,33 +11,35 @@ Instead edit toc_template.md
# Table of Contents
* [Table of Contents](../book/toc.md)
+* [Explore Patterns](../book/explore-patterns.md)
+* [Contribute to this book](../book/contribute.md)
-## Patterns
+## Patterns
* [30 Day Warranty](../patterns/2-structured/30-day-warranty.md) - When accepting contributions from outside of your own team, there is a natural aversion to taking responsibility for code not written by the team itself. Through the 30 Day Warranty the contributing team consents to provide bug fixes to the receiving team, which will increase the level of trust between both teams and makes it more likely that contributions get accepted.
* [Common Requirements](../patterns/2-structured/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.
-* [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.
+* [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 set up and document standard communication tooling that allows for discussions to become visible, archived and searchable.
* [Contracted Contributor](../patterns/2-structured/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.
-* [Cross-Team Project Valuation](../patterns/2-structured/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.
-* [Dedicated Community Manager](../patterns/2-structured/dedicated-community-leader.md) - Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.
+* [Cross-Team Project Valuation](../patterns/2-structured/crossteam-project-valuation.md) - It's hard to sell the value of cross-team InnerSource 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.
+* [Dedicated Community Leader](../patterns/2-structured/dedicated-community-leader.md) - Select people with both communications and technical skills to lead the communities to ensure success in starting an InnerSource initiative.
* [Gig Marketplace](../patterns/2-structured/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.
* [InnerSource License](../patterns/2-structured/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.
* [InnerSource Portal](../patterns/2-structured/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.
* [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.
-* [Maturity Model](../patterns/2-structured/maturity-model.md) - Teams have started adopting InnerSource. The practice is spreading to multiple departments. Understanding of what constitutes an InnerSource project are wide spread though. The solution is to provide a maturity model to allow for teams to go through a self check and discover patterns and practices that they are not yet aware of.
-* [Praise Participants](../patterns/2-structured/praise-participants.md) - After an inner source contribution, it's important to thank the contributor for their time and effort. This pattern gives guidance that not only effectively acknowledges the contribution but also endgenders further engagement from the contributor and others.
-* [Repository Activity Score](../patterns/2-structured/repository-activity-score.md) - Potential contributors want to find active InnerSource projects in need of their help. By calculating a repository activity score for each project, a ranked list of projects can be created (e.g. on the InnerSource portal), so that potential contributors can more easily determine which project they want to contribute to.
+* [Maturity Model](../patterns/2-structured/maturity-model.md) - Teams have started adopting InnerSource. The practice is spreading to multiple departments. However, the understanding of what constitutes an InnerSource project varies. The solution is to provide a maturity model to allow for teams to go through a self check and discover patterns and practices that they are not yet aware of.
+* [Praise Participants](../patterns/2-structured/praise-participants.md) - After an inner source contribution, it's important to thank the contributor for their time and effort. This pattern gives guidance that not only effectively acknowledges the contribution but also engenders further engagement from the contributor and others.
+* [Repository Activity Score](../patterns/2-structured/repository-activity-score.md) - Potential contributors want to find active InnerSource projects in need of their help. By calculating a repository activity score for each project, a ranked list of projects can be created (e.g. on the InnerSource Portal), so that potential contributors can more easily determine which project they want to contribute to.
* [Review Committee](../patterns/2-structured/review-committee.md) - The InnerSource working model is a radical departure from more traditional approaches, for developers and managers alike. By establishing a review committee as an interface between the InnerSource initiative and all senior managers of business units participating in it, the latter are more likely to familiarise themselves with the initiative and support it, as it affords them a certain level of oversight and control without fostering micromanagement.
* [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 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.
* [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.
* [Start as an Experiment](../patterns/2-structured/start-as-experiment.md) - Start your InnerSource initiative as a time limited experiment to make it easier for managers unfamiliar with InnerSource to endorse and support the initiative.
-* [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.
+* [Transparent Cross-Team Decision Making using RFCs](../patterns/2-structured/transparent-cross-team-decision-making-using-rfcs.md) - InnerSource projects that want to achieve high participation rates and make the best possible decisions for everybody involved need to find ways to create participatory systems throughout the full software lifecycle. Publishing internal Requests for Comments (RFCs) documents allows for discussions early on in the design process, and increases the chances to build solutions with a high degree of commitment from all involved parties.
+* [Trusted Committer](../patterns/2-structured/trusted-committer.md) - Many InnerSource 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.
## Appendix
-* [Contribute to this book](../book/contribute-to-this-book.md)
* [Pattern Template](../meta/pattern-template.md)
* Extras
* [README Template](../patterns/2-structured/project-setup/templates/README-template.md)
diff --git a/book/toc_template.md b/book/toc_template.md
index 6e6c958b2..ad26c067d 100644
--- a/book/toc_template.md
+++ b/book/toc_template.md
@@ -11,16 +11,17 @@ Instead edit toc_template.md
# Table of Contents
* [Table of Contents](../book/toc.md)
+* [Explore Patterns](../book/explore-patterns.md)
+* [Contribute to this book](../book/contribute.md)
-## Patterns
+## Patterns
<>
## Appendix
-* [Contribute to this book](../book/contribute-to-this-book.md)
* [Pattern Template](../meta/pattern-template.md)
* Extras
* [README Template](../patterns/2-structured/project-setup/templates/README-template.md)
diff --git a/lint/pattern-template.js b/lint/pattern-template.js
index 152409bd7..2bbe399ce 100644
--- a/lint/pattern-template.js
+++ b/lint/pattern-template.js
@@ -21,38 +21,12 @@ module.exports = [
},
{
names: ["PATTERN-TEMPLATE-RULE-002"],
- description: "Standard Headlines",
- tags: ["headings", "headers", "pattern-template"],
- function: (params, onError) => {
- var allowedHeadlines = "Title|Patlet|Problem|Story|Context|Forces|Solutions|Resulting Context|Known Instances|Status|Author(s)|Acknowledgements";
- var re = new RegExp(`^## (${allowedHeadlines.replace(/(?=[\(\)])/g, '\\')})\\s*$`,"m");
- // console.log(re);
-
- params.tokens.filter(function filterToken(token) {
- return token.type === "heading_open";
- }).forEach(function forToken(token) {
- if (token.tag === "h2") {
- if (re.test(token.line)) {
- return;
- }
- // if (/^## ()$/m.test(token.line)) {
- // return;
- // }
-
- return onError({
- lineNumber: token.lineNumber,
- detail: "Allowed types are: " + allowedHeadlines.replace(/\|/g, ', '),
- context: token.line
- });
- }
- });
- }
-},
-{
- names: ["PATTERN-TEMPLATE-RULE-003"],
description: "Mandatory template sections",
+ information: new URL("https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/meta/pattern-template.md"),
tags: ["headings", "headers", "pattern-template"],
function: (params, onError) => {
+ // A list of all mandatory headlines.
+ // headline name (from template): regexp of all permitted headline spellings
var mandatoryHeadlines = {
"Title": "Title",
"Patlet": "Patlet",
@@ -68,8 +42,8 @@ module.exports = [
var collectedHeadlines = ""
- // collect all h2 headlines
- // (only the headline text itself, removing markdown sytnax and whitespace)
+ // Collect all h2 (##) headlines.
+ // Only the headline text, removing markdown and whitespaces.
params.tokens.filter(function filterToken(token) {
return token.type === "heading_open";
}).forEach(function forToken(token) {
@@ -83,7 +57,7 @@ module.exports = [
}
});
- // confirm if all `mandatoryHeadlines` exist exactly once in the `collectedHeadlines`
+ // confirm if all `mandatoryHeadlines` exist and exist exactly once in the `collectedHeadlines`
var errorsFound = [];
let headline;
diff --git a/lint/pattern-template.yml b/lint/pattern-template.yml
index 26f0edf04..e85fb5cb8 100644
--- a/lint/pattern-template.yml
+++ b/lint/pattern-template.yml
@@ -2,5 +2,4 @@ default: false # excludes all default markdownlint rules
# Custom rules:
PATTERN-TEMPLATE-RULE-001: true
-# PATTERN-TEMPLATE-RULE-002: true # will likely stop using this in favor of rule 003
-PATTERN-TEMPLATE-RULE-003: true
+PATTERN-TEMPLATE-RULE-002: true
diff --git a/meta/FAQ.md b/meta/FAQ.md
index a02363b7b..9e39ab137 100644
--- a/meta/FAQ.md
+++ b/meta/FAQ.md
@@ -1,8 +1,10 @@
-This is a list of frequently asked questions about InnerSource Patterns
+# InnerSource Patterns FAQ
+
+This is a list of frequently asked questions about InnerSource Patterns.
## What are the different parts of a pattern? What do they mean?
-* See the [pattern template](pattern-template.md) (in the *meta* subdirectory)
+* See the [pattern template](pattern-template.md)
## Why use a patterns approach to InnerSource?
@@ -13,6 +15,7 @@ This is a list of frequently asked questions about InnerSource Patterns
* Each organization has its own history (*context*) and culture (a source of *forces*) and even goals, so using a pattern to solve their problems will generally require adaptation of that pattern. Try to identify things about your situation that are unique and apply those as makes sense to the *Context* and *Forces* identified in the pattern. See if these additional constraints might require changes to the *Solution* to ensure that the pattern will work.
* Patterns can also be used as a short-hand when discussing InnerSource programs across organizational boundaries.
-## I'd like to consult with the IS Patterns community; do I need to have participating members sign NDAs?
+## I'd like to consult with the InnerSource Patterns community; do I need to have participating members sign NDAs?
-* You could do that, but be aware that the vast majority of IS Patterns meetings are held under the [Chatham House Rule](https://www.chathamhouse.org/chatham-house-rule) that should provide sufficient protection to enable a productive discussion.
+* The vast majority of InnerSource Patterns meetings and all conversations in the InnerSource Commons [Slack](https://isc-inviter.herokuapp.com/) are held under the [Chatham House Rule](https://www.chathamhouse.org/chatham-house-rule) that should provide sufficient protection to enable a productive discussion.
+* To answer the question directly: No, you don't have to get NDAs signed :)
diff --git a/meta/README.md b/meta/README.md
index 9df1116f8..835268ba6 100644
--- a/meta/README.md
+++ b/meta/README.md
@@ -2,13 +2,16 @@
The topics below cover information about how we define, operate, and upkeep this collection of patterns.
-* [Pattern Template](./pattern-template.md) - Start a new pattern with a copy of this
+* [Contributing](../CONTRIBUTING.md) - How to interact with our group, create your own patterns, or take part in our review-process; GitHub / Web centric instructions
+ * [Alternate Command-line steps](./technical-git-howto.md) - Contribute a pattern using `git` from the command-line
* [Contributor Handbook](./contributor-handbook.md) - Lays out a basic guideline of how to write and contribute a new pattern, including the 3 maturity levels for patterns.
-* **(draft)** [Pattern System](./pattern-system.md) - 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.
+* [Pattern Template](./pattern-template.md) - Start a new pattern with a copy of this
+* [FAQ](./FAQ.md) - Frequently asked questions about InnerSource Patterns
* [Trusted Committers](../TRUSTED-COMMITTERS.md) - Who these people are, what elevated rights they get, and how you can become one
* [Markdown Info](./markdown-info.md) - Markdown is the ascii text format our patterns are written in; this document briefly defines how we use it
-* [Contributing](../CONTRIBUTING.md) - How to interact with our group, create your own patterns, or take part in our review-process; Github / Web centric instructions
- * [Alternate Command-line steps](./technical-git-howto.md) - If you want to contribute a pattern using `git` from the command-line, this is your document
+
+## Unfinished documentation
+
* **(incomplete) Writing Guidelines** - To make the writing for our patterns more consistent, we provide some guidelines to help the various authors to keep a consistent voice.
* [InnerSource Spelling](./innersource-spelling.md) - Clarifies the mystery around how to spell this. Spoiler: It is **InnerSource**.
-* [FAQ](./FAQ.md) - Frequently asked questions about InnerSource Patterns
+* **(draft)** [Pattern System](./pattern-system.md) - 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.
diff --git a/meta/boardreports/2021-01.md b/meta/boardreports/2021-01.md
new file mode 100644
index 000000000..4447d4b02
--- /dev/null
+++ b/meta/boardreports/2021-01.md
@@ -0,0 +1,93 @@
+# InnerSource Patterns WG - Report for Governance Meeting 2021-01
+
+**Reporting Period:** 12/2020
+
+## Mission
+
+*Briefly describe what your project actually does.*
+
+- Discuss community InnerSource practices and dynamics, collect and document agreed upon best practices of how to do InnerSource - in the form of patterns
+- Continuously publish the most mature patterns as an ebook and website
+
+## Project/Community Status and Health
+
+*Sum up the status and health of your project and community*
+
+- 2 new contributors ([@dineshdh](https://github.com/dineshdh), [@nschonni](https://github.com/nschonni))
+- We are merging PRs with minor changes a bit faster already.
+- We got more work to do to make contributions easier for new people joining the Patterns WG but we are on a good path.
+- Activity and trusted committer diversity is too low to sustain the project in the long run on a high activity level. (Low activity evolution is sustainable.)
+
+## Project Activity
+
+*Describe the overall activity in the project over the reporting period.*
+
+- [InnerSource Patterns book](https://innersourcecommons.gitbook.io/innersource-patterns) is published automatically when new content is pushed to master - @spier
+- Added automatic checks to keep the markdown files of the patterns clean
+ - markdownlint - (#222, #263, thanks [@nschonni](https://github.com/nschonni))
+ - Link Checker - @spier
+ - Finding sensible trade-offs between too strict and too loose checks will be essential. We don't want to scare new contributors away with too many "rules". On the flip side putting some checks into place makes it explicit to contributors what we expect. The hope is that that would speed up some parts of the contribution process.
+- Presented at the ISC 2020 APAC Summit: *Level up your InnerSource through Patterns* - @fwan2000, @spier - [video](https://www.youtube.com/watch?v=vSCR13LF6Ww)
+- Patterns office-hours concept try out, some success, dual time-zone meeting concept successfully in use in Marketing WG - @lenucksi
+- Continuing to work with the new Maturity levels (initial, structured, validated)
+
+### Pattern-work
+
+- [Merged PRs](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+closed%3A2020-12-01..2020-12-31+is%3Amerged+): 22
+ - Pattern work: 7 (PRs only)
+ - #256 add author to Issue Tracker Use Cases Pattern (@spier)
+ - #239, 240 Book work: Shortening some pattern titles to make for nicer links. Adding some Patlets. (@spier)
+ - #236, #237 Add link and screenshots to SAP reference implementation. (@Michadelic)
+ - #213 Adding Elbit Systems as a Known Instance to the InnerSource Portal Pattern.
+ - #120 Adding Level 1 Pattern: InnerSource Portal - Hygiene (@dineshdh)
+ - Non-pattern work: 15 (PRs only)
+ - various cleanup work #222, #263 e.g. adding markdownlint and first linter rules
+ - some onboarding steps for new Trusted Committer
+- [New PRs created](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+created%3A2020-11-01..2020-11-30): 27
+- [New Issues created](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+is%3Aopen+created%3A2020-12-01..2020-12-31+): 2
+- [Issues Closed](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+closed%3A2020-12-01..2020-12-31): 6
+
+## Plans of the Project
+
+*Describe the current plans of the project. Include goals the project is working towards as well as any announcements that should be published through the Marketing working group.*
+
+- Improve [InnerSource Patterns ebook](https://innersourcecommons.gitbook.io/innersource-patterns) further:
+ - #250 Nicer domain for the book (getting help from @cewilliams)
+ - Analytics to understand readership better
+- Content
+ - Start "Pattern of the Month" as a way to improve one pattern at a time, do some marketing around the patterns (together with the Marketing WG), and motivate new people to contribute
+ - Evaluate ideas to further facilitate collection of pattern content (e.g. through automation), channel ongoing discussions into pattern-work and attract more contributors, e.g. by lowering the barriers of entry for them.
+ - Level up some patterns to higher maturity levels. e.g. the [InnerSource Portal](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/master/patterns/2-structured/innersource-portal.md) has multiple known instances and even a reference implementation now, so it could be brought to maturity "Validated" relatively easily.
+- Process / Maintenance
+ - Onboard further trusted committers
+ - Review the current list of trusted committers. Some of them don’t seem to be active anymore and likely receive a lot of github notifcations and emails from us that they don't need. (do we have an offboarding process for TCs?)
+ - Process existing content from PRs and Google group into our repository (once that is done we can focus on the contribution process via the GitHub repo exclusively)
+
+## Last Committer Addition
+
+*When was the last committer added to the project? A healthy project tends to add new committers regularly. The report should indicate the most recent date on which a committer was added.*
+
+- 11th of December 2020: @spier
+- 24th of April 2020: @lenucksi
+
+## Committer Diversity
+
+*Cover committer diversity in your project. A healthy project should survive the departure of any single contributor or employer of contributors. What are your steps to make sure that people from all regions on the globe can participate in your project without having to be awake at midnight their local time?*
+
+- Focus on asynchronous collaboration in the #innersource-patterns channel
+- Offering office hours on APAC and EU/Americas timeslots
+- Work towards automation of administration tasks, documentation of processes
+- Have TCs in multiple time zones
+
+## Legal Issues & Other Needs
+
+*Are there any project branding or naming issues, either in the project or externally? Any legal issues? Any infrastructure or strategic needs?*
+
+- **Google Analytics** - can we use it to track readership statistics for our book? (gitbook.com providers Google Analytics tracking natively)
+- **Custom Domain** for the book: Out of the box, the book will live at `innersourcecommons.gitbook.io/innersource-patterns`. If we want a custom domain e.g. to drive traffic to innersourcecommons.org, we would have to configure the DNS for a custom domain. Not sure what is possible but e.g. something like `patterns.innersourcecommons.org/` or `books.innersourcecommons.org/innersource-patterns`. Already connected with @cewilliams about this.
+- Suggestions welcome on how to attract more contributors.
+- Legal: None currently, book illustrations will trigger IP compliance requirements.
+
+## Any issues for the Board to act on?
+
+- None
diff --git a/meta/boardreports/2021-02.md b/meta/boardreports/2021-02.md
new file mode 100644
index 000000000..155dcac6c
--- /dev/null
+++ b/meta/boardreports/2021-02.md
@@ -0,0 +1,100 @@
+# InnerSource Patterns WG - Report for Governance Meeting 2021-02
+
+**Reporting Period:** 01/2021
+
+## Mission
+
+*Briefly describe what your project actually does.*
+
+- Discuss community InnerSource practices and dynamics, collect and document agreed upon best practices of how to do InnerSource - in the form of patterns
+- Continuously publish the most mature patterns as an ebook and website
+
+## Project/Community Status and Health
+
+*Sum up the status and health of your project and community*
+
+- new contributors:
+ - [@dterol23](https://github.com/dterol23)
+- We are merging PRs with minor changes a bit faster already.
+- We got more work to do to make contributions easier for new people joining the Patterns WG but we are on a good path.
+- Activity and trusted committer diversity is too low to sustain the project in the long run on a high activity level. (Low activity evolution is sustainable.)
+
+## Project Activity
+
+*Describe the overall activity in the project over the reporting period.*
+
+**Status: no changes/updates since last report**
+
+- [InnerSource Patterns book](https://innersourcecommons.gitbook.io/innersource-patterns) is published automatically when new content is pushed to master - @spier
+- Added automatic checks to keep the markdown files of the patterns clean
+ - markdownlint - (#222, #263, thanks [@nschonni](https://github.com/nschonni))
+ - Link Checker - @spier
+ - Finding sensible trade-offs between too strict and too loose checks will be essential. We don't want to scare new contributors away with too many "rules". On the flip side putting some checks into place makes it explicit to contributors what we expect. The hope is that that would speed up some parts of the contribution process.
+- Presented at the ISC 2020 APAC Summit: *Level up your InnerSource through Patterns* - @fwan2000, @spier - [video](https://www.youtube.com/watch?v=vSCR13LF6Ww)
+- Patterns office-hours concept try out, some success, dual time-zone meeting concept successfully in use in Marketing WG - @lenucksi
+- Continuing to work with the new Maturity levels (initial, structured, validated)
+
+### Pattern-work
+
+- [Merged PRs](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+closed%3A2021-01-01..2021-01-31+is%3Amerged+): 18
+ - Patterns (aka Content Work): 9 (PRs only)
+ - #245 Expand RFC Pattern (@tsadler1988)
+ - #166 initial checkin of concept-anchor (@mishari)
+ - #71 Create include-product-owners.md (@NewMexicoKid)
+ - #74 Create assisted_compliance.md (@NewMexicoKid)
+ - Non-pattern work: 9 (PRs only)
+ - getting the overview of patterns in the main README into a better shape #254 and #259
+- [New PRs created](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls?q=is%3Apr+created%3A2021-01-01..2021-01-31): 15
+- [New Issues created](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+is%3Aopen+created%3A2021-01-01..2021-01-31): 6
+- [Issues Closed](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues?q=is%3Aissue+closed%3A2021-01-01..2021-01-31): 2
+
+## Plans of the Project
+
+*Describe the current plans of the project. Include goals the project is working towards as well as any announcements that should be published through the Marketing working group.*
+
+**Status: no changes/updates since last report**
+
+- Improve [InnerSource Patterns ebook](https://innersourcecommons.gitbook.io/innersource-patterns) further:
+ - #250 Nicer domain for the book (getting help from @cewilliams)
+ - Analytics to understand readership better
+- Content
+ - Start [Pattern of the Month](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/280) as a way to improve one pattern at a time. Do some marketing around the patterns together with the Marketing WG, and motivate new people to contribute.
+ - Evaluate ideas to further facilitate collection of pattern content (e.g. through automation), channel ongoing discussions into pattern-work
+ - Attract more contributors, e.g. by lowering the barriers of entry
+ - Level up some patterns to higher maturity levels. e.g. the [InnerSource Portal](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/master/patterns/2-structured/innersource-portal.md) has multiple known instances and even a reference implementation now, so it could be brought to maturity "Validated" relatively easily.
+- Process / Maintenance
+ - Onboard further trusted committers
+ - Process existing content from PRs and Google group into our repository (once that is done we can focus on the contribution process via the GitHub repo exclusively)
+
+## Last Committer Addition
+
+*When was the last committer added to the project? A healthy project tends to add new committers regularly. The report should indicate the most recent date on which a committer was added.*
+
+**Status: no changes/updates since last report**
+
+- 11th of December 2020: @spier
+- 24th of April 2020: @lenucksi
+
+## Committer Diversity
+
+*Cover committer diversity in your project. A healthy project should survive the departure of any single contributor or employer of contributors. What are your steps to make sure that people from all regions on the globe can participate in your project without having to be awake at midnight their local time?*
+
+- Focus on asynchronous collaboration in the #innersource-patterns channel and in the GitHub repo
+- Offering office hours on APAC and EU/Americas time slots (@mishari has started to help with the APAC one, also looking to organize a meetup potentially)
+- Work towards automation of administration tasks, documentation of processes
+- Have Trusted Committers in multiple time zones
+
+## Legal Issues & Other Needs
+
+*Are there any project branding or naming issues, either in the project or externally? Any legal issues? Any infrastructure or strategic needs?*
+
+**Status: no changes/updates since last report**
+
+- **Google Analytics** - can we use it to track readership statistics for our book? (gitbook.com providers Google Analytics tracking natively)
+- **Custom Domain** for the book: Out of the box, the book will live at `innersourcecommons.gitbook.io/innersource-patterns`. If we want a custom domain e.g. to drive traffic to innersourcecommons.org, we would have to configure the DNS for a custom domain. Not sure what is possible but e.g. something like `patterns.innersourcecommons.org/` or `books.innersourcecommons.org/innersource-patterns`. Already connected with @cewilliams about this.
+- Suggestions welcome on how to attract more contributors.
+- Legal: None currently, book illustrations will trigger IP compliance requirements.
+
+## Any issues for the Board to act on?
+
+- None
diff --git a/meta/boardreports/2021-05.md b/meta/boardreports/2021-05.md
new file mode 100644
index 000000000..899124ea9
--- /dev/null
+++ b/meta/boardreports/2021-05.md
@@ -0,0 +1,61 @@
+# InnerSource Patterns WG - Report for Governance Meeting 2021-05
+
+## Reporting Period
+
+February 1st - May 15th, 2021
+
+## Mission
+
+*Briefly describe what your project actually does.*
+
+- Discuss community InnerSource practices and dynamics, collect and document agreed upon best practices of how to do InnerSource - in the form of patterns
+- Continuously publish the most mature patterns as an ebook and website
+
+## Overview
+
+- the [patterns book](https://patterns.innersourcecommons.org/) has lead to various content improvements. gitbook's "Edit on GitHub" feature seems to make this easier for some contributors.
+- patterns get referenced regularly in Slack, especially in #general discussions about InnerSource
+- 3 new patterns + 7 new contributors (see below)
+- switched to using the `main` branch terminology (instead of `master`)
+- gitbook [tweeted](https://twitter.com/GitBookIO/status/1390698860708728836) about our book :)
+- office hours run by Mishari (I believe?) / at least 1 person was asking about these in Slack as well.
+
+## New Patterns
+
+- [Unified Source Code Inventory](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/source-code-inventory.md) by David Terol from Philips (new contributor)
+- [Good First Project](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/good-first-project.md) by Tapajit Dey / Brian Fitzgerald (new contributors)
+- [InnerSource Guidance Group](https://github.com/InnerSourceCommons/InnerSourcePatterns/blob/main/patterns/1-initial/innersource-guidance-group.md) by Isabel - thank you for continuously pushing discoveries from Europace into the Patterns format
+
+## Improving the book
+
+- [Active voice and typos](https://github.com/InnerSourceCommons/InnerSourcePatterns/pull/295) by Doron Katz (new contributor)
+- various spelling fixes by Alexander Andrade (new contributor) - not merged yet
+- typo fix by [@arlou](https://github.com/arlou) (new contributor)
+- removing a duplicate paragraph by Daniela Zheleva (new contributor)
+- cleaning up a bunch of old PRs (only 3 left from 2018/2017)
+
+## Future goals
+
+- hardening the patterns further, by finding 3 known instances for some of the patterns in the book (improves quality and increases trustworthiness of the patterns)
+- level-up more patterns from the GitHub repo to the book. The patterns in the book seem to get more exposure to interested readers.
+- trying out other ways to make the patterns easier to discover (e.g. different pattern categories; index pages at the end of the book or similar)
+- analytics capabilities for the book, so that we can learn which patterns are most relevant (built-in analytics on gitbook.io are not sufficient)
+- try out other forms of engagement around patterns (office hours, "pattern of the month", etc)
+
+## Last Committer Addition
+
+*When was the last committer added to the project? A healthy project tends to add new committers regularly. The report should indicate the most recent date on which a committer was added.*
+
+**Status: no changes/updates since last report**
+
+- 11th of December 2020: @spier
+- 24th of April 2020: @lenucksi
+
+## Committer Diversity
+
+*Cover committer diversity in your project. A healthy project should survive the departure of any single contributor or employer of contributors. What are your steps to make sure that people from all regions on the globe can participate in your project without having to be awake at midnight their local time?*
+
+- Focus on asynchronous collaboration in the #innersource-patterns channel and in the GitHub repo
+- Offering office hours on APAC and EU/Americas time slots (@mishari has started to help with the APAC one, also looking to organize a meetup potentially)
+- Work towards automation of administration tasks, documentation of processes
+- Have Trusted Committers in multiple time zones
diff --git a/meta/boardreports/_template.md b/meta/boardreports/_template.md
new file mode 100644
index 000000000..5df587772
--- /dev/null
+++ b/meta/boardreports/_template.md
@@ -0,0 +1,40 @@
+# Quarterly Report for Governance Meeting
+
+Reminder: The report should not exceed half a page
+
+## Summary (mandatory)
+
+| Key Fact | |
+| ------------- | ------------- |
+| Working Group | *The name of your working group e.g. Patterns* |
+| Reporting Period | *e.g. Feb/March/April 2021* |
+| Mission | *Briefly describe what your project does.* |
+| Last Committer Addition | *When was the last committer added to the project (which date)? A healthy project tends to add new committers regularly.* |
+
+## Project/Community Status and Health (mandatory)
+
+Sum up the status and health of your project and community in a few sentences.
+
+## Project Activity (mandatory)
+
+Describe the overall activity in the project over the past quarter.
+
+## Committer Diversity (mandatory if no Committer was added recently)
+
+In the Patterns Working Group we interpret the term **Committer** here in the sense of [Trusted Committer](../../TRUSTED-COMMITTERS.md).
+
+A healthy project should survive the departure of any single contributor or employer of contributors. To achieve that it needs a sufficient amount of committer diversity.
+
+How do you make sure that people from all regions on the globe can participate in your project without having to be awake at midnight their local time?
+
+## Plans of the Project (optional)
+
+Describe the current plans of the project. Include goals the project is working towards as well as any announcements that should be published through the Marketing working group.
+
+## Other Needs (optional)
+
+Are their any project branding or naming issues, either in the project or externally? Any legal issues? Any infrastructure or strategic needs?
+
+## Issue for the Board (optional)
+
+Are there any issues for the Board to act on?
diff --git a/meta/pattern-template.md b/meta/pattern-template.md
index e753d9d40..703c8778d 100644
--- a/meta/pattern-template.md
+++ b/meta/pattern-template.md
@@ -4,11 +4,15 @@ Short Title Here
## Patlet
-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
+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
## Problem
-What is the problem - crisp definition of the problem. Short description, usually not more than a couple sentences, that describes what the issues and challenges are. Be careful not to morph into information found in other sections below.
+What is the problem - crisp definition of the problem.
+Short description, usually not more than a couple sentences, that describes what the issues and challenges are.
+Be careful not to morph into information found in other sections below.
## Story (optional)
@@ -16,11 +20,17 @@ Sometimes there is a story that helps people understand the pattern better.
## Context
-Where does the problem exist? What are the pre-conditions? **Unchangeable** before the solution goes into place. The content here is often tied to the applicability of the pattern for other readers: "Do I have this same particular situation?"
+Where does the problem exist?
+What are the pre-conditions?
+**Unchangeable** before the solution goes into place.
+The content here is often tied to the applicability of the pattern for other readers: "Do I have this same particular situation?"
## Forces
-What makes the problem difficult? What are the trade-offs? These are constraints that **can be changed** at a cost. The solution might change one or more of these forces in order to solve the problem, while also in-turn changing the context.
+What makes the problem difficult?
+What are the trade-offs?
+These are constraints that **can be changed** at a cost.
+The solution might change one or more of these forces in order to solve the problem, while also in-turn changing the context.
## Sketch (optional)
@@ -32,15 +42,20 @@ Verified resolutions and possible resolutions to the problem.
## Resulting Context
-What is the situation after the problem has been solved? The original context is changed indirectly by way of the solution. Often this section can include discussion of the next possible Patterns/problems introduced. This section can be short in content - the solution may not introduce new problems or change much context.
+What is the situation after the problem has been solved?
+The original context is changed indirectly by way of the solution.
+Often this section can include discussion of the next possible Patterns/problems introduced.
+This section can be short in content - the solution may not introduce new problems or change much context.
## Rationale (optional)
-Explains why this is the right solution; using totally different words WHY this solution balances these forces and this context to solve this problem. Can expand on what-if's or theories.
+Explains why this is the right solution; using totally different words WHY this solution balances these forces and this context to solve this problem.
+Can expand on what-if's or theories.
## Known Instances (optional)
-Where has this been seen before? Helps to reinforce that this is a REAL pattern and that you match the context.
+Where has this been seen before?
+Helps to reinforce that this is a REAL pattern and that you match the context.
May mention:
@@ -49,18 +64,23 @@ May mention:
## Status (optional until merging)
-General pattern status is stored in GitHub's Label tagging - see any pull request. Note that this GitHub label tagging becomes less visible once the pattern is finalized and merged, so having some information in this field is helpful.
+General pattern status is stored in GitHub's Label tagging - see any pull request.
+Note that this GitHub label tagging becomes less visible once the pattern is finalized and merged, so having some information in this field is helpful.
You might store other related info here, such as review history: "Three of us reviewed this on 2/5/17 and it needs John's expertise before it can go further."
## Author(s) (optional)
-Often, this is yourself; If you need to, find someone in the InnerSource Commons to be the nominal author (As Told To); Could also be no-one if you do not want to take on authorship (common with a donut looking for a solution)
+Often, this is yourself.
+If you need to, find someone in the InnerSource Commons to be the nominal author (As Told To).
+Could also be no-one if you do not want to take on authorship (common with a donut looking for a solution).
## Acknowledgements (optional)
-Include those who assisted in helping with this pattern - both for attribution and for possible future follow up. Though optional, most patterns should list who helped in their creation.
+Include those who assisted in helping with this pattern - both for attribution and for possible future follow up.
+Though optional, most patterns should list who helped in their creation.
## Alias (optional)
-If this pattern is also known under a different name than what is listed unter **Title**, please list those alternative titles here. e.g. if the pattern is named after the problem it solves, a helpful alias might be one that describes the solution that is applied.
+If this pattern is also known under a different name than what is listed unter **Title**, please list those alternative titles here.
+e.g. if the pattern is named after the problem it solves, a helpful alias might be one that describes the solution that is applied.
diff --git a/meta/technical-git-howto.md b/meta/technical-git-howto.md
index a4ddd0ddb..ea7b3303d 100644
--- a/meta/technical-git-howto.md
+++ b/meta/technical-git-howto.md
@@ -1,16 +1,19 @@
# Command-line git steps for creating a new Pattern
-If you want to contribute a new pattern, the workflow is done through Branches and Pull Requests (PR's). You can see the available branches on [the branches URL](https://github.com/InnerSourceCommons/InnerSourcePatterns/branches/all) and existing PR's on the [Pull Request page](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls). Branches are meant to separate content, so that multiple people can work all at once. Pull Requests (PR's) are used to bring discussion/review about a specific inner source pattern.
+If you want to contribute a new pattern, the workflow is support by these important concepts:
-There are indeed multiple ways to start a discussion:
+* [Branches](https://github.com/InnerSourceCommons/InnerSourcePatterns/branches/all) are meant to separate content, so that multiple people can work all at once.
+* [Pull Requests](https://github.com/InnerSourceCommons/InnerSourcePatterns/pulls) (PR's) are used for discussion/review of a specific InnerSource pattern.
-* Send a Pull Request for your branch and the maintainers will receive a notification.
-* Create an Issue and ask for comments from some of the maintainers. You can mention them using the '@' symbol prior to their github nickname.
-* Add reviewers to the Pull Request on the website - this sends requests to review your work
+There are multiple ways to start a discussion:
-New patterns should use, as their base, the [pattern template file](pattern-template.md).
+* Fork the repo, create a branch, and then send a Pull Request for your branch. The maintainers will receive a notification about this automatically.
+* Create an [Issue](https://github.com/InnerSourceCommons/InnerSourcePatterns/issues) and ask for comments from some of the [Trusted Committers](../TRUSTED-COMMITTERS.md). You can mention them using the '@' symbol prior to their GitHub username.
+* Add reviewers to your Pull Request in GitHub - this sends requests to review your work
-Please, when starting a new pattern, make sure that it does not already exist. Take a look at some of the [existing patterns in this repository](/README.md#reviewed-patterns-proven-and-reviewed).
+New patterns should use the [pattern template file](pattern-template.md) as their starting point.
+
+When starting a new pattern, make sure that it does not already exist. Take a look at the [existing patterns in this repository](/README.md#list-of-patterns).
## Overview of steps
@@ -20,10 +23,14 @@ The basic steps below can be thought of as *branch*, *commit*, *pull request*, a
## How do you create a branch?
-First you need to create a branch (no need to ask for permission!). For this, let's clone the repository:
+First you need to create a branch (no need to ask for permission!).
+
+For this, [create a fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#fork-an-example-repository) of this repository.
+
+Then create a [local clone of your fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo#step-2-create-a-local-clone-of-your-fork).
```
-$ git clone https://github.com/InnerSourceCommons/InnerSourcePatterns.git
+$ git clone https://github.com/YOUR-USERNAME/InnerSourcePatterns.git
```
Then you should see a message similar to the following one:
@@ -86,7 +93,7 @@ $ git checkout -b pattern/ewoks-do-not-hunt
$ touch patterns/1-initial/ewoks-do-not-hunt.md
```
-You can fill your [markdown](markdown-info.md) file with the [pattern template text](pattern-template.md) and begin to fill it in with your pattern.
+We then fill our [markdown](markdown-info.md) file with the [pattern template text](pattern-template.md) and start to write our pattern.
Once our pattern file is ready to go, we need to add the file to the repo and
commit that change to our new branch.
@@ -96,7 +103,7 @@ $ git add patterns/1-initial/ewoks-do-not-hunt.md
$ git commit -m "InnerSource Pattern to deal with Ewoks that do not hunt"
```
-And we should finally upload that branch and file to the server.
+And finally we upload that branch and file to the server.
```
$ git push origin pattern/ewoks-do-not-hunt
diff --git a/pattern-categorization/README.md b/pattern-categorization/README.md
index 0d859c5e8..892108e37 100644
--- a/pattern-categorization/README.md
+++ b/pattern-categorization/README.md
@@ -6,7 +6,17 @@ Now how do we make it easier for readers to discover the patterns that can help
## InnerSource Program Mind Map
-This first categorization effort uses a mind map to categorize patterns based on the different phases of an InnerSource Program, and the challenges that might appear in the respective phases. See [innersource-program-mind-map.html](innersource-program-mind-map.html). Note that this is still in incomplete visualization i.e. it does not contain all of our patterns.
+This first categorization effort uses a mind map to categorize patterns based on the different phases of an InnerSource Program, and the challenges that might appear in the respective phases. See [innersource-program-mind-map.html](innersource-program-mind-map.html). Note that this is still an incomplete visualization i.e. it does not contain all of our patterns.
+
+In the mind map you will see patterns categorized from left to right in increasing levels of detail.
+
+The logic for these levels is:
+
+- level 0: the InnerSource program itself (as the root)
+- level 1: phase of an InnerSource Program
+- level 2: problem category
+- level 3: specific problem occurring in an InnerSource context
+- level 4: pattern (solution to the problem)
To add new patterns to the mind map, edit the source file `innersource-program-mind-map.md`, and then regenerate the visualization like this:
@@ -15,6 +25,8 @@ npm install markmap-lib -g
markmap innersource-program-mind-map.md
```
+Once this is done please replace `book/innersource-program-mind-map.jpg` with an updated version of this mind map.
+
## Future Ideas for Categorization
We have some other ideas for categories by which the InnerSource Patterns could be grouped.
diff --git a/pattern-categorization/innersource-program-mind-map.html b/pattern-categorization/innersource-program-mind-map.html
index 886cc3e4d..22d381919 100644
--- a/pattern-categorization/innersource-program-mind-map.html
+++ b/pattern-categorization/innersource-program-mind-map.html
@@ -16,10 +16,16 @@
height: 100vh;
}
-
+
-
+