Skip to content
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

New Pattern: Code of Conduct #661

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

rmarting
Copy link

@rmarting rmarting commented Mar 5, 2024

As part of the discussions about adding a new Code of Conduct template in the Standard Base Documentation (#555 and #556) and some research, this PR includes the proposal of a new Pattern in the collection: Code of Conduct.

This pattern wants to cover the space of an InnerSource community/product for healthy and inclusive discussions across different individuals and teams inside of the organization.

It is open for discussion, extending the previous ones and open for more people.

@rmarting
Copy link
Author

rmarting commented Mar 5, 2024

@spier @mcobby Hopefully you can check and review this first version of the Code of Conduct pattern. Feel free to add comments, ideas, or fixing typos to improve it.

Thanks

@spier spier changed the title New Patternr: Code of Conduct New Pattern: Code of Conduct Mar 5, 2024
@spier spier added 1-initial Donuts, Early pattern ideas, ... (Please see our contribution handbook for details) 📖 Type - Content Work Working on contents is the main focus of this issue / PR labels Mar 8, 2024
@spier
Copy link
Member

spier commented Mar 8, 2024

@rmarting thanks for this new PR!

For now I just sent some formatting fixes, making it easier for other reviews (and me) to provide inline suggestions on GitHub. Hope you don't mind that I pushed this straight to your branch.

Hope to review the content of the pattern some time this weekend as well.

Copy link
Member

@spier spier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @rmarting.

Once again, thanks so much for sharing your thoughts with us here.

The sections that new pattern contributors often find the hardest are the Context and Forces sections. So don't be disheartened if it can take a while to wrap your head around those concepts. This video contains helpful explanation about those concepts.

I left most of my comments inline.

However I had two general thoughts that I want to share:

  • Is there a general description of the goals of a CoC that we can link to? (typically these references come from the open source world)
  • What happens when the CoC is broken? Is that something that could be added to the solution or implementation section? Here is an a conference talk related to this that I once heard, and also the Mozilla Community Participation Guidelines contain something about the reporting process in case of a CoC violation. Again this point might be different in InnerSource than in open source, and therefore even more valuable to describe as part of this pattern.

Hope you find this review helpful, and I am happy to answer any questions and help you through the rest of the process of getting this contribution added to our repo.

You rock 🤘


## Patlet

A healthy and inclusive InnerSource community requires strong levels of communications and interactions.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you were to rewrite the Patlet as 2 sentences (1 problem + 1 solution), how might that look like?

The absence of clear rules of communication and interaction leaves room for ambiguity and potential conflicts within the InnerSource community.
Without established guidelines, members may engage in behavior that is harmful, discriminatory, or counterproductive, leading to a breakdown in collaboration and trust.

## Context
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Context section should describe the following:

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?"

The current text rather describes the state that should be achieved after the pattern has been implemented, I think?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this new content fit better the Context section?

Different individuals and teams within the organization collaborate in a healthy and inclusive community without conflicts.
This welcoming, respectful and inclusive environment fosters more collaboration and creates trusted relationships across the organization where all community members feel safe and valued.

## Forces
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Forces section should describe the following:

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.

Example of forces that might apply to this pattern could be:

  • unclarity by contributors about ....

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A listed different actions to clarify better the Forces section. Does it fit better?

## Solution

Develop a Code of Conduct that outlines expected behavior, including guidelines for communication, collaboration, and conflict resolution.
The Code of Conduct will articulate the shared values and principles of the InnerSource community, fostering a sense of belonging and common purpose, such as:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are the "shared values and principles of the InnerSource community" defined in the CoC somehow tied to the values/principles that the org may have defined in other places already?

If yes, then a note about this could be added to the Implementation section.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added some references about the integration with the organization rules and employee handbooks. It is the normal way to define these values and principles along the InnerSource project.

Hope that helps to clarify the solution.

patterns/1-initial/code-of-conduct.md Show resolved Hide resolved
patterns/1-initial/code-of-conduct.md Outdated Show resolved Hide resolved
@@ -0,0 +1,77 @@
## Title
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

collection of general feedback here:

  • Is there a general description of the goals of a CoC that we can link to?
  • What happens when the CoC is broken? Is that something that could be added to the solution or implementation section? Here is an a conference talk related to this that I heard once, and also the Mozilla Community Participation Guidelines contain something about the reporting process in case of a CoC violation. Again this point might be different in InnerSource than in open source, and therefore even more valuable to describe as part of this pattern.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Answering the Is there a general description of the goals of a CoC that we can link to? question, this reference is a good one from the Open Source space, but I don't see how to link here. Maybe adding this reference in the Related patterns...

Regarding to broken the CoC, the implementation section is extended including the reporting process and the consequences when the CoC is not followed. It is a general description, just because, each CoC can differ in the final implementation of these processes, however, all of them must be part of the CoC.


## Implementation

The adoption of well-known covenants, such as the [Contributor Covenant](https://www.contributor-covenant.org/), or the adaptation of some internal covenant for members of the organization are good starting points for implementation of this pattern.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just noting that I, as a non-native English speaker, don't know the word covenant.

Is there a word that means the same but is a bit simpler?
e.g. does "convention" mean the same?


1. Collaboratively draft the Code of Conduct, involving input from community members representing diverse perspectives.
2. Seek feedback and consensus from the community to ensure buy-in and ownership of the guidelines.
3. Publish the finalized documents in a prominent location accessible to all community members, such as the InnerSource platform or collaboration tools.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you elaborate on what you mean by these two things:

  • InnerSource platform
  • collaboration tool

3. Publish the finalized documents in a prominent location accessible to all community members, such as the InnerSource platform or collaboration tools.
4. Regularly review and update the Code of Conduct as needed to reflect evolving community norms and values.

A good practice for the third point is to share the Code of Conduct in each InnerSource community repository as a file named `CODE_OF_CONDUCT.md`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this possibly an area where a CoC in InnerSource could differ from a CoC in open source?

What I mean is, do you expect that different InnerSource projects within an org would end up having different CoCs? If not, could one just link to a central document, to prevent duplication?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually see two approaches:

  • A shared template repository with the original content to use when a new project starts
  • A shared resource linked from each CoC file

To make it easy, just explained the second option. What do you think?

@spier
Copy link
Member

spier commented Mar 11, 2024

Hi @discombobulateme, I was wondering if you have heard about a Code of Conduct in the context of an InnerSource project before? Curious to hear your thoughts on the applicability of the concept outside of the open source or open community domain. Feel free to leave a comment here or add in line thoughts to this PR, whatever works for you.

Any time you can spare, we would appreciate so much! :)

@spier
Copy link
Member

spier commented Mar 11, 2024

Also I found the slides from the amazing The code of conduct has been broken talk I had already mentioned before.

Possibly we could borrow the idea from slide 11 for an illustration for your pattern here?

@discombobulateme
Copy link

discombobulateme commented Mar 11, 2024 via email

Copy link
Author

@rmarting rmarting left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@spier Just followed your suggestions and I updated the content with new material that hopefully fits all your ideas.

The absence of clear rules of communication and interaction leaves room for ambiguity and potential conflicts within the InnerSource community.
Without established guidelines, members may engage in behavior that is harmful, discriminatory, or counterproductive, leading to a breakdown in collaboration and trust.

## Context
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this new content fit better the Context section?

Different individuals and teams within the organization collaborate in a healthy and inclusive community without conflicts.
This welcoming, respectful and inclusive environment fosters more collaboration and creates trusted relationships across the organization where all community members feel safe and valued.

## Forces
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A listed different actions to clarify better the Forces section. Does it fit better?

## Solution

Develop a Code of Conduct that outlines expected behavior, including guidelines for communication, collaboration, and conflict resolution.
The Code of Conduct will articulate the shared values and principles of the InnerSource community, fostering a sense of belonging and common purpose, such as:
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added some references about the integration with the organization rules and employee handbooks. It is the normal way to define these values and principles along the InnerSource project.

Hope that helps to clarify the solution.

3. Publish the finalized documents in a prominent location accessible to all community members, such as the InnerSource platform or collaboration tools.
4. Regularly review and update the Code of Conduct as needed to reflect evolving community norms and values.

A good practice for the third point is to share the Code of Conduct in each InnerSource community repository as a file named `CODE_OF_CONDUCT.md`.
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I usually see two approaches:

  • A shared template repository with the original content to use when a new project starts
  • A shared resource linked from each CoC file

To make it easy, just explained the second option. What do you think?

@@ -0,0 +1,77 @@
## Title
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Answering the Is there a general description of the goals of a CoC that we can link to? question, this reference is a good one from the Open Source space, but I don't see how to link here. Maybe adding this reference in the Related patterns...

Regarding to broken the CoC, the implementation section is extended including the reporting process and the consequences when the CoC is not followed. It is a general description, just because, each CoC can differ in the final implementation of these processes, however, all of them must be part of the CoC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1-initial Donuts, Early pattern ideas, ... (Please see our contribution handbook for details) 📖 Type - Content Work Working on contents is the main focus of this issue / PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants