Aproveite o mês das
carreiras
na Alura

44% OFF

Falta pouco!

00

DIAS

00

HORAS

00

MIN

00

SEG

O que são Blameless postmortems?

Mônica Matos Bock
Mônica Matos Bock

Compartilhe

No ambiente complexo de TI é irrealista dizer que incidentes nunca vão acontecer,e quando eles ocorrem, a forma com que o time lida é crucial. Um processo já conhecido é a criação do postmortem (em português, “depois da morte”), que geralmente é um documento, e tem como objetivo ajudar os times a estruturar um processo para a discussão e análise desses incidentes.

Este documento, geralmente, contém: 1) a descrição do ocorrido e a causa raiz; 2) em qual período a indisponibilidade ocorreu; 3) quais os impactos (perda de dados, por exemplo); 3) a linha do tempo dos fatos ocorridos (hora e descrição); 4) quais medidas foram tomadas para a solução; 5) e quais foram adotadas depois do problema, para evitar que ele ocorra novamente e evidenciar os aprendizados da equipe com a ocorrência.

Esse postmortem também pode tomar a forma de uma reunião interna, com as pessoas no papel de SRE (Site Reliability Engineering, ou "Engenharia de Confiabilidade de Sites"). O mais importante aqui é que exista um momento em que o time consiga levantar todos os itens listados acima, para compartilhar o conhecimento e que durante a indisponibilidade, as ações tomadas sejam documentadas para a posteridade, de forma que seja possível analisar não somente o problema, mas também quais foram as ações do time durante o incidente.

Para quais tipos de incidentes criamos postmortems?

Quando um time decide adotar essa prática, é importante que sejam discutidos quais são os critérios para a criação do documento. Alguns exemplos podem ser:

  • Quando seu sistema fica indisponível mais do que um determinado período de tempo;
  • Quando ocorre perda de dados;
  • Quando a experiência do usuário é afetada;
  • Ou até quando é necessário voltar o sistema à uma versão anterior.
Banner da Imersão de IA da Alura com Google Gemini. Participe de aulas gratuitas online com certificado. Domine as inovações mais recentes da IA.

Qualquer empresa pode adotar?

Sim, não é necessário que a sua empresa tenha SREs - por exemplo - para usar postmortem. O mais importante é que seu time converse e saiba os motivos de adotar esse conceito, e que além disso, exista um processo já desenhado e pronto para quando incidentes acontecerem. O uso do postmortem não deve ser iniciado de forma reativa, mas seu time deve estar preparado para usá-lo em qualquer momento. Também deve-se garantir um tempo do time para discutir os postmortems juntos.

Para garantir que tudo será discutido e as ações mapeadas depois do incidente serão resolvidas, é possível adotar um status para os postmortem, como:

  1. “em aberto” quando ainda não foram discutidos;

  2. e dar como “fechados” somente os que já foram avaliados pelo grupo ou que já tiveram todas as ações resolvidas.

Agora que já entendemos o que é postmortem e a sua funcionalidade para o time, vamos entender o que é o Blameless postmortem?

O que é Blameless postmortem?

Para garantir que o processo do postmortem seja maduro, não cause danos ao time e não crie um ambiente com uma cultura ruim, existe o conceito Blameless postmortem (ou em tradução livre, livre de culpa). Nesse formato, tudo é feito sem apontar nomes ou culpados, afinal o que queremos de resultado aqui não é gerar atritos, é avaliar o que causou o problema e garantir que não se repita, ou seja, o foco aqui é o incidente ou falha e não as pessoas.

Para isso, é importante que todos saibam qual o resultado esperado do postmortem, isto é, que todo o time saiba que não deve comunicar o incidente citando nomes, que haja a definição de quem trabalhará nas ações do postmortem colaborativamente, se desvencilhando daquele velho formato conhecido: “quem derrubou o sistema é quem deve corrigi-lo.”

Listamos abaixo algumas ações que você pode incluir no postmortem para garantir a diminuição de riscos nos seus sistemas:

  • Documentar e alinhar processos;
  • Escrever testes;
  • Monitorar os seus sistemas e os sistemas que são vitais para a sua empresa;
  • Se possível, financeiramente falando, ter um “plano b” para sistemas, como: servidores e provedores de Cloud, que quando caem deixam todos os sistemas offline;
  • Garantir que o seu time saiba como escrever software de maneira segura.

Vamos ver um exemplo de como essas dicas podem ser aplicadas? Para isso, segue um modelo de postmortem para analisarmos juntos:

  • Autores: Mônica, Jacque, Leonardo
  • Data: 18/01/2022
  • Status: Concluído
  • Descrição do incidente: Problema nos pagamentos via boleto no checkout. Detecção: Rodrigo do time de CS informou que um cliente não conseguiu emitir boleto (09:15).
  • Causa raíz: Indisponibilidade do banco emissor dos boletos.
  • Linha de eventos:
  • 09:15 Fomos informados pelo time de CS que um cliente não conseguiu emitir boleto.
  • 09:20 Conseguimos reproduzir o problema no ambiente de dev, e o gateway de pagamentos já confirmou a indisponibilidade do meio de pagamento.
  • 09:32 Comunicamos a empresa da indisponibilidade.
  • 09:40 Mariana e Leonardo iniciaram um hotfix (ajuste urgente no sistema) para processar pagamentos de boleto por outro gateway, e assim por outro banco.
  • 10:10 Correção no ar.
  • 10:12 Emitimos um boleto de teste em produção para garantir que estava funcionando.
  • Impactos: 57 minutos de indisponibilidade na emissão de boletos no site.
  • Aprendizados e ações:
  • Garantir que tenhamos uma opção b na indisponibilidade dos meios de pagamento do checkout. Para isso, vamos desenvolver uma funcionalidade que processa o pagamento pelo meio de pagamento disponível (funcionando) no checkout (Responsável: Jacque). Link do card no Trello.
  • Implementar monitoramento no checkout para sabermos antes quando algum sistema estiver indisponível (Responsável: André). Link do card no Trello.

Como pudemos perceber no exemplo supracitado, o time descreve em forma de linha do tempo os eventos que tiveram como origem o incidente reportado às 09:15 e que teve sua correção garantida às 10:12 da manhã. Também consta ali o plano de ação para evitar que a indisponibilidade do meio de pagamento boleto volte a ocorrer, ou seja, o documento coloca em evidência o incidente e a solução e não responsabiliza nenhuma pessoa pelo problema.

É importante lembrar que deve-se ter cuidado ao citar nomes de membros do time no postmortem, para não fazer de forma que atribua culpa. Além disso, você pode registrar quem foi o responsável pelas ações de correção após o início do incidente. Se desejar, você pode registrar também o nome das empresas que são suas clientes e que foram afetadas.

Conclusão

Como vimos, com a adoção do postmortem a equipe consegue ter ali documentado, não somente o problema identificado, mas a sua correção e a volta à normalidade do sistema; além disso, ele também atua como uma aprendizagem para o time - que deve, no mínimo, tomar ações para evitar a repetição do problema e conhecer bem a sua causa raiz.

Portanto, a forma como os times lidam com incidentes, molda como os times trabalham e como o ambiente de trabalho é visto por todos. Usar conceitos como Blameless postmortem substituindo o velho - e nenhum pouco construtivo - “apontamento de dedos” (ou de culpados), é uma das formas de ter um ambiente mais harmonioso e colaborativo. Caso você queira conhecer mais sobre esse assunto, indico esse post no blog da Google: Postmortem Culture: Learning from Failure.

Mônica Matos Bock
Mônica Matos Bock

Product Manager nas Escolas de Programação e DevOps, apaixonada por café, graphic novels e tecnologia.

Veja outros artigos sobre DevOps