Registar bugs é manter todos os defeitos conhecidos num só sítio, numa forma que sobreviva a que a pessoa que o encontrou vá de férias. É essa a ideia toda. O software em que as pessoas pensam quando dizem “bug tracker” é apenas o arquivo que torna isso possível.

A distinção que interessa é entre um registo e uma mensagem. Uma mensagem é o que se envia quando se repara em alguma coisa: uma linha de chat, um email, um comentário dito ao passar pela secretária de alguém. É dirigida a uma pessoa, é lida uma vez, e desaparece. Um registo não é dirigido a ninguém em particular e é lido sempre que alguém faz a pergunta certa. Registar bugs é a prática de transformar a primeira no segundo.

O que um sistema de registo tem de fazer

Quatro coisas. Tudo o resto é conveniência.

  • Guardar uma entrada por problema, para que duas pessoas que encontram a mesma coisa se encontrem uma à outra em vez de reportarem duas vezes.
  • Dizer em que ponto está cada uma - aberta, em curso, corrigida, verificada, fechada - de uma forma que seja verdadeira e não apenas desejada.
  • Nomear um responsável, porque um defeito que pertence à equipa não pertence a ninguém.
  • Continuar pesquisável mais tarde, que é aquilo que se salta na escolha e se lamenta ao quarto mês.

Uma folha de cálculo faz mal as três primeiras e a quarta não faz de todo. Um canal de chat não faz nenhuma, o que não é uma crítica ao chat: é um meio de mensagens a fazer exatamente aquilo para que serve.

O que vai numa entrada

Menos do que a maioria dos modelos pede e mais do que a maioria dos relatórios traz.

As partes que merecem o seu lugar são as de que outra pessoa precisa para agir: o que aconteceu, o que se esperava em vez disso, como voltar lá, e onde aconteceu - navegador, versão, conta, URL. O nosso guia para escrever um relatório de bug é a versão longa dessa lista, e traz um modelo que pode colar num formulário.

Tudo o resto num formulário típico são metadados do processo e não do problema: gravidade, prioridade, componente, marco, a pessoa responsável. Úteis, mas pertencem a quem trata da gestão de defeitos, não a quem reparou que o botão estava avariado. Pedi-los a quem reporta, no momento em que reporta, é a maneira mais comum de tornar o reportar caro ao ponto de as pessoas deixarem de o fazer.

Três maneiras de falhar

Quase todos os sistemas de registo que deixam de merecer confiança lá chegaram por uma de três vias.

O cemitério. Nunca se fecha nada, por isso a contagem só cresce, por isso ninguém lê a lista, por isso chegam defeitos reais e nunca são vistos. Um atraso de oitocentas entradas que ninguém abriu este ano não é o registo de coisa nenhuma; é um sítio para onde as coisas vão.

Estados que mentem. Todas as entradas dizem “aberta” porque movê-las é o trabalho de alguém e ninguém o tem. A essa altura o campo de estado é decoração e a única forma de saber em que ponto está seja o que for é perguntar a uma pessoa, que era justamente o que o sistema devia substituir.

A pilha de duplicados. O mesmo defeito reportado seis vezes porque procurar custa mais do que escrever. Costuma culpar-se disto quem reporta e costuma ser um problema de pesquisa: se procurar pelas palavras que uma pessoa normal usaria não encontra a entrada que já existe, o sistema ensinou-a a reportar outra vez.

De onde vêm as entradas conta mais do que qual a ferramenta que as guarda

As equipas passam muito tempo a escolher entre sistemas de registo e quase nenhum no passo anterior, que é como um defeito chega da pessoa que o viu até dentro do sistema.

É nesse percurso que os relatórios morrem. Alguém repara num problema e, entre reparar e ter escrito uma entrada útil, há um vazio: que navegador era, o que dizia a consola, qual era o URL, em que cliquei primeiro. A maioria das pessoas, na maioria das vezes, escreve duas frases e segue em frente, porque a alternativa são quinze minutos de investigação por um bug que não é seu.

Tudo o que encurta esse vazio eleva a qualidade de tudo o que vem a seguir. Um formulário na página onde o bug aconteceu ganha a um link para o sistema de registo. Uma captura que recolhe sozinha a metade técnica ganha a pedir a um agente de apoio que abra as ferramentas de programador. Capturar o relatório onde está o bug é o mesmo problema visto da outra ponta.

Session Replay

Extensão gratuita do Chrome. Um clique na página que se está a portar mal captura a captura de ecrã, a consola e o registo de rede, e devolve-lhe um link para colar no ticket.

Instalar a extensão

Escolher um

O conselho honesto é que a escolha conta menos do que o hábito. Jira, Linear, GitHub Issues, Bugzilla, Trello com uma coluna chamada Bugs: as quatro coisas acima são possíveis em qualquer um deles, e nenhum as fará por si.

Vale a pena fazer duas perguntas a um candidato, e não são as das páginas de comparação:

Pergunta fraca
Qual tem mais integrações e os melhores painéis de relatórios?
Pergunta melhor
Alguém que não esteja na equipa de engenharia consegue reportar lá sem ajuda, e alguém consegue encontrar uma entrada de há dois anos a partir das palavras de que se lembra?

Se reportar exigir uma conta, um projeto, um componente e um tipo de entrada, as pessoas mais próximas dos seus clientes - apoio, vendas, QA, o próprio cliente - não vão reportar. Os bugs delas chegarão como mensagens, e a diferença entre um registo e uma mensagem era exatamente o que estava a tentar comprar.

Registo, testes e o resto

Registar bugs fica a jusante de tudo o que encontra bugs, e é por isso que acaba por recolher o vocabulário de tudo. Um plano de testes diz como os defeitos são reportados e quem decide se um deles trava um lançamento. Os testes de regressão existem porque um sistema cheio de entradas fechadas é uma lista de coisas que dantes funcionavam. Os testes instáveis são o que acontece quando aquilo que está a ser registado não consegue decidir se é um defeito.

Um sistema de registo não melhora o software. Impede que a mesma tarde seja gasta duas vezes.