How to do asynchronous Scrum standups using Discourse?

So 4+ years later, here’s a snapshot of how I team I am on is using Discourse for daily scrums.

The organizational setting

  • A project team that works on various open source initiatives as “external clients” but sits within a large organization.
  • That larger organization has its own proprietary tools for documentation, project management, chat (Slack) etc., and has historically been unwilling to switch to open source tools or share org work publicly.
  • The work for this team has to be both (a) existing within the larger org’s reporting standards, and (b) exposed to the public.

The technical seting

  • A Discourse forum for the team’s work to interface with the public and other external parties.
  • A dedicated project management category that is world-readable but team-writable.
  • A “Daily Standups” subcategory to that, also only team-writable, set to auto-close topics after 23 hours.
  • We renamed @discobot and made sure it had access to the category.

The (current for now) solution

  • Reluctantly using Zapier for automation because the existing Discourse plugins, or available open source tools, were not yet sufficient.
  • Monday through Friday, Zapier creates a new topic in the “Daily Standups” subcategory as the bot user, at a designated time each day, using the current date in the topic title.
  • Zapier sends Slack reminders (it’s a slack feature that allows snoozing and dismissal) to each standup participant at a time around the start of their work day, including a link to the day’s specific standup topic URL.
  • Zapier watches for posts to that category, filtering out anything from the bot, the first post of any topic, and also excluding the auto-close which would also otherwise trigger. The post is dramatically rewritten using the Zapier tools to post into a Slack channel, mimicking the format used by members of other teams, but adding a link to the post in the first line of the Slack message (which is the auto-generated date). We had to do this because the Chat Integration Plugin was too noisy with extra metadata, annoying this channel’s other users.
  • At some point, we manually add the date to the Events Plugin, so the standup report shows up on the main /calendar with other activities.
  • We make sure the Chat Integration plugin excludes (mutes) this Standup category from echoing the same standup twice somewhere else on the Slack workspace in question.

Discourse wish list

What would be great someday so we don’t have to use Zapier:

  • Recurring schedule of automatic posts whose text could be templatized with variables like date.
  • Chat Integration Plugin: Editing the template of what the Chat Integration sends to various channels, somewhat like is done with email templates.
  • Assign: Allowing multiple assignees to a topic, setting reminder intervals per category, allowing assignments to be set through the API or as part of the auto-creation template above.
14 Likes