Launching a project and spreading the word is the easy word, but how do you keep the people around? You can successfully build an atmosphere where the community evangelizes, contributes, and promotes your project.
How to ensure that you set up a successful project
Any successful project requires a welcoming community to maintain its reputation and success. If your project is starting to pick up, it is best to reward the early contributor with an unforgettable experience. This way, they will keep coming back.
Making people feel wanted in your project
According to a survey conducted by Github in 2017, the greatest problem for open source users was confusing and incomplete documentation. When your documentation is in order, you will invite useful contributions and interactions to your project.
In every stage of a contributor’s experience, you need to reduce the friction. According to Mike McQuaid, one should think about the community’s project in what he calls the contributor funnel. The top of the funnel is made up of potential users, while the bottom of the funnel is made up of active users.
While community building, one must consider how to get those at the top of the funnel to the bottom. When returning users get a good experience, they keep coming back. The first step is to put your documentation in order.
To make it easy for beginners, label the issues they can tackle with ease. Github surfaces these issues all over the platform and results in meaningful contributions. This way, you will reduce the friction of users as they try to solve issues that are beyond their level.
Make a user-friendly project. The project needs a friendly README segment that tells all about the project. Clear codes will give the users a clear head start.
Let your users know how to contribute to your project in your contributing file and keep everything up to date. During these interactions, a few people will pull requests or open an issue, and this is the opportunity to pull them to the bottom of the panel.
Most open source contributors are casual contributors, meaning they only do so occasionally. This does not mean that they are not important. On the contrary, you should make it easy for them to make contributions whenever they can.
When you get a new user on your project, the first step is always to show appreciation to them for their interest. A single negative experience is enough to make a user never return to your project.
Prioritize responding to users. When you postpone responses for weeks, chances are that the users will have long forgotten about your project when you respond. When you encourage your contributors, you are simply investing in your project. When contributors are excited to carry on with the work, the pressure to do everything alone will be removed.
Be open about all the contributions that will come your way. There are several ways people can contribute to a project, and it’s good to let people do what they can.
As much as you are open, there are contributions that you will disagree with. In such a case, thank the contributor and explain to them why their idea does not fit the scope of your project, and link to relevant documents.
Keep your documentation up to date
Open source projects thrive when everything is in the open. It is natural to want everything private with a new project, but imagine wanting to contribute to a project and not knowing what you are contributing to and why. This is why documenting everything and making it public is vital.
You need to be transparent about the roadmap of your project, and the contributions you expect to get. If you notice a repeat of the same problem with multiple users, you need to update your README and include answers to these problems.
If the workload is substantial, you will need to have a pull request and mark it as a work in progress (WIP). The contributors will feel included from the early stages of the project.
Writing things down helps contributors participate at every step of the way. You might get an idea of something you didn’t even know you needed. Writing down is not just restricted to technical documentation, but anything you feel should be publicized.
Don’t leave anything out, including any meetings held. Document all the takeaways and relevant issues and publish your notes. You will be pleasantly surprised by the feedback from this kind of transparency. The publishing should be inclusive of all the work that you do.
Prioritize being responsive
A study conducted by Mozilla revealed that codes that responded within 48 hours had positive returns and encouraged return contributions. We can’t emphasize this one enough. If you put your project in public, you will receive all kinds of feedback. People will need help to start or have questions on different things. If someone files an issue, you have to respond as soon as possible. When you respond swiftly, you will create a dialogue, and people will get enthusiastic about your project.
When you are unable to respond immediately, you should acknowledge receipt of the issue to increase engagement. Conversations about your project can be carried out on other platforms such as Twitter, Reddit, or Stack Overflow. You can set notifications whenever someone mentions your project on these platforms.
Create a place for the community to meet
There are two main reasons you need to have a place for the community to congregate. The project is about them, and people with similar ideas would appreciate a common place to discuss their ideas. Those joining the project can catch up in the archives.
Secondly, this can be a stress reliever for you. When there is no public forum, people are likely to contact you directly with questions. This might seem easy at first, but it could get overwhelming with time if your project becomes popular. Don’t fall for the temptation to engage people privately, but direct them to a public forum.
The easiest way to respond to issues is to direct people to raise issues in a public forum instead of direct messages to your email. You can opt to create a Twitter account or IRC channel for people to discuss your project. You could also set aside some office hours to help the community.
Note that the best way to keep your public forums conducive for all is to have a method of taming misconduct and violations. You can have a mechanism where people can report abuse, misconduct, and violations privately. Create a dedicated email for this if you do not wish to use your email.
Expand your community
Growing your community numbers can be good or bad, depending on your approach. There are mechanisms you can use to become a force of construction.
Don’t accept bad behavior
When a project becomes public, it is bound to attract the wrong crowd. They can deviate from the issues with unnecessary topics, become bullies, or quibble over non-issues. As much as you are looking for contributors, you do not need these, and you must adopt a zero-tolerance for this behavior. If you turn a blind eye, other members of your community will be left uncomfortable and can leave.
Irrelevant debates over trivial issues are a distraction to the community and you from the real issue at hand. These can upset new members and make them unwilling to participate. When you notice any negativity, do not hesitate to call it out publicly.
Do not be rude, but apply a firm tone. If this doesn’t stop the behavior, you may need to ask the involved parties to leave. You can have a clearly outlined code of conduct as a path to constructive communication.
Meet contributors are their level
Your contributing file should have a dedicated place for how to get started for new contributors. The need for proper documentation only increases with the growth of your community. A special landing page for new members can work perfectly for this purpose.
This documentation comes in handy for casual contributors who go through them to get the drift of your project. The issue queue should have bugs labeled for new members, e.g. first timers only or good first issue. These bugs will make it easy for a newcomer and get them started as quickly as possible. Your documentation should make people feel welcome at all stages.
It is impossible to interact with all people who land on your project. Some contributions could have escaped your reach as a contributor might have felt intimidated or confused at the starting point. Apply kind words to keep people from leaving your project.
Let the community feel a sense of ownership of the project
When people feel a sense of ownership, they get attached to a project. This should not make you turn your vision over to people or accept unnecessary contributions. However, when you give people credit, they are bound to stick around. Some sharing ideas include;
Write a blog post or a thank you newsletter to all contributors if your community is sizeable. Good examples of these are Hoodie’s shootouts.
Don’t resolve easy bugs: Delegate these simple tasks to new members. You can also recruit new members or mentor someone willing to contribute. This is not an overtime investment and can seem unnatural at first, but it pays with time.
Start an AUTHORS or CONTRIBUTORS file for your project and list everyone who has made contributions.
Opt for commit access for your contributors. This way, they will be excited to polish their patches, and you might be lucky to find new maintainers for projects that you haven’t worked on for a while.
If you are using GitHub, shift your project from a private account to an organization account with one backup admin. This is much easier to work with external collaborators.
Most of the projects have a maximum of two maintainers who work single-handedly. When your project is big, this translates to a bigger community, which means ease in getting help. As much as you might not find someone to answer the call immediately, putting out a sign helps when done as soon as possible.
Conflict Resolution
When the project is relatively new, decision-making is always easy as you do whatever suits you. As your project expands, your decisions become important to other people. Even when your project has many users and only a few contributors, your decisions will have an impact. If you have done everything right from documentation of everything and cultivated a friendly community, your community will not struggle with finding solutions. However, you are still prone to issues that are not easily solved.
Let kindness be a priority
Tempers can rise when a community is grappling with a particular issue. When this happens, people can turn on each other or you. This is where your role as a maintainer comes in to avoid escalation. You must always strive to act as a moderator or facilitator and never fall into the temptation of jumping into the fight. You might not realize it, but other people are looking up to you, so set a good example. This applies even when your opinion on the topic at hand is strong. If someone goes out of the code of conduct, act immediately to keep things civil and productive. If you need to express your disappointment or disagreement, do so calmly without aggravating the matter.
Make your README a Constitution
Your README page should be much more than a mere set of rules. This is also a place to sell your goals, vision, and roadmap. When people are overly drawn to one feature and insist on debating it, it becomes inevitable to visit your README and edit it to accentuate your higher vision for the project. This helps to depersonalize the discussion and focus on the entire project for fruitful discussions.
Don’t place your focus on the destination and neglect the journey
Voting is inevitable and gives a tiebreaker, but one should emphasize seeking consensus rather than consensus. The consensus-seeking process involves sober and thorough discussions that offer the community a platform to air their views until they feel that they are adequately heard and the community moves forward when all major concerns are addressed. Some projects will use a voting process for major decisions. While this will swiftly offer a solution, it might not address each concern and offer a listening ear. This can quickly turn political where people vote to return favors to others or feel obligated to vote a certain way due to pressure. Most silent followers in the community won’t vote, and new users who are unaware of any voting taking place. The consensus method does not aim for a perfect answer but offers a platform to listen and discuss.
Don’t let the conversation deviate from action
Learn to differentiate between productive and unproductive discussions to avoid time wastage. You are at liberty to shut a discussion down if it goes off-topic or people start to turn on each other. When you let it slide, you risk hurting the health of your community and discrediting the issue at hand. Shutting down sends a message that those discussions are prohibited, but if let to continue, future discussions will only get far from the real issues. Refocus the group by asking questions like ‘what step should we take next?’ If a solution has been reached, or the discussion is not heading toward any solutions, close it and explain your action. Only encourage discussions that are steered towards the solution.
Don’t intervene when it’s unnecessary
Always put context into consideration and look at who is involved in the discussion and how they represent the community. Look at the mood of the community in the discussion and consider the silent community and their feelings. If the issue does not touch the broader community, you cannot neglect the minority. If the issue is recurrent without any tangible solutions, point the people to a previous thread that addressed the matter and close the current thread.
Find a community tiebreaker
When communication is clear and a positive attitude intact, most issues are easily resolved. However, even productive topics can raise contentious issues that lack a definite way to proceed. This can be solved by individuals or groups that can break the tie. However, the tiebreakers should come as a last resort as divisive issues are vital for your community’s growth. A tiebreaker can be primarily the maintainer of the project or a small group of voters. You will have successfully identified a tiebreaker and a related process in the GOVERNANCE file way before you ever put it to use. Take hold of these opportunities and forge a collaborative process to get to a resolution at all times.
Community is everything for open source
The fuel to the endless hours spent on open source weekly is a healthy and thriving community. The majority of contributors point fingers as the reason for failure to work. This power can be tapped positively to help someone get an unforgettable open source experience.