How to do asynchronous Scrum standups using Discourse?

Donc, plus de 4 ans plus tard, voici un aperçu de la façon dont l’équipe dont je fais partie utilise Discourse pour les scrums quotidiens.

Le contexte organisationnel

  • Une équipe de projet qui travaille sur diverses initiatives open source en tant que « clients externes », mais qui est intégrée au sein d’une grande organisation.
  • Cette grande organisation dispose de ses propres outils propriétaires pour la documentation, la gestion de projet, la chat (Slack), etc., et a historiquement été réticente à passer à des outils open source ou à rendre les travaux de l’organisation publics.
  • Le travail de cette équipe doit à la fois (a) respecter les normes de reporting de l’organisation plus large et (b) être accessible au public.

Le contexte technique

  • Un forum Discourse permettant à l’équipe d’interagir avec le public et d’autres parties externes.
  • Une catégorie dédiée à la gestion de projet, lisible par tous mais modifiable uniquement par l’équipe.
  • Une sous-catégorie « Daily Standups » au sein de cette catégorie, également modifiable uniquement par l’équipe, configurée pour fermer automatiquement les sujets après 23 heures.
  • Nous avons renommé @discobot et nous avons veillé à ce qu’il ait accès à cette catégorie.

La solution (actuelle pour l’instant)

  • Utilisation réticente de Zapier pour l’automatisation, car les plugins Discourse existants ou les outils open source disponibles n’étaient pas encore suffisants.
  • Du lundi au vendredi, Zapier crée un nouveau sujet dans la sous-catégorie « Daily Standups » en tant qu’utilisateur bot, à une heure désignée chaque jour, en utilisant la date du jour dans le titre du sujet.
  • Zapier envoie des rappels Slack (c’est une fonctionnalité Slack permettant de mettre en veille ou de rejeter) à chaque participant au standup à une heure correspondant au début de sa journée de travail, incluant un lien vers l’URL du sujet de standup du jour.
  • Zapier surveille les publications dans cette catégorie, en filtrant tout ce qui provient du bot, le premier post de chaque sujet, et en excluant également la fermeture automatique qui déclencherait autrement. Le post est considérablement réécrit à l’aide des outils Zapier pour être publié dans un canal Slack, en imitant le format utilisé par les membres d’autres équipes, mais en ajoutant un lien vers le post dans la première ligne du message Slack (qui est la date générée automatiquement). Nous avons dû faire cela car le plugin Chat Integration était trop bruyant avec des métadonnées supplémentaires, ce qui énervait les autres utilisateurs de ce canal.
  • À un certain moment, nous ajoutons manuellement la date dans le plugin Events, afin que le rapport de standup apparaisse sur le /calendar principal avec les autres activités.
  • Nous nous assurons que le plugin Chat Integration exclut (silencie) cette catégorie Standup pour éviter de refléter le même standup deux fois ailleurs dans l’espace de travail Slack concerné.

Liste de souhaits pour Discourse

Ce qui serait formidable un jour, afin que nous n’ayons plus besoin d’utiliser Zapier :

  • Un calendrier récurrent de publications automatiques dont le texte pourrait être mis en modèle avec des variables comme la date.
  • Plugin Chat Integration : Possibilité de modifier le modèle de ce que le Chat Integration envoie vers différents canaux, un peu comme c’est fait avec les modèles d’e-mail.
  • Assign : Permettre plusieurs assignataires à un sujet, définir des intervalles de rappel par catégorie, permettre que les assignations soient définies via l’API ou dans le cadre du modèle de création automatique mentionné ci-dessus.
15 « J'aime »