How to do asynchronous Scrum standups using Discourse?

Our project currently does synchronous IRC-based daily (M-F) Scrum standups for people who:

  • Are currently hacking on the project, and
  • Are available at the designated time.

This is less than ideal for a global team for various reasons, so I’m trying to think of how to re-create something like Flock but using Discourse. (The less tools, the better!)

For those not familiar with the report, the standard items mentioned include:

  • What was done the previous day
  • Plans for the upcoming day
  • Any issues blocking the person from proceeding with their work

I’ve been thinking about how to use the following features to make it happen:

  • Dedicated sub-category
  • Auto-close topics after N hours for the sub-category
  • Category-based topic templates
  • Specifying content in URL’s to pre-populate topics

The problem seems to be conceptualizing how this should look. Should each person create a topic for each day they have a report to make? A topic for each day that everyone contributes to? Ideally, someone could just go to a standard link or URL to create their report with minimal clicks.

Is this interesting to anyone else who would like to brainstorm a way forward? Thanks in advance. :smile:

「いいね!」 3

Seems like a topic per “stand up” with multiple replies, one from each team member, would work fine. Use a unique category and put a category template in so people have some idea of what info to include.

I personally dislike any “mandatory meeting every day” scheme as we try to keep mandatory meetings to an absolute minimum.

「いいね!」 4

Howdy @downey 3 years later … wondering how this has been working out for you?

「いいね!」 6

also wondering @downey. Our volunteer community have:

  • Slack for our Dev’s (as they are there for work anyway)
  • Discourse for the rest of the community, which i plan to sync with the main channel in Slack so the devs are more a part of the community
  • Trello for project management.
  • Timetreeapp for a team calendar.
  • Github for issues, coding, and often conversations occur here also

It is definitely not optimal spreading the team across so many platforms. By design Discourse is the central hub, and ways of bringing our team closer into it would be very useful.

「いいね!」 7

And in stark contrast our team have

  • Discourse for our devs
  • Discourse for the rest of the company
  • Discourse for the rest of the community
  • Discourse for project management
  • Discourse for our team calendar
  • Discourse for issues
  • Mattermost for ephemeral chat and system alerts
「いいね!」 12

We’re pretty much the same except we’re looking at using another solution for project management.

Do you handle gantt charts, subtasks, and kanban layouts in discourse?

「いいね!」 2

+1 this is what i’d like to know.

Our main issue is being a community of volunteers. Devs want to remain on the platform they use as standard for work, getting them to switch proved difficult. syncing the main channels between the two seems the best middle-ground.

I’ll add to the mix that the Edgeryders community look to be using Discourse quite effectively for documentation, but that requires switching to the Categories view homepage, which would take away from the interaction on our forum. I’m looking now to see if there’s a way to combine the two views on the homepage so we can have our documentation on Discourse

「いいね!」 2

You can do some charting with the Discourse Graphviz plugin, but we usually avoid that. I have not seen a kanban plugin yet, but it does sound like an interesting idea for a theme component or plugin.

At Discourse we do our project management very differently to the traditional sense. We kick off TODOs on our dev instance or just directly assign topics from meta. In our weekly calls managers and team leaders help prioritise stuff. We are always shipping features so there is not “deadline in 3 months” we are working towards.

「いいね!」 6

how do you use it exactly or what do you mean by ephemeral, respectively. I ask as we got a non-provite licence as you folks. Now, the discussion is, what shall happen where, so chat vs forum.

「いいね!」 2

Ephemera is the stuff which doesn’t matter tomorrow.

“There are cakes in the breakroom” is ephemera, once the day is over or cakes are gone nobody needs to know. That kind of stuff is far better thrown into a chat product than posted onto platforms such as discourse.

Anything which has legitimate value in the medium to long term isn’t ephemeral, so post it somewhere you can structure it for easy future access.

「いいね!」 9

さて、4年以上が経ち、私が所属するチームがデイリースクラムにDiscourseをどのように活用しているか、その様子を少しご紹介します。

組織的な背景

  • さまざまなオープンソース・イニシアチブを「外部クライアント」として手掛けるプロジェクトチームですが、大規模な組織内に位置しています。
  • その大規模な組織には、ドキュメント管理、プロジェクト管理、チャット(Slack)など独自のプロプライエタリツールが存在し、過去にはオープンソースツールへの移行や組織内の業務を公に共有することに消極的でした。
  • このチームの業務は、(a) 大規模な組織の報告基準を満たしつつ、(b) 一般公開される必要があるという、両方の要件を満たさなければなりません。

技術的な環境

  • チームの業務を一般や他の外部関係者と連携させるためのDiscourseフォーラム。
  • 誰でも閲覧可能だが、チームメンバーのみが投稿可能なプロジェクト管理専用カテゴリ。
  • その下に「Daily Standups」というサブカテゴリを設け、これもチームメンバーのみが投稿可能とし、トピックを23時間後に自動クローズする設定にしています。
  • @discobot の名前を変更し、このカテゴリへのアクセス権を確保しました。

(現時点での)解決策

  • 既存のDiscourseプラグインや利用可能なオープンソースツールでは不十分だったため、仕方なくZapierを自動化ツールとして利用しています。
  • 月曜日から金曜日まで、Zapierが毎日指定された時間に、ボットユーザーとして「Daily Standups」サブカテゴリに新しいトピックを作成します。トピックのタイトルには当日の日付を含めます。
  • Zapierは、各スクラム参加者の勤務開始時刻頃にSlackのリマインダーを送信します(SlackにはスヌーズやDismiss機能があります)。これには、その日のスクラムトピックへのURLリンクが含まれます。
  • Zapierはそのカテゴリへの投稿を監視し、ボットからの投稿、トピックの最初の投稿、および自動クローズによるトリガーを除外します。投稿内容はZapierの機能を使って大幅に書き換えられ、Slackチャンネルに投稿されます。これは他のチームメンバーが使用するフォーマットに倣いつつ、Slackメッセージの1行目(自動生成された日付)に投稿へのリンクを追加する形式です。Chat Integration Pluginは追加のメタデータが多すぎて騒がしく、このチャンネルの他のユーザーを煩わせたため、この対応が必要でした。
  • 後日、手動でEvents Pluginに日付を追加し、スクラムレポートをメインの/calendarページに他の活動と一緒に表示されるようにしています。
  • Chat Integration Pluginが、対象のSlackワークスペース内の他の場所で同じスクラムを二度表示しないよう、このStandupカテゴリを除外(ミュート)設定にしています。

Discourseへの要望リスト

将来的にZapierを使わずに済むようになるために実現してほしい機能:

  • テンプレート化された変数(日付など)を用いた自動投稿の定期スケジュール機能。
  • Chat Integration Plugin:メールテンプレートのように、各チャンネルに送信されるメッセージのテンプレートを編集できる機能。
  • Assign:トピックへの複数の担当者を設定可能にすること、カテゴリごとにリマインダー間隔を設定可能にすること、API経由または上記の自動作成テンプレートの一部としてアサインを設定可能にすること。
「いいね!」 15