In September 2019, the communication with our community had already increased more than we could handle with the channels we had back then: a mailing list, and a Gitter chatroom. After long discussions on how to take our communication to the next level, we ended up creating our own “preCICE forum” as part of Discourse. Since many software communities go through the same phase, let’s have a look at the motivation, some data, and what we have learnt.
The original problem
If you are developing your own academic code, you have probably received a few personal emails asking for general information and maybe for some help on running the code. In a later stage, people you have never met before are asking your help trying to understand results they got with your code. Seeing your research having some impact, you are flattered and very motivated to answer in depth.
Re: AW: Fwd: Re: in their subject.
With some of these questions being quick, you try to bypass the overhead of the email subject, etiquette, and automatic signatures by creating a cozy place for discussions: the chatroom. There are several platforms to create one: Gitter and Matrix (the two soon to be merged), Mattermost, Slack, the always-there IRC, and many more. But cozy places are meant to be cozy: no thinking overhead for titles, categories, or in some cases even formatting. You will not easily be able to continue a discussion you had at the coffee break the next day, and the same holds for chatrooms. The discussions simply go on and every day somebody asks the same question, you discuss it again (even though some archiving is possible).
In preCICE, we were in this situation when we decided to change something. We converted our mailing list to announcements-only and we now ask our (currently 134) users involved in our Gitter Lobby to post their questions to the forum when they are better fit for a long answer and follow-ups.
We discussed a few options on how to move on, among which:
- Actively joining an established, field-specific forum such as CFD Online: this would add visibility, but would also make it difficult for us to follow it and to structure it however we like.
- Hosting our own forum infrastructure (such as the classic phpBB): this would bring additional administrative work and would be tricky to manage across different universities. It would also have lower visibility on search engines.
- Using an issue tracker only for such user support requests: an approach used by some projects and especially once (not anymore) by GitLab. This would provide some tracking & organizational advantages, would bring the community closer to the code, but would also be scary for some users and would not be good for general discussions.
Then, we found that FEniCS is using Discourse: a self-administered but free-hosted (for open-source projects) forum platform, with good integration with GitHub, and a few nice features to organize the content.
Not only is Discourse free for open-source projects, but it is also free/open-source software itself. If one day our community reaches the (rather relaxed) limits of this special free plan, we can always continue on our own server. Discourse’s user base is also quite large, including FEniCS, GitHub, GitLab, ParaView, Ubuntu, Manjaro, Docker, Twitter, and many more projects you may already be using. Since recently, CalculiX also migrated from a mailing list to Discourse.
Features we use
We use Discourse as our “support forum”, blog, and faq. One of our favorite features is that users can mark their topics as “solved”, making it easier for the future reader to navigate and easier for us to know where we still need to help:
To give some structure, we started by introducing tags for each thread, similar to the way Stack Exchange works:
After gaining some experience with what out users are writing about, we introduced a (as small as possible) set of categories:
Finally, using the DiscoTOC plugin, we can enable a table of contents for our longer posts (such as this one). The usual features are also here, including a (very good) Markdown-enabled WYSIWYG editor that remembers what you were writing when things go wrong, LaTeX equation typesetting, and more.
In the future, we may also start using the (very promising) wiki feature to collaboratively collect knowledge that does not necessarily fit in our documentation.
Understanding our community
These structure elements help us find topics easier and also help us analyze the interests of our community. Looking at the categories, we see that most users are trying to use preCICE for building something themselves, while “getting started” is not such a big issue anymore. Looking at the tags, we see e.g. that the most popular solvers coupled with preCICE are OpenFOAM and CalculiX:
Note here also two “functional” tags we are using:
The inactive tag we invented recently to handle topics that are not yet solved, but are waiting for feedback from the original poster. This helps us focus on what we can answer next.
Discourse also has a great statistics dashboard:
Several metric are interesting here. We see first the unique users over time, separated in logged-in, guests, and bots:
In the last month, we see that most of the users are logged-in, which means that they “stick around”. This is something that Discourse also quantifies as a ratio of “Daily Authenticated Users” / “Monthly Authenticated Users”:
The red line points to the 30%, a threshold that Discourse recommends trying to exceed. In this sense, the preCICE community is present, but is not yet “sticking around” as much. What can we do about this? Your ideas are very welcome!
Looking at where the users come from, most of them are from search engines (as well as Twitter and our resources):
Nothing surprising with these results, but such information can help us discover collections of software, blog posts writing about preCICE, and more interesting resources.
By default, Discourse also distinguishes users into “trust levels”: users that read & write more, get fewer spam-preventing restrictions. An interesting concept that has led us to a few confusions already, but (together with other prevention measures) seems to keep the forum spam-free. Overall, the preCICE forum currently has 93 registered users (compare with 134 in our 2.5-year old Gitter):
There are also more data one can look at, for example the activity metrics:
An interesting observation here is that our average “Time to first response” was 21 hours in the past month or 5 hours in the past week. This renders the speed benefit of a chatroom less prominent. It is also a nice achievement considering the size of our team, and could be improved a lot with more active participation from the community.
How to participate
Everybody interested in preCICE is welcome here, from any expertise level, nationality, gender, and geographic location. And being part of this community is easy!
Simply open a topic, choose a short & specific title, and describe your question as good as you can. The more time you invest in clearly describing the problem, the faster we can solve it together. Choose also the category that sounds most fitting and add any related tags (usually solvers & application). This way, future readers will find your question more easily.
If possible, also include figures. Use Markdown to format your text (especially code/log snippets) and link to any related previous topics.
Here is a great question example you can follow.
Try to answer
As you grow as a user, many questions are definitely in your reach to answer! You have been there before, you have previously resolved similar issues, you know your way through the resources, you already understand a lot!
There is no absolute need to give elaborate answers that will then serve as FAQ. Simply contribute any hints you can and the original poster will follow the lead.
Come again tomorrow
We hope we helped you today to make progress in your research. This makes us very happy! But what would make us even happier would be seeing our users helping each other. Therefore, after you click the “Solution” button in your question, maybe also add the forum to your bookmarks and check tomorrow if you can also help someone else. Thank you! .
Last year we had an increasingly pressing issue to solve: our mailboxes were getting flooded, it was very difficult to track the progress of specific cases in the chat room, and it was almost impossible to refer to previous conversations. Today, we have most of our community interaction on Discourse. We visit the page in regular intervals, answer at our own pace, organize the content using categories and tags and by cross-linking related topics. After coming back from vacation, we simply went to topics that were not yet answered and took action, without getting lost in our inboxes or long streams of loosely-coupled messages. Search engines now showcase the collective work of the preCICE community on top and the duplicate questions seem to have decreased significantly. Overall, the users manage to go further by themselves, while we can take more time for more elaborate answers where needed.
I remember the long discussions we had on how to better structure our communication channels and I remember advocating for a more complex solution. But after some brainstorming and taking the time we needed to explore the different options, I think we are today very happy with our decision to migrate to Discourse. Do you agree?