Técnicas para resolução de problemas


Durante todos estes anos, os quais me encontro diretamente envolvido com ambientes e profissionais de tecnologia, seja dentro de uma sala de aula ou seja no dia a dia do trabalho percebo uma certa confusão por parte dos analistas de infraestrutura no que diz respeito à solução de problemas.Não me julgo um mestre no assunto em questão, apesar de ser uma das bases do meu trabalho como consultor; porém percebo que esta deficiência está relacionada a falta de visão no que se refere ao fluxo de resolução de problemas….ou seja, o analista não sabe por onde começar e por este motivo muitas vezes ignora etapas vitais no processo da resolução de problemas, efetuando procedimentos a esmo e sem necessidades, causando muitas vezes outros problemas além daqueles já mapeados.

A resolução de problemas em ambientes de produção é crítica no que diz respeito ao tempo de inatividade do serviço e ou recursos (como aplicações, ativos,usuários,etc.), impactando diretamente na área de negócios.Por este motivo, o analista deve resolver um problema da maneira mais rápida e efetiva, impedindo um impacto considerável na produtividade das atividades dos usuários.Hoje em dia muitas empresas investem em produtos de monitoração, metodologias de processos, treinamento especializado dos profissionais, bem como outros diversos artifícios para que este impacto seja diminuído e ou inexistente.

Um conceito vital para a resolução de problemas é o conceito de incidente e problema, tão comumente abordado em ITIL e outras metodologias.Este conceito consiste basicamente em definir incidente como um fato isolado, algo não generalizado e ou recorrente (ex: Um usuário abriu um chamado referente a um problema de configuração em seu Outlook) e problema referente a algo generalizado e ou recorrente (ex: Vários usuários abrem chamados referente ao mesmo problema em seus Outlook’s ou um usuário reportando sempre o mesmo erro.). Então vamos direto ao ponto!…

1. Investigando a ocorrência.É primordial o levantamento de informações referente ao problema, perguntas clássicas como: Que horas ocorreu o problema?O que mudou no computador e ou no ambiente pouco antes deste período que poderia ter ocasionado o erro (uma instalação e ou atualização de software, mudança de alguma configuração do sistema e ou da rede,etc.)?…Enfim, reunir a maior quantidade de informações possíveis; quando estamos “interrogando” um usuário, é fundamental se comunicar com o mesmo com termos que serão compreendidos por ele, pois termos técnicos só irão confundir o usuário nos impedindo de obter as informações que precisamos.

2. Verificando a abrangência do erro.Neste ponto podemos verificar se o ocorrido é um incidente ou um problema, se é um erro do cliente, da rede ou do servidor.Devemos verificar se o erro ocorre com um único usuário, se ocorre com um conjunto de usuários ( se ocorrer com mais de um usuário, verificar o que estes recursos tem em comum…seja uma aplicação, VLAN em Switches, grupo ou OU no AD, etc) ou é referente à uma aplicação e ou serviço de rede específico.Assim podemos avaliar em que ponto e de que forma iremos atuar para resolver o erro.

3. Pesquisa técnica do erro.Nesta etapa, iremos pesquisar as mensagens e características do erro em questão (POPUPS de erro, log’s da aplicação em questão,logs do sistema,etc.), bem como as do impacto gerado.Isso é importante para “cruzarmos” essas informações com as informações recolhidas anteriormente e em conjunto com os dados de abrangência do problema.O produto destas informações será primordial para uma correta pesquisa da resolução do incidente e ou problema (Ex: O Outlook do usuário está apresentando o erro XYZ porém este erro pode ser decorrente a uma configuração falha do Outlook e ou do servidor de correio da organização,etc…).Podemos neste momento utilizar de ferramentas de diagnósticos fornecidas pelo fabricante e ou terceiros.

4. Aplicação da solução.Bom, chegamos a um ponto crucial para a resolução de um problema, a aplicação da solução.Antes da resolução propriamente dita de um problema e ou incidente, temos que verificar alguns pontos importantes: 

a. Qual o impacto da aplicação da solução.É fundamental o mapeamento do impacto causado na aplicação das soluções possíveis para o problema e ou incidente; algumas delas podem acarretar na reinicialização de um servidor, restauração de backup, reconfiguração de algum parâmetro de uma aplicação e ou serviço de rede, mudança nas permissões de um usuário,etc.O mapeamento é importante para nos organizarmos referente de quando iremos poder aplicar a solução (ex: uma solução que envolve um boot de um servidor em produção pode acarretar na sua execução fora do horário comercial).Devemos esperar para corrigir um erro, quando o impacto do processo de correção no momento for maior que o impacto do erro.

b. Qual solução aplicar.Dependendo do problema em questão, podemos contar com mais de uma solução (algumas delas definitivas e outras paliativas) para o mesmo.Porém SEMPRE existe a MELHOR solução a ser aplicada; dependendo da situação, somos forçados à executar uma solução paliativa ou simplesmente uma solução que não seja a melhor.Isso deve ser avaliado levando-se em consideração o impacto de cada solução X a urgência (SLA) para a resolução do problema.Porém, caso não seja possível aplicar a melhor solução no momento, deve-se agendar a aplicação da mesma para que uma solução paliativa não se torne uma solução definitiva.

c. Como aplicar a solução.O processo de execução de uma solução é muito importante.A execução da solução deve ser limpa e sem erros; o mais adequado é a pesquisa de um passo-a-passo ( de preferência do fabricante da aplicação,ativo ou solução com erro)para que não haja erros na hora do processo de execução.Seria interessante dependendo da criticidade do ambiente, testar a correção em um ambiente de homologação antes de aplicar a mesma em produção.Não devemos ser generalistas a fim de simplificar a aplicação (ex: a documentação diz que para resolver um problema o usuário precisa de uma permissão específica em UM ARQUIVO e para “simplificar” você acaba atribuindo permissão à PASTA INTEIRA), com isso podemos aumentar significativamente o impacto causado pela aplicação da correção, além de causar problemas relacionados a segurança,configurações,melhores práticas,etc.

5. Verificação dos resultados.Após a aplicação da correção,devemos verificar os seguintes pontos:

a. Se os sintomas do problema ou incidente desapareceram.Podemos verificar o desaparecimento dos sintomas do erro através de verificação de logs(da aplicação,do sistema,etc),não incidência de popups de erros, utilização dos recursos que antes não funcionavam,etc.

b. Monitoramento da solução.Verificar se existe a reincidência do erro após a aplicação da solução, verificar a performance da aplicação,solução e ou serviço que estava apresentando erros e o feedback dos usuários e analistas envolvidos.

Descrevi acima alguns pontos básicos que devem ser seguidos para se resolver problemas e incidentes sejam no nosso trabalho e ou em clientes.Claro que cada situação pode se apresentar de forma bem particular e que a resolução de problemas contém várias vertentes como recuperação de desastres,planos de contingência,etc…mas o desenvolvimento dessas atividades devem ser efetuadas de forma organizada,segura e alinhada com um bom embasamento técnico sobre as tecnologias envolvidas.