Hubot e ChatOps

Vocês conhecem o projeto do github, o Hubot?

O hubot é um bot, capaz de te ajudar em diversas tarefas dentro da sua organização. Ele funciona recebendo comandos de uma sala, existente no seu sofware de mensagens instantâneas. Existem vários adaptadores, para programas, como Skype, slack e o mattermost, que é o software que usamos aqui.

Basicamente, você precisa de uma instância dele rodando em algum lugar e conectá-lo ao seu software de mensagens instatâneas.

Não vou entrar em detalhes aqui, pois o processo é diferente para cada software, mas é bastante fácil. Temos uma instância rodando no Heroku.

Deem uma conferida na documentação de como subir o bot, aqui.

Mas como vamos gerenciar nossos projetos?

Aqui na Sigma usamos o Gitlab como nosso gerenciador de repositórios. Não só repositórios, mas tudo mais que o Gitlab traz, de graça para você, como:

  • Usuários
  • Projetos
  • Issues
  • Milestones
  • Merge Requests (similar o Pull Request do Github)
  • Entre outras coisas bacanas!

O que fizemos foi criar um plugin para o Hubot, que escuta alguns comandos específicos, vai no Gitlab, faz as contas referentes ao andamento do projeto e responde no canal do Mattermost.

Bem bacana! Usamos isto para reportar para nosso clientes o andamento dos projetos e gerar gráficos como este aqui em baixo:

Burndown

O hubot, no entanto, pode escutar os seguintes comandos:

>

hubot gitlab search [termo]

hubot gitlab list projects (lista os projetos existentes no Gitlab)

hubot gitlab list milestones [project_id] (lista milestones do projeto)

hubot gitlab list issues [project_id] (list issues do projeto);

hubot gitlab progress [project_id] (gera a medida de progresso do projeto)

São poucos comandos no momento, mas estamos planejando expandir esse camarada. O bacana do hubot é que ele funciona muito bem com qualquer tipo de mensageiro instantaneo que possua um adaptador para ele, ou seja, isso pode ser aplicado mesmo se vocẽ não usa o slack ou o mattermost.

Um exemplo em funcionamento:

Gitlab Agile

É bem simples e dá estatísticas atualizadas!

Como sempre, publicamos nosso pacote no npm e ele é aberto em nosso Gitlab. O mesmo já foi puxado ~300 vezes, desde sexta-feira. É uma métrica e tanto para um projeto tão pequeno, mas acredito que deve ser útil para outras pessoas.

No nosso roadmap, ainda iremos implementar o cadastro de sprints, sua abertura e fechamento, bem como a geração inteira do gráfico através do hubot. Hoje só geramos as estatísticas, mas não é difícil gerar o gráfico completo.

E aí pessoal, curtiram? Fiquem a vontade para forkar, testar e adicionar novos comandos caso tenham interesse.

Template de história de Usuário

As histórias de usuários são ferramentas interessantes para se determinar quais são as funcionalidades reais de um sistema a ser construído.

Elas são breves, capturam as informações gerais e servem de documentação de alto nível para diversos outros produtos dentro da organização que constrói software.

Nós da SIGMA, construímos um pequeno template para ser impresso e que você pode levar com você para qualquer lugar. Este template será disponibilizado em nosso repositório, de forma gratuita.

O que são?

Histórias de Usuários são pequenos documentos que ajudam a descrever uma funcionalidade a ser implementada em determinado sistema.

Elas, através de uma única sentença, tentam capturar um requisito de negócio e seu valor para o negócio.

Estas histórias, geralmente são no seguinte formato:

  • Eu, como administrador do sistema, gostaria de delegar permissões a outros usuários, de forma que eles possam executar seu trabalho sem me incomodar;
  • Eu, como usuário, gostaria de abrir uma ocorrência, de forma que ela fique registrada e alguém possa resolver este problema;

As histórias, são geralmente escritas utilizando pequenos quadradinhos de papel com cola amarelos, ou os PostITs. No nosso caso, criamos um template para ser impresso e ser utilizado com papel e caneta.

Exemplo

Um exemplo prático completo, é o seguinte:

  • Título: Visualizar ocorrências em um mapa
  • Prioridade: A (na SIGMA usamos da letra A até a letra D para denotar prioridades, onde A é a prioridade mais alta e D a mais baixa);
  • Ação: Eu, como usuário do sistema, gostaria de visualizar as ocorrências em um mapa, de forma que eu possa otimizar a minha rota de atendimento;

Além desta seção básica, contendo estas informações, adicionamos uma área para você detalhar as tarefas necessárias para completar aquela história de usuário, bem como o número de pontos que cada tarefa e a história irão tomar.

Abraços!