-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Promoting Governance Levels pattern to Structured #765
base: main
Are you sure you want to change the base?
Conversation
…m if all criteria are fullfilled.
A question to @MaineC, @tsadler1988, @robtuley, @rrrutledge: Is what the Governance Levels pattern calls "distributed ownership" the same as what the pattern Group Support describes? If yes, then we could add links from one pattern to the other. My initial take: |
I think the group support pattern, as well as the explicit shared ownership pattern both describe ways to establish shared ownership, while this pattern here describes shared ownership itself. For this pattern, to make it easier to understand, you could add the open source analogy to each level: Bug reports welcome: shared source (non OSS) We had these parallels in the original PR discussion but somehow didn't move them to the pattern itself. |
…operating models, to make them easier to compare.
@@ -1,6 +1,6 @@ | |||
## Title | |||
|
|||
Transparent Governance Levels | |||
Project Governance Levels |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Many times our patterns are related to either the InnerSource program, or a specific InnerSource project.
To make it explicit that we are talking about the governance of a specific project, we might add this to the name.
(Also we are using the term "transparent" too frequently)
Disadvantage: We may end up using to term "project" in pattern names too frequently as well, much like "InnerSource".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pattern also mentions the "InnerSource operating model", as an alternative phrasing to "governance levels". Maybe we should pick only of of the two and stick to it throughout the pattern?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Who can contribute" would be another possible name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Flutter calls it the "Inner Source Pyramid"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this pattern is also known under a different name than what is listed unter **Title**, please list those alternative titles here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was thinking something like 'explicitly defined governance' or 'defined project governance'.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have added the Alias section, just in case we want to add some more there.
However finding the one title/name that we can stick to, is still a good thing to do. This name will be used a lot when referencing the pattern, will show up in the URL, etc. So I think it is worthwhile to burn some brainpower on this one :)
Also see Naming Patterns.
And yes, also here applies "naming things is hard" :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More funky names:
- What's my leverage?
- How much say to I get?
@MaineC I could not find this. Can you point me to it? This is an interesting case of doing forensics of how the pattern has developed over time :) |
@robtuley we are finally pushing this pattern to the next stage of maturity, which will also mean that we will get it published in our online book 🥳 I just saw here that Flutter has a new visual for the pyramid, which I would like to integrate into the pattern: Would that be ok? Also are there any new experience with this approach at Flutter that you would like to add to the pattern? |
My brain betrayed me here - apparently in one of the refinements of the pattern we did move the information I thought was only available as PR comment into the pattern itself... |
https://github.com/search?q=repo:InnerSourceCommons/InnerSourcePatterns%20governance%20levels&type=pullrequests#issuecomment-765274307 ... for pattern archaeology - that comment may once have held interesting information, except now it's on a dying platform, so not sure if the snippets I linked can still be reached. |
http://www.joelwest.org/Papers/WestOMahony2008-WP.pdf ... Found the
related/ linked paper...
|
@tsadler1988 just realized that your talk Ownership in a DevOps and InnerSource environment - Tom Sadler (BBC) is actually from 2023. Did the BBC make new experiences with the Distributed Ownership model you want to add to this pattern? |
@MaineC is your org an adopter of this pattern? i.e. do you want to add your org to the Known Instances? |
@spier sure, you can also add Europace AG to the list of users. It's fairly central for us actually as it helps potential contributors with what they can expect from the project they depend on. |
In my mind, those 2 patterns (and maybe others too, such as Core Team) are specific InnerSource governance/operating/ownership models, whereas this pattern is about communicating those differing models, and raising awareness of which ones are in use by which projects. Side note - I do wonder if we could classify these models into a few groups e.g. (from hardest to softest ownership):
Note it's also possible to slice a project up folder by folder and apply different models as necessary. EDIT: I realised I'm describing what's already covered by the Pyramid, just slightly differently.
https://www.youtube.com/watch?v=qiaWbu8czPc is my latest talk on ownership, but I don't think I go into detail except to say it's still fairly new but working well so far. Internally, we've been reviewing this exact thing over the past few weeks so we do have more to share, but there's no talk or blog to reference. Happy to share some insights, let me know and we can discuss elsewhere. Also, would it be helpful to incorporate some of the diagrams I use? E.g. |
So much great input in your last comment @tsadler1988! Let's find a way to work this into this pattern. For that we don't need a blog post as reference either. Most of the time a pattern is written based on the experience of 1-2 organizations anyways, and then further generalized as more different orgs contribute to the pattern (if that happens). Therefore I have added you to the authors of the pattern already, to make sure that you get props for all of your contributions to this topic. Do you want to have a chat one of these days about what you discovered at the BBC related to these governance levels? |
Sounds good! I have a busy few days but have availability from Tuesday onwards. |
Same here: We ran into a situation where teams were using PRs also for code that was supposed to be used just by that one team. Others saw that - and in a "if it walks like a duck, and quacks like a duck, it is a duck" kind of way assumed, that the project is open for contributions. What nobody could see from the outside though was the lack of time and focus for mentoring external contributors. That reminded me of what we see in open source: Just because two projects have the same license, the promise of what you get back in return for contributions can differ wildly: Ranging from "if you invest your time and expertise, we will share control over the project's future with you" in vendor neutral projects to "write access comes and goes with your employment contract" in single vendor projects. In open source as well it helps contributors to know more about a project's governance model - to understand that even if the license is the same, projects still differ. |
@MaineC it does speak for a flourishing InnerSource culture when teams just assume that they can contribute as soon as the see any other PRs on the repo. So in a way I like it :) Also it would be a cool baseline assumption to say "I am sure they will accept contributions, why wouldn't they". But I can certainly see your point that the maintaining team may not have time to support the external contributors, which then may lead to frustration. Personally I always saw "talk before code" in this scenario. I just mean that before sending any significant code contribution, I would want to file an issue/discussion to start a conversation or even just go straight to the team and talk to them (f that is an option). That approach should always reveal when contributions are not possible for the given repo. |
Referencing back to Open Source: That then has the potential for frustration if there is an expectation of being made committer one day. Clear expectation management helps in that case. Internally as well: That then has the potential for frustration if the project lacks documentation, mentoring time, testing etc. Clear expectation management helps there as well.
That is another ingredient that is needed for contributions to work - and one that also in Open Source has to be taught over and over again. (Which is why it's great to have people first go through InnerSource, so when submitting contributions towards OSS they are already familiar with these basics ;) ) Another thing linked to the Governance levels is the question of "what does it take for a project to be InnerSource ready": Well, if all you want to achieve, is solve some team internal collaboration challenges, then the bar for InnerSource ready is fairly low. If you are planning to accept one contributions once every quarter than you can deal with that on a case by case basis, spend more time bringing people up to speed personally. If you are planning to accept a dozen contributions daily then you'll need more automation, better documentation etc. If you are planning to go for shared ownership then what it means to be InnerSource ready is yet another level. Those questions are what we are addressing with the governance level project setup pattern. Or to link back to Open Source: Depending on how much control each participant is willing to give up, you will end up as a single vendor, vendor neutral foundation based model or something else. Resulting from that will be community behaviours. Circling back to using Open Source that means that you need an understanding of the governance model in order to be able to predict the future of the project. |
@@ -58,6 +58,7 @@ Our mission | |||
* [Extensions for Sustainable Growth](/patterns/2-structured/extensions-for-sustainable-growth.md) - *An InnerSource project is receiving too many contributions, making maintenance difficult. By offering an extension mechanism outside of the core project, the maintainers enable scaling of project capabilities with minimal cost and maintenance overhead.* | |||
* [Standard Release Process](patterns/2-structured/release-process.md) - *Teams may hesitate to adopt an InnerSource project if they are unsure of its maturity. To address this, consistent release notes and published artifacts are crucial. These practices showcase a strong dedication to the project, instilling confidence and assuring users of ongoing commitment to sustainable and well-managed software.* | |||
* [Group Support](patterns/2-structured/group-support.md) - *What happens if a team or individual no longer supports an InnerSource project? Keep the project alive by forming a group of interested individuals.* | |||
* [Project Governance Levels](patterns/2-structured/governance-levels.md) - *There are projects in multiple stages of InnerSource adoption. Contributors get confused when working with projects that are at different stages.* |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note to self: Update the Patlet here, once we have decided which Patlet text we want to use.
@@ -1,24 +1,25 @@ | |||
## Title | |||
|
|||
Transparent Governance Levels | |||
Project Governance Levels | |||
|
|||
## Patlet | |||
|
|||
Several teams are using different InnerSource patterns and all calling it "InnerSource", so the term is not precise enough to usefully describe a set of working practices without confusion. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The use of "InnerSource patterns" in here might be confusing.
@@ -53,42 +56,59 @@ The same levels make sense inside of organizations. | |||
|
|||
The solution is to create a universally understood language to describe the InnerSource operating models that are used in your organization. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we replace "operating model" with "governance level" everywhere, to use this term consistently through out the pattern?
Examples of promoting the model names (3) are: | ||
### Promoting the Governance Levels | ||
|
||
Examples of promoting the model names are: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we say "governance levels" instead of "model names"?
Now that this pattern has received its 2nd org confirming the applicability of the pattern (see #764), let's push this pattern to the next maturity level "Structured".
Checklist
from the Contributor Handbook:
Extras
possibly porting these back to the contributor handbook after this
History
It might help to review previous PRs related to this pattern: