Seguidores

quinta-feira, 29 de maio de 2025

Estudo de Caso T2E4: Solução de Problema com IA e MASP - Aplicativo Web

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).




O objetivo deste Post é mostrar um Prompt completo, elaborado com base no MASP, para pedir a um Chatbot de IA, um Plano de Ação para resolver um bug em app Web.



Estudo de Caso

Para este estudo de caso foi criado o Prompt abaixo, que utiliza o MASP para especificar com clareza um problema, a fim de pedir ajuda a um Chatbot de IA na solução.

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

Link da conversa com o Chatbot de IA Gemini: https://g.co/gemini/share/79de9650c287

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:

    1. 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.
    2. Comunicar às Partes Interessadas: Notificar a equipe de desenvolvimento e stakeholders sobre o incidente, seu impacto e a prioridade.
    3. Definir o Objetivo Imediato: Restaurar a funcionalidade do botão "RESUMO" no ambiente de produção.
    4. Definir Objetivo de Longo Prazo: Implementar melhorias no processo de verificação e testes para evitar recorrências.
    5. 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:

    1. 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.
    2. 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.
    3. 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.
    4. 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.
    5. 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.
    6. Criar um Cronograma: Definir prazos realistas para cada etapa do plano de ação.
  • 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:

    1. 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.
    2. Testar em Ambiente de Desenvolvimento: Executar os testes unitários e de integração no ambiente local.
    3. Deploy em Ambiente de Homologação: Realizar o deploy da correção no ambiente de homologação (staging).
    4. 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.
    5. Preparar para Deploy em Produção: Se os testes em homologação forem bem-sucedidos, preparar o pacote de deploy para produçã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:

    1. Deploy em Produção: Realizar o deploy da correção (hotfix ou reversão) no servidor S2, no ambiente AWS.
    2. Monitoramento Imediato Pós-Deploy: Acompanhar de perto os logs do servidor S2 e as métricas de performance e erro.
    3. 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.
    4. Monitoramento Contínuo: Manter o monitoramento por um período após o deploy para garantir que não surjam novos efeitos colaterais.
    5. Coletar Feedback do Usuário: Entrar em contato com o usuário que reportou o bug para confirmar a resolução.
    6. 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:

    1. 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.).
    2. 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.
    3. Comunicação Final: Informar todas as partes interessadas sobre a resolução do incidente e as lições aprendidas.
    4. Arquivar Documentação: Armazenar todos os registros relacionados ao incidente para referência futura e aprendizado.
  • 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

O desenvolvedor está executando o plano de ação para solução do problema.


Demais Episódios da Temporada:

Nenhum comentário:

Postar um comentário

Entendendo a Metáfora "Home Office é Moto Boy"

Dashboard de Produtividade Pessoal T1E14: RESOLVIDO BugCT1-5 Erro 400 no login

INTRODUÇÃO Post anterior:  Dashboard de Produtividade Pessoal T1E13: BugCT1-5 Erro 400 no login O objetivo deste post é apresentar um prompt...