Sometimes when working on a product, you need a way to communicate with the team and users of the software that isn't limited to known issues with the product. GitHub Discussions are a great way to provide an open forum for communication.
Here's a great video by the GitHub team that quickly explains GitHub Discussions!
GitHub Discussions have many uses, and it can be hard to know where to start. The following topics provide some good guidelines to follow.
However, try not to constrain yourself to only these topics. The point of GitHub Discussions is to provide an open forum for communication!
New improvements can be simple or complex. Before implementing an improvement, think about how to communicate it to the team. Generally, an improvement will go through 3 stages:
However, sometimes a stage can be skipped depending on the certainty and difficulty of implementation, so those need to be established first.
GitHub's recommendation is:
"in any given project or Sprint, you have things you need to discuss and those you need to do. Discussions are for—no surprise here—discussing things. Issues are for cataloguing the work you need to do after you’ve reached a decision about how to move forward."
GitHub Discussions is the right place to start when certainty is low. Raising it in this setting lets the whole team discuss the proposal and reach a consensus about what to do. Make sure to @mention any important stakeholders e.g. @BobNorthwind
Figure: SSW Rules | GitHub | Discussions
GitHub Discussions can be converted to GitHub Issues with a single click!
Figure: 1 of 2 - SSW Rules | GitHub | Discussions - Convert a Discussion to an issue
Figure: 2 of 2 - SSW Rules Content Discussion Converted To Issue
Using votes to prioritize community needs on GitHub
Voting up is available in GitHub Discussions, and they provide a great way to prioritize what the community wants most. By encouraging users to upvote feature requests, bug reports, or important discussions, maintainers can better understand which topics have the highest demand. Learn more about why reacting to GitHub Issues and Discussions matters.
Once things are clarified on the GitHub Discussion or if you are certain the issue doesn't need a discussion, then you need to evaluate the difficulty of implementation. If it is difficult to implement or you are unable to do it yourself, then GitHub Issues is the right place to put it since it provides a place to manage work.
Once the work is complete or if it is an easy change you are certain you want to make (e.g. a spelling mistake), it can be turned into a Pull Request.
GitHub Discussions provide a great forum for users to ask questions about how to use the product. Not only is it easy to access, but it will also help future users with the same problem.
Provide new curious users with a list of the most important things they should know about the product.
GitHub Discussions are accessible to the entire user base, so when there is a new feature, let everyone know.
The development team can discuss issues publicly. If they need help with a problem, and Stack Overflow has failed them, then GitHub Discussions offers a way to relay with their team.
Community engagement is hard to achieve but can provide invaluable insights into contentious parts of the application. A poll in GitHub discussions can be invaluable.
GitHub Discussions allow you to set up categories. Getting these going is important to help users sift through the different topics. Keep the categories simple and easy to follow so that anyone who jumps in will know where to begin.
✅ Figure: Good example - TinaCMS use GitHub Discussions well
Source: TinaCMS