How to do asynchronous Scrum standups using Discourse?

Então, mais de 4 anos depois, aqui está um panorama de como a equipe em que atuo está usando o Discourse para as reuniões diárias de scrum.

O contexto organizacional

  • Uma equipe de projeto que trabalha em várias iniciativas de código aberto como “clientes externos”, mas está inserida em uma grande organização.
  • Essa organização maior possui suas próprias ferramentas proprietárias para documentação, gerenciamento de projetos, chat (Slack) etc., e historicamente tem sido relutante em mudar para ferramentas de código aberto ou compartilhar o trabalho da organização publicamente.
  • O trabalho dessa equipe precisa ser tanto (a) estar dentro dos padrões de relatórios da organização maior, quanto (b) estar exposto ao público.

O contexto técnico

  • Um fórum Discourse para que o trabalho da equipe interaja com o público e outras partes externas.
  • Uma categoria dedicada de gerenciamento de projetos que é de leitura mundial, mas de escrita apenas da equipe.
  • Uma subcategoria “Daily Standups” (Reuniões Diárias) dentro dessa categoria, também de escrita apenas da equipe, configurada para fechar automaticamente os tópicos após 23 horas.
  • Renomeamos o @discobot e garantimos que ele tivesse acesso à categoria.

A solução (atual, por enquanto)

  • Relutantemente usando o Zapier para automação, pois os plugins existentes do Discourse ou as ferramentas de código aberto disponíveis ainda não eram suficientes.
  • De segunda a sexta, o Zapier cria um novo tópico na subcategoria “Daily Standups” como usuário do bot, em um horário designado todos os dias, usando a data atual no título do tópico.
  • O Zapier envia lembretes pelo Slack (é um recurso do Slack que permite adiar e descartar) para cada participante da reunião diária em um horário próximo ao início do seu dia de trabalho, incluindo um link para o URL específico do tópico da reunião daquele dia.
  • O Zapier monitora as postagens nessa categoria, filtrando qualquer coisa vinda do bot, a primeira postagem de qualquer tópico e também excluindo o fechamento automático, que de outra forma também seria acionado. A postagem é drasticamente reescrita usando as ferramentas do Zapier para postar em um canal do Slack, imitando o formato usado por membros de outras equipes, mas adicionando um link para a postagem na primeira linha da mensagem do Slack (que é a data gerada automaticamente). Tivemos que fazer isso porque o Plugin de Integração de Chat era muito barulhento com metadados extras, irritando outros usuários desse canal.
  • Em algum momento, adicionamos manualmente a data ao Plugin de Eventos, para que o relatório da reunião diária apareça no /calendar principal junto com outras atividades.
  • Garantimos que o Plugin de Integração de Chat exclua (silencie) essa categoria de Reunião Diária de ecoar a mesma reunião duas vezes em outro lugar no workspace do Slack em questão.

Lista de desejos do Discourse

O que seria ótimo um dia, para que não precisemos mais usar o Zapier:

  • Agendamento recorrente de postagens automáticas cujo texto possa ser templateado com variáveis como a data.
  • Plugin de Integração de Chat: Edição do modelo do que a Integração de Chat envia para vários canais, de forma semelhante ao que é feito com modelos de e-mail.
  • Assign (Atribuição): Permitir múltiplos atribuídos para um tópico, definir intervalos de lembrete por categoria e permitir que as atribuições sejam configuradas via API ou como parte do modelo de criação automática mencionado acima.
15 curtidas