INTRODUÇÃO
Este é o episódio 4 da temporada 2 da série “Estudo de Caso”, com foco na solução de problema em aplicativo Web, utilizando Inteligência Artificial (IA) e o Método de Análise e Solução de Problemas (MASP).
Estudo de Caso
Objetivo
Solucionar um problema de Tecnologia da Informação (TI), usando o Método de Análise e Solução de Problema (MASP), no contexto abaixo.
Contexto
O contexto é a execução de um aplicativo Web no ambiente de produção, no serviço de infraestrutura na nuvem AWS, no servidor S2.
O usuário relatou o bug com essa mensagem: "Desapareceu o botão RESUMO das pessoas públicas…".
1 PERSONAGEM
1.1 Qual o papel do Chatbot de IA? Profissional da área de TI especialista em desenvolvimento de aplicativo Web usando o container de desenvolvimento Docker, com Frontend React e Backend Django, usando o serviço de infraestrutura na nuvem AWS.
2 IDENTIFICAÇÃO DO PROBLEMA
Definir claramente o problema (diferença entre o que é e o que deveria ser). Utilizar 5W1H.
2.1 [What?] - O que aconteceu diferente do esperado?
O usuário fez uma consulta e não apareceu o resultado esperado.
O resultado esperado era um botão com o rótulo "RESUMO".
O botão esperado não apareceu.
2.2 [Who?] - Quem iniciou a execução? O usuário
2.3 [When?] - Evento que iniciou a execução? Ícone "Pessoa Pública e Candidatos".
2.4 [Where?] - Onde a execução parou? Parou após o usuário clicar no nome de um Candidato.
2.5 [Why?] - Por que a execução parou? Não sei, mas o fato é que o botão "RESUMO" deveria aparecer após o usuário clicar no nome do Candidato.
2.6 [How?] - Como é o procedimento, passo a passo, para reproduzir o erro?
Passo 1: Clicar no Ícone "Pessoa Pública e Candidatos".
Passo 2: Clicar no nome de um Candidato.
3 OBSERVAÇÃO
Investigar as características específicas do problema com uma visão ampla e sob vários pontos de vista. Utilizar Diagrama de Ishikawa ou Causa e Efeito.
3.1 [Pessoas?] Como este item influencia no problema?
3.1.1 Falta de treinamento adequado da equipe? Não.
3.1.2 Problemas de comunicação entre membros da equipe? Não.
3.1.3 Ausência de revisões? Não
3.2 [Recurso?] Como este item influencia no problema?
3.2.1 Computador desatualizado? Não
3.2.2 Aplicativo desatualizado ou instável? Não
3.2.3 Configurações do ambiente incorretas ou inconsistentes? Não.
3.2.4 Configuração incorreta das variáveis de ambiente? Não.
3.2.5 Incompatibilidades no ambiente, ou seja, diferenças entre os ambientes onde o processo é executado? Não.
3.2.6 Condições de rede, ou seja, problemas de conectividade que afetam a execução do processo? Não.
3.3 [Método?] Como este item influencia no problema?
3.3.1 Práticas de execução inadequadas? Não.
3.3.2 Falta de documentação do Procedimento Operacional Padrão? Não.
3.3.3 Processo de verificação deficiente, com testes insuficientes ou mal planejados? Sim.
3.4 [Entrada?] Como este item influencia no problema?
3.4.1 Informações de terceiros com falhas ou incompatíveis? Não
3.4.2 Informações de terceiros instáveis ou desatualizadas? Não
3.4.3 Dependências de Informações de terceiros inadequadas ou desatualizadas? Não.
3.5 [Saída?] Como este item influencia no problema?
3.5.1 Resultado incompleto, impreciso ou inválido? Não
3.5.2 Resultado indisponível no local esperado? Sim
3.5.3 Resultado rejeitado por quem vai utilizá-lo? Não
3.6 [Medição?] Como este item influencia no problema?
3.6.1 Falta de monitoramento adequado do desempenho? Não
3.6.2 Falta de métricas claras e consistentes para avaliar a qualidade do processo? Não
3.6.3 Ausência de ferramentas de análise para detectar problemas no processo? Não
4 ANÁLISE
Descobrir as causas fundamentais. Utilizar "5 Porquês".
4.1 Para cada problema encontrado no item 3 OBSERVAÇÃO, perguntar 5 vezes o porquê do problema ou defeito ter ocorrido, a fim de descobrir a sua real causa, ou seja, a causa raiz.
4.1.1 Método: Processo de verificação deficiente, com testes insuficientes ou mal planejados? Por quê? Efeito colateral de mudanças.
4.1.2 Saída: Resultado indisponível no local esperado? Por quê? Efeito colateral de mudanças.
COMANDO PARA O CHATBOT DE IA
Crie um Plano de Ação para resolver o problema especificado acima e, se possível, ensine como executar as ações.
O Plano de Ação deve ter 5 etapas: Iniciação, Planejamento, Execução, Monitoramento e Controle e Encerramento.
Cada etapa do Plano de Ação deve ter 3 grupos de tarefas executáveis: Entrada, Passos, Saída.
Cada Entrada deve especificar, além de dados e recursos disponíveis, as pré-condições, que são os requisitos para iniciar a execução dos passos.
Cada Saída deve especificar, além de dados e recursos disponibilizados, as pós-condições, que são os requisitos para considerar a execução encerrada com sucesso.
Resposta do Chatbot de IA Google Gemini
Plano de Ação para Solução do Bug "Botão RESUMO ausente"
Com base na sua análise usando o MASP, fica claro que o problema de o botão "RESUMO" ter desaparecido está relacionado a efeitos colaterais de mudanças que não foram cobertos por um processo de verificação robusto, resultando em um resultado indisponível no local esperado.
Como seu especialista em desenvolvimento web com React, Django, Docker e AWS, vou criar um plano de ação detalhado para resolver e prevenir esse tipo de ocorrência.
1. Iniciação
Esta etapa visa formalizar o problema, definir os objetivos e montar a equipe inicial para a resolução.
-
Entrada:
- Dados e Recursos Disponíveis: Relato do usuário ("Desapareceu o botão RESUMO das pessoas públicas…"), análise 5W1H e Diagrama de Ishikawa (Causa e Efeito) já realizados.
- Pré-condições: Confirmação do bug pelo usuário e priorização como incidente a ser resolvido.
-
Passos:
- Revisar e Validar o Problema: Confirmar que a descrição do problema (botão "RESUMO" ausente) e a reprodutibilidade (Passo 1: Clicar em "Pessoa Pública e Candidatos" -> Passo 2: Clicar no nome de um Candidato) estão corretas.
- Comunicar às Partes Interessadas: Notificar a equipe de desenvolvimento e stakeholders sobre o incidente, seu impacto e a prioridade.
- Definir o Objetivo Imediato: Restaurar a funcionalidade do botão "RESUMO" no ambiente de produção.
- Definir Objetivo de Longo Prazo: Implementar melhorias no processo de verificação e testes para evitar recorrências.
- Designar Responsáveis: Atribuir um líder técnico e membros da equipe para trabalhar na solução.
-
Saída:
- Dados e Recursos Disponibilizados: Problema formalizado e validado, comunicação inicial realizada, objetivos definidos (curto e longo prazo), e equipe inicial designada.
- Pós-condições: Entendimento comum do problema e alinhamento sobre a necessidade de ação.
2. Planejamento
Nesta etapa, detalharemos as ações necessárias para resolver o problema, incluindo a análise da causa raiz mais profunda, a definição das soluções e a criação de um plano de testes.
-
Entrada:
- Dados e Recursos Disponíveis: Problema validado, objetivos definidos. Acesso ao código-fonte (React, Django), ambiente AWS, logs do S2, ferramentas de monitoramento.
- Pré-condições: Acesso a todos os sistemas e informações relevantes para a investigação.
-
Passos:
- Análise Aprofundada da Causa Raiz (5 Porquês):
- Problema: Botão "RESUMO" não aparece.
- Por quê? (Causa 1) Efeito colateral de mudanças.
- Por quê? (Causa 2) Uma alteração recente no código (Frontend React ou Backend Django) ou na infraestrutura (AWS) impactou a renderização/disponibilidade do botão.
- Por quê? (Causa 3) A alteração não foi devidamente testada em cenários de regressão que incluíam a funcionalidade do botão "RESUMO".
- Por quê? (Causa 4) O processo de testes existente é deficiente, com cobertura insuficiente para detectar efeitos colaterais em áreas não diretamente relacionadas à mudança principal.
- Por quê? (Causa 5) Faltam testes automatizados ou um processo de revisão de código mais rigoroso para identificar possíveis impactos em componentes críticos como este botão.
- Identificar a Mudança Causa: Rastrear as últimas alterações no código (commits no Git) ou na configuração da infraestrutura (CloudFormation, Terraform) implantadas antes do aparecimento do bug.
- Propor Soluções para o Problema Imediato:
- Opção A (Reverter): Se a mudança for recente e a regressão for clara, considerar reverter a última implantação para uma versão estável anterior.
- Opção B (Hotfix): Desenvolver um patch rápido para corrigir especificamente a exibição do botão "RESUMO". Isso pode envolver ajustar o componente React, a API do Django ou a forma como os dados são consumidos.
- Propor Soluções para Prevenção (Longo Prazo):
- Implementar mais testes de regressão automatizados para o Frontend (ex: Cypress, Jest).
- Reforçar testes de integração no Backend (ex: Pytest com Django Test Client).
- Melhorar o processo de Code Review para incluir verificação de impacto em funcionalidades interdependentes.
- Considerar a adoção de testes de ponta a ponta (E2E) em ambiente de homologação.
- Definir Plano de Testes: Elaborar um plano de testes detalhado para a solução imediata, incluindo testes unitários, de integração e, principalmente, de regressão para o cenário reportado.
- Criar um Cronograma: Definir prazos realistas para cada etapa do plano de ação.
- Análise Aprofundada da Causa Raiz (5 Porquês):
-
Saída:
- Dados e Recursos Disponibilizados: Causa raiz identificada (falta de testes abrangentes), lista de possíveis soluções (imediata e de longo prazo), plano de testes detalhado e cronograma.
- Pós-condições: Equipe com clareza sobre o que precisa ser feito e como será validado.
3. Execução
Nesta etapa, o plano de ação é colocado em prática.
-
Entrada:
- Dados e Recursos Disponíveis: Plano de soluções definido, plano de testes, acesso aos ambientes de desenvolvimento, homologação e produção.
- Pré-condições: Ferramentas de desenvolvimento (IDE, Docker, Git), ambiente de desenvolvimento configurado.
-
Passos:
- Desenvolver a Solução Imediata (Hotfix ou Reversão):
- Se Hotfix: Implementar a correção no código (React ou Django) para garantir que o botão "RESUMO" seja renderizado corretamente e receba os dados esperados.
- Se Reversão: Executar o rollback para a versão anterior do deploy.
- Testar em Ambiente de Desenvolvimento: Executar os testes unitários e de integração no ambiente local.
- Deploy em Ambiente de Homologação: Realizar o deploy da correção no ambiente de homologação (staging).
- Executar Testes em Homologação: Executar o plano de testes definido, incluindo o cenário de regressão do bug e outros cenários críticos, com a equipe de QA e/ou usuários-chave.
- Preparar para Deploy em Produção: Se os testes em homologação forem bem-sucedidos, preparar o pacote de deploy para produção.
- Desenvolver a Solução Imediata (Hotfix ou Reversão):
-
Saída:
- Dados e Recursos Disponibilizados: Código corrigido ou ambiente revertido, resultados dos testes em desenvolvimento e homologação, pacote de deploy para produção.
- Pós-condições: Solução validada em ambiente de homologação e pronta para implantação em produção.
4. Monitoramento e Controle
Esta etapa garante que a solução implementada funcione como esperado e que quaisquer problemas emergentes sejam tratados.
-
Entrada:
- Dados e Recursos Disponíveis: Solução implantada em produção ou pronta para implantação, ferramentas de monitoramento (CloudWatch, logs do servidor S2, New Relic/Datadog se aplicável).
- Pré-condições: Acesso aos sistemas de monitoramento e logs de produção.
-
Passos:
- Deploy em Produção: Realizar o deploy da correção (hotfix ou reversão) no servidor S2, no ambiente AWS.
- Monitoramento Imediato Pós-Deploy: Acompanhar de perto os logs do servidor S2 e as métricas de performance e erro.
- Validação em Produção: Solicitar ao usuário ou a um membro da equipe que reproduza o cenário original do bug para confirmar que o botão "RESUMO" agora aparece corretamente.
- Monitoramento Contínuo: Manter o monitoramento por um período após o deploy para garantir que não surjam novos efeitos colaterais.
- Coletar Feedback do Usuário: Entrar em contato com o usuário que reportou o bug para confirmar a resolução.
- Documentar a Solução: Registrar as etapas da correção, a causa raiz e as observações durante o monitoramento.
-
Saída:
- Dados e Recursos Disponibilizados: Bug resolvido em produção, evidências de monitoramento, feedback positivo do usuário, documentação da solução.
- Pós-condições: Funcionalidade restaurada e ambiente estável.
5. Encerramento
Nesta etapa final, o foco é em formalizar a resolução, aprender com o problema e implementar melhorias para evitar futuras ocorrências.
-
Entrada:
- Dados e Recursos Disponíveis: Problema resolvido, documentação da solução, análise da causa raiz.
- Pré-condições: Confirmação da estabilidade do ambiente após a correção.
-
Passos:
- Revisão Pós-Incidente (Post-Mortem): Realizar uma reunião com a equipe para discutir:
- O que aconteceu?
- Como foi resolvido?
- O que aprendemos?
- O que poderíamos ter feito melhor?
- Discutir as soluções de longo prazo (testes automatizados, melhorias no Code Review, etc.).
- Implementar Melhorias de Processo (Longo Prazo):
- Priorizar e iniciar o desenvolvimento de testes de regressão automatizados para a funcionalidade afetada e outras áreas críticas.
- Atualizar a documentação de procedimentos de deploy e testes.
- Discutir a inclusão de mais cenários de teste em revisões de código.
- Comunicação Final: Informar todas as partes interessadas sobre a resolução do incidente e as lições aprendidas.
- Arquivar Documentação: Armazenar todos os registros relacionados ao incidente para referência futura e aprendizado.
- Revisão Pós-Incidente (Post-Mortem): Realizar uma reunião com a equipe para discutir:
-
Saída:
- Dados e Recursos Disponibilizados: Relatório de post-mortem, plano de melhorias de processo, comunicação final, documentação arquivada.
- Pós-condições: Problema totalmente resolvido, lições aprendidas e ações preventivas em andamento para fortalecer o processo de desenvolvimento e implantação.
Espero que este plano de ação detalhado ajude sua equipe a resolver o problema e a fortalecer seus processos de TI. Lembre-se que a colaboração entre as equipes de desenvolvimento, QA e operações é crucial para o sucesso.
Você gostaria de aprofundar em alguma das etapas ou discutir as ferramentas específicas para implementar os testes automatizados, por exemplo?
CONCLUSÃO
A utilização do MASP, com suas 42 perguntas, foi importante para o desenvolvedor relembrar, coletar e registrar no Prompt fatos e dados importantes para solicitar ajuda ao Chatbot de IA.
Assim que o plano de ação for executado com sucesso, a solução do problema será relatada no próximo tópico.
Solução do problema
Demais Episódios da Temporada:
- Série Estudo de Caso:
- Temporada T2 Solução de Problema com IA e MASP:
- Episódio E1 Serviço de infraestrutura na nuvem
- Episódio E2 Aplicativo Web
- Episódio E3 Instalação de Aplicativo
- Episódio E5 Correção T2E4
- Episódio E6 Correção T2E2
Nenhum comentário:
Postar um comentário