Ao testar novos lançamentos importantes, às vezes você pode se surpreender com novos erros no ambiente de produção. Por quê? O que deu errado? Os ambientes de teste nem sempre estão tão próximos da produção quanto esperamos. Alterações de infraestrutura podem ser feitas no ambiente sem serem documentadas, fazendo com que os ambientes se afastem lentamente.

Identificar e resolver problemas é muito demorado. Assim, aprender a solucionar problemas com rapidez é um dos melhores investimentos que você pode fazer como desenvolvedor de software.

O que é análise de causas-raiz?

A análise de causas-raiz (ACR) é uma técnica específica que pode ser usada para resolver problemas. Com essa técnica, você analisa a questão do momento usando um conjunto específico de etapas para identificar a causa principal do problema. A ACR parte do princípio de que não é útil focar nos sintomas de um problema enquanto se ignora as suas causas.

Quais são os benefícios da análise de causas-raiz?

A análise de causas-raiz (ACR) é uma técnica específica que pode ser usada para resolver problemas. Com essa técnica, você analisa a questão do momento usando um conjunto específico de etapas para identificar a causa principal do problema. A ACR parte do princípio de que não é útil focar nos sintomas de um problema enquanto se ignora as suas causas.

Como começar com a análise de causa raiz?

Explique o problema

Use a abordagem do pato de borracha (depuração do pato de borracha) para explicar seu problema de forma simples. Ao explicar alguma coisa, você é forçado a ordenar seus pensamentos. Jeff Atwood, o cofundador do popular site de perguntas e respostas Stack Overflow, fala sobre quantas vezes um desenvolvedor de software disse a ele sobre fazer uma nova pergunta no site, descobrir a resposta por si mesmo no processo e nunca postar a resposta.

As seguintes abordagens podem ajudar você a articular o problema de forma simples:

  1. Escreva uma pergunta para o Stack Overflow, mesmo que você nunca a envie.
  2. Faça um relatório de bugs detalhado.
  3. Explique-o para um colega de trabalho.

Reúna dados de logs (e faça buscas neles de maneira eficiente)

Em seguida, colete mais dados sobre o problema e extraia insights dele. Os logs e o monitoramento podem ser úteis aqui, sejam logs de crash, logs de aplicações e servidores etc. Reúna evidências de que o problema aconteceu, mas também, se possível, descubra há quanto tempo tem acontecido e com que frequência.

Dentro de todos esses dados, você precisa encontrar pontos de dados específicos rapidamente. As ferramentas podem ajudar a pesquisar e analisar os dados de log coletados e transformá-los em insights para diagnosticar e resolver problemas mais rapidamente.

Use a técnica dos cinco porquês

Em seguida, identifique os fatores causais: a causa imediata do problema em questão. Não identifique apenas um fator causal e pare. É necessário ir adiante com a técnica dos cinco porquês. Pergunte "por quê?" interativamente até chegar à raiz do problema. Por exemplo, seu site está mostrando o erro 500.

  1. Por quê? Porque o componente do roteamento do web framework não funcionou direito.
  2. Por quê? Porque exige outro componente, que também não funcionou direito.
  3. Por quê? Porque esse componente do web framework exige a extensão intl, que não está funcionando.
  4. Por quê? Porque foi desativada acidentalmente depois que o software do servidor foi atualizado.

Claro, é possível chegar à raiz do problema com menos passos. Ou você pode precisar de ainda mais.

Arrume um segundo par de olhos

Assim como a revisão de código, peça para outra pessoa imparcial dar uma olhada no seu código. Com o tempo, a expectativa de passar por uma revisão o ajudará a refinar seu processo. Ou melhor ainda, resolva problemas em dupla.

O que a AWS oferece para análise de causas-raiz?

Uma das principais ofertas da AWS para análise de causas-raiz é ajudar você a ingerir e analisar dados do log. Para isso, recomendamos o Amazon OpenSearch Service.

Saiba mais sobre os preços do Amazon OpenSearch Service

Acesse a página de preços