One year of preCICE on Discourse

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.

As the project grows in terms of users and developers, you start including your colleagues in the discussions and eventually create a mailing list to save time, let the right person reply, and maybe allow for some archiving. A few months/years later, the mailing list has several messages per week, most starting with a rather long 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.

Options

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.

Why Discourse

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 faq tag points to topics that we consider “worth pinning” and we want to bring these into our new website (using the Discourse API).

  • 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):

users-per-trust-level

There are also more data one can look at, for example the activity metrics:

activity

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!

Ask questions

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! :smile:

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! :hugs:.

Conclusion

:exploding_head: :arrow_right: :sunglasses:

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?

2 Likes

I think the move to discourse was good for most users as the blackboard style feels more inviting and maybe less ancient than mailing list, especially to younger users.

Regarding most of the Discourse features I am not sure whether I care too much. It is a blackboard and that is working nicely. It is nice that it supports Markdown, but for the other stuff (likes, hearts, GitHub integration) I am not sure whether I really need/like it. I guess the GitHub integration is more useful for you as developers. (I am old. I am used to the look and feel of the old style black boards :wink: )

Regarding the 30% threshold of “Daily Authenticated Users” / “Monthly Authenticated Users” I think that it might hurt you that there is Gitter and Discourse. You run two different platforms to provide help to users which are in some sense “competing”. I do not know if all projects would offer two platforms so staying below 30% might be more natural for the approach you follow. I see the benefits of having both at Gitter is more interactive and it keeps also the number of posts regarding installation of preCICE low on Discourse.

From a personal perspective: I am looking forward for to the merge of Gitter and Matrix. I hope that they do it in some proper way. I never got the Gitter client running the way I wanted (problems with 2FA and it uses Electron which I don’t like too much). The IRC bridge for Gitter also does not work that nicely as messages send to oneself in personal chats while one is offline are not shown once one logs in again. (I am feel old thus I like IRC/proper clients that I can use to connect to everything necessary. I don’t want a new client for everything… Gitter, Mattermost…)

1 Like

I see many projects having more than one communication channel and usually some channels are more active. The main advantage for systems such as Gitter is that almost all developers are regularly there and don’t need to switch to a different system to answer.

However, I feel more and more that most of the discussions we still have on Gitter could be on Discourse. How could we moderate this better and only have quick questions or more “chatty” discussion on Gitter?

I agree with you! I did not mean to criticize the current approach of preCICE with Gitter+Discourse. What I wanted to do is to question the 30% line of “Daily Authenticated Users” / “Monthly Authenticated Users” in the report. Maybe staying below 30% is fine/normal for projects for this “dual” approach you are following. Maybe the preCICE community of preCICE is also quite small and most people are here and on Gitter. I could see that the behavior changes if the community has a certain size.

Regarding the moderation of the discussions… that is a hard question. I do not think anyone has figured that out. People looking for help will have very different search paths and potentially search results depending on various factors (language, search engine, search terms…). I would not have any better idea at the moment than replicating discussion on Discourse for better “preservation”. If it is a common question one could move it into the FAQ.