This repository has been archived by the owner on Apr 29, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #32 from open-sauced/feat/community
feat: Add "Building and Nurturing a Welcoming and Supportive Community" chapter
- Loading branch information
Showing
3 changed files
with
129 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,125 @@ | ||
# Building and Nurturing a Welcoming and Supportive Community | ||
|
||
Open source is more than just maintaining and improving a project. It's a dynamic environment where maintainers, contributors, and users come together to collaborate, contribute, and grow. That said, the people involved in the project are the core and heart of open source. | ||
|
||
As more and more people engage and contribute to your projects, it becomes crucial for you to provide them with the necessary support and motivation to establish a welcoming and positive community environment. Doing so can build stronger relationships and promote a sense of belonging among your community members to keep them returning and remaining dedicated. | ||
|
||
In this chapter, you will learn how to build and nurture a welcoming and supportive community in open source. | ||
|
||
## Positive Community Culture | ||
|
||
There are many types of people when talking about engagements in a community. Some are actively engaging, some come and go, and some are lurkers. But one thing is sure: everyone has the same interest (your project), and they bring value to your project. You always want to ensure everyone feels welcomed, included, and, most importantly, safe in your community. And one of the keys to achieving that is fostering a positive community culture. | ||
|
||
### Open Communication | ||
|
||
You want to encourage open communication in the community. Open communication allows everyone to understand what's happening around the project and community and helps to build trust and increase healthy collaboration. Everyone should feel comfortable expressing their thoughts and ideas, but at the same time, they should be able to listen and respond to others in a respectful manner. You can read the chapter [How to Communicate and Collaborate Effectively](./communication-and-collaboration.md) for tips about communication and collaboration. | ||
|
||
### Diversity and Inclusivity | ||
|
||
Creating a safe and welcoming community environment involves prioritizing inclusion and promoting diversity. Inclusion means treating everyone with value, regardless of background, beliefs, or opinions. By fostering a culture where everyone is encouraged to be authentic while appreciating others, you can nurture a community where everyone feels respected and valued. Building a community where everyone feels they belong is the most important thing. | ||
|
||
### Guidelines | ||
|
||
Every open source project should have a Code of Conduct as a clear set of guidelines for how members within the community should behave and treat each other. You can, for example, emphasize the importance of using positive and inclusive language, treating others with respect, and avoiding discrimination or harassment. Inform them of the consequences they may face if they do not follow the guidelines. A Code of Conduct helps to prevent conflicts, promotes respect, and ensures that everyone in the community feels safe and comfortable. To create one, you can read the [How to Write a Code of Conduct](./how-to-setup-your-project.md#how-to-write-a-code-of-conduct) section. | ||
|
||
### Addressing Conflicts | ||
|
||
Imagine you're seeing a member behave disrespectfully towards another member on GitHub or Discord. Or you receive an incident report from a member saying someone harassed them. Addressing conflicts is crucial to fostering a positive culture. If you don't promptly resolve them, your community will no longer feel safe and will lose their trust in you. You can read more about managing conflicts in the [Handling Difficult Situations](./communication-and-collaboration.md#handling-difficult-situations) section. | ||
|
||
### Leading by Examples | ||
|
||
Leadership is not about being in charge. It's about taking responsibility and setting an example for others to follow. You want to demonstrate positive behavior, be respectful to others, and be willing to listen and learn. Doing so will make others follow the same steps as yours. | ||
|
||
### Recognization and Appreciation | ||
|
||
Recognition is the key to unlocking the full potential of the open source community. Expressing gratitude and kindness towards others — in this case, your team and contributors — is fundamental to creating a supportive and positive community culture. | ||
|
||
Contributions to open source come in all shapes and sizes. You want to take a moment to recognize and track these invaluable contributions. Appreciating contributions can be made in many ways, such as through awards or rewards, public recognition, or even just acknowledging their contributions and efforts. One way to recognize and appreciate your contributors is by installing the [All Contributors](https://allcontributors.org/) bot in your project to automate adding project contributors. | ||
|
||
At OpenSauced, we recognize that [contributions aren't just green squares](https://opensauced.pizza/blog/moneyball-for-engineers) and appreciate all kinds of contributions that have made our projects and community thrive. That's why, besides having the All Contributors installed in our [guestbook repository](https://github.com/open-sauced/guestbook), we enjoy recognizing and giving shoutouts to our contributors through our monthly live stream, blog posts, newsletter, and social media. | ||
|
||
Remember that recognizing and appreciating contributions can create a ripple effect throughout the community, inspiring others to do the same and increasing positivity. | ||
|
||
## Creating Opportunities for Contributions | ||
|
||
In an open source environment, people want to make meaningful contributions and be part of the community. If you want to see return contributors, you want to create the space and opportunities to encourage them to return and contribute more. In this section, we will talk about how to create opportunities for contributions. | ||
|
||
### Identifying Contributors Levels | ||
|
||
To create opportunities, you need first to identify contributors' entry points. | ||
|
||
#### New Contributors | ||
|
||
They are generally new to open source or someone new to your project. This type of contributor usually still needs hand-holding and guidance. So, you want to be able to point them to resources about the flow of open source and how to use git and GitHub. Consider having clear and updated project documentation for them to refer to. | ||
|
||
#### Intermediate Contributors | ||
|
||
Intermediate contributors have some experience in open source but want to go deeper in their engagement and contributions. They usually don't need hand-holding and can understand how to work with your project by reading the documentation or finding resources independently. On this level, they might want to grow their skills and network and be interested in becoming a maintainer. | ||
|
||
#### Expert Contributors | ||
|
||
They are seasoned open source contributors who can contribute at a high level and potentially lead projects. At this level, they can give ideas and contribute to enhancing your project outside the box because they enjoy using it. Whenever they encounter bugs, they want to fix them quickly so they can still use your project and implement it on their projects. | ||
|
||
### Encouraging Diverse Contributions | ||
|
||
You want to create a space that welcomes diverse contributions, regardless of contributors' coding skills, for the success of your projects. By encouraging both coding and non-coding contributions, you can ensure everyone can participate and contribute their unique skills and perspectives. But you also need to consider the amount of support you can give them if they need it. | ||
|
||
#### Code Contributions | ||
|
||
Consider creating issues for all levels of contributors after identifying their entry points. The `good first issues` are usually for beginners in open source and someone new to your project. When creating a `good first issue`, think of providing suggested solutions, the lines of code that cause the issue, and resources to help them work on it. For contributors who don't need extra support, you can create an issue with `beginners` or `help wanted` labels based on the complexity. | ||
|
||
#### Documentation | ||
|
||
You might add new features or change some things in your projects. That's one reason you want to always keep your documentation up to date: to reflect on the current state of your project. | ||
|
||
You can create issues to improve the documentation or encourage your community to create tutorials and how-to guides. | ||
|
||
#### Community Contributions | ||
|
||
As your community grows, engaging with each member becomes increasingly difficult. To manage your community effectively, having people who can facilitate interactions between members and provide timely responses will be helpful. | ||
|
||
You can encourage community members to contribute by engaging in online forums and chat apps. They can help answer questions, share insights, and provide support. This not only helps to build a sense of community around your project but also helps to foster a culture of collaboration and mutual support. | ||
|
||
#### Advocacy and Outreach | ||
|
||
Some of your contributors may have skills that can be useful to promote your project and organization, such as writing or public speaking. You can motivate them to get involved by encouraging them to write blog posts and create educational content related to your project. They can also speak at conferences or give workshops if they want to. Posting or reposting information about your project on social media is another way to contribute. At OpenSauced, we encourage our community to write blog posts under our [organization on Dev.to](https://dev.to/opensauced). | ||
|
||
#### Managing Issues | ||
|
||
Issues management involves identifying, analyzing, and prioritizing bug issues and feature requests during development. You can create a triage team and encourage your community to help you triage and prioritize the issues in your repositories. You want to provide them with a clear guide on managing issues. You can see the OpenSauced [triage guide](https://docs.opensauced.pizza/contributing/triage-guide/) as an example. | ||
|
||
#### Community Events and Hackathons | ||
|
||
At OpenSauced, we organize the [#100DaysOfOSS challenge](https://docs.opensauced.pizza/community/100-days-of-oss/) to encourage contributors of all technical backgrounds to immerse themselves in collaborative development and engage with a supportive community. | ||
|
||
Organizing community events and hackathons is one way to strengthen your community's collaboration and relationships. You can create a survey or poll to gather feedback on what events your community wants to see. Then, consider forming a committee or group of members interested in organizing the events and letting them take charge with your support. By allowing your members to get involved and contribute, you can increase the sense of community and belonging. | ||
|
||
## Fostering New Talents | ||
|
||
After you have created opportunities for people to contribute to your project, it's important to keep track of which contributors keep coming back and consistently producing quality work. These contributors are the ones who have the potential to become core members of your community, and you want to foster their growth and development within your project. | ||
|
||
By building a core group of community members, you can ensure that your project can continue to grow and evolve even after maintainers move on to other projects. These core members can help to onboard new contributors, share knowledge and expertise, and provide continuity in the project's development. | ||
|
||
To foster the growth of these new talents, you can provide them with mentorship, feedback, and opportunities for leadership roles within the project. Investing in these contributors can build a solid and sustainable community to help your project thrive over the long term. | ||
|
||
### Identify New Talents with OpenSauced | ||
|
||
You can utilize OpenSauced's features, [Insights Page](https://docs.opensauced.pizza/features/insights/) and [Lists](https://docs.opensauced.pizza/features/lists/), to identify new talents by tracking active project contributors. | ||
|
||
#### 1. Using Insights Page | ||
|
||
You can list the projects that you maintain on the Insights Page. This feature allows you to monitor the activity in your projects and identify contributors who actively contribute and make impacts on your projects. | ||
|
||
You can find more information about your contributors in the "Contributors" tab. It allows you to view their activity level, the date of their last contribution, and the number of contributions. It also gives you information on their time zone and the languages they use most. Read more about [Insights Page and how to create one](https://docs.opensauced.pizza/maintainers/maintainers-guide-to-open-sauced/#insights-connecting-your-repositories) on our docs. | ||
|
||
#### 2. Using Lists | ||
|
||
After you identify potential new talents for your projects, you can create a List and add them here. This feature enables you to monitor and analyze your contributors' activity levels and contributions more deeply, such as tracking the number of commits and pull requests they have made. You can read more about [Lists and how to create one](https://docs.opensauced.pizza/maintainers/maintainers-guide-to-open-sauced/#lists-connecting-with-contributors) on our docs. | ||
|
||
## Conclusion | ||
|
||
Open source is a journey of learning, growth, and opportunity. So, building and nurturing a welcoming and supportive community is crucial for long-term success. | ||
|
||
A positive community culture that encourages diverse contributions and fosters new talents can help you attract and retain top talent, stimulate innovation, and increase productivity. By creating a supportive environment where people feel valued, respected, and empowered to share their ideas, you can unlock the full potential of your contributors and achieve your goals. | ||
|
||
However, building a positive community culture is not a one-time task; it requires continuous effort and commitment from everyone involved. You need to invest in promoting diversity and inclusion, encouraging collaboration and teamwork, and fostering a sense of belonging. Doing so can create a culture of trust and respect that enables your community and projects to thrive. In short, building and nurturing a welcoming and supportive community is not only the right thing to do but also a great strategy to help your project and your community succeed. |