How to do asynchronous Scrum standups using Discourse?

Quindi, dopo oltre 4 anni, ecco un’istantanea di come il mio team utilizza Discourse per gli scrum quotidiani.

Contesto organizzativo

  • Un team di progetto che lavora su varie iniziative open source come “clienti esterni”, ma che fa parte di una grande organizzazione.
  • Questa organizzazione più ampia dispone dei propri strumenti proprietari per la documentazione, la gestione dei progetti, la chat (Slack) ecc., e storicamente non ha voluto passare a strumenti open source o condividere pubblicamente il lavoro dell’organizzazione.
  • Il lavoro di questo team deve rispettare sia (a) gli standard di reporting dell’organizzazione più ampia, sia (b) essere esposto al pubblico.

Contesto tecnico

  • Un forum Discourse per far interagire il lavoro del team con il pubblico e altre parti esterne.
  • Una categoria dedicata alla gestione dei progetti, leggibile da chiunque ma scrivibile solo dal team.
  • Una sottocategoria “Daily Standups” (Riunioni giornaliere) all’interno di quella, anch’essa scrivibile solo dal team, impostata per chiudere automaticamente i topic dopo 23 ore.
  • Abbiamo rinominato @discobot e ci siamo assicurati che avesse accesso alla categoria.

La soluzione (attuale, per ora)

  • Utilizzo riluttante di Zapier per l’automazione, poiché i plugin esistenti di Discourse o gli strumenti open source disponibili non erano ancora sufficienti.
  • Da lunedì a venerdì, Zapier crea un nuovo topic nella sottocategoria “Daily Standups” come utente bot, a un’ora prestabilita ogni giorno, utilizzando la data corrente nel titolo del topic.
  • Zapier invia promemoria su Slack (una funzionalità di Slack che consente di rimandare o chiudere i promemoria) a ciascun partecipante allo standup in un orario vicino all’inizio della sua giornata lavorativa, includendo un link all’URL specifico del topic dello standup del giorno.
  • Zapier monitora i post in quella categoria, filtrando tutto ciò che proviene dal bot, il primo post di ogni topic e escludendo anche la chiusura automatica che altrimenti verrebbe attivata. Il post viene riscritto in modo significativo utilizzando gli strumenti di Zapier per essere pubblicato in un canale Slack, imitando il formato usato dai membri di altri team, ma aggiungendo un link al post nella prima riga del messaggio Slack (che è la data generata automaticamente). Abbiamo dovuto farlo perché il plugin Chat Integration era troppo rumoroso con metadati aggiuntivi, infastidendo gli altri utenti di quel canale.
  • In un secondo momento, aggiungiamo manualmente la data al plugin Events, in modo che il report dello standup appaia sul /calendar principale insieme ad altre attività.
  • Ci assicuriamo che il plugin Chat Integration escluda (muti) questa categoria Standup, evitando di ripetere lo stesso standup in un’altra parte dello spazio di lavoro Slack in questione.

Lista dei desideri per Discourse

Cosa sarebbe fantastico un giorno, per non dover più usare Zapier:

  • Una pianificazione ricorrente di post automatici il cui testo possa essere modellato con variabili come la data.
  • Plugin Chat Integration: possibilità di modificare il modello di ciò che il plugin Chat Integration invia ai vari canali, in modo simile a quanto avviene con i modelli di posta elettronica.
  • Assign: consentire più assegnatari per un topic, impostare intervalli di promemoria per categoria e permettere che le assegnazioni vengano impostate tramite API o come parte del modello di creazione automatica sopra descritto.
15 Mi Piace