Sendo este meu primeiro artigo a convite do Augusto Vespermann, a quem agradeço pela oportunidade, abordarei um assunto que intriga muitos desenvolvedores, analistas e até mesmo tira o sono de muitos gerentes, que não sabendo o que realmente aconteceu, vêem sua equipe inteira de desenvolvimento ser tachada de incompetente; a implantação, o áureo momento em que sente-se o orgulho e a sensação de dever cumprido. Porém, quando o aplicativo, software ou módulo é posto em produção, vem a surpresa, há um bug.
O desenvolvedor diz que “na minha máquina funciona”, e realmente funciona.
O testador afirma e prova que “os testes passaram e foram revisados”, e realmente foram.
O analista e os envolvidos sabem que os passos foram seguidos e ficam todos pasmos aguardando uma decisão ou ainda pior, um culpado para condenar.
É exatamente a discussão que pude presenciar hoje em uma conversa informal no almoço entre um desenvolvedor e um analista de processos; se testamos ou não uma aplicação em produção.
O desenvolvedor defendeu ferrenhamente a idéia de testar a aplicação em produção, “apenas para ter certeza de que está abrindo e mostrando informações básicas”.
O analista, bastante formal, diz que JAMAIS se testa uma aplicação em produção.
E assim a discussão se seguiu até o horário de almoço terminar.
Quem está correto ? … Os dois !
Sim, os dois, pois, quando o real problema de qualquer aplicação é simplesmente o ambiente em que está sendo suportado, ou melhor, a diferença entre os ambientes de desenvolvimento, teste, homologação e produção, não há como saber qual regra devemos seguir.
Em uma rápida olhada na disciplina de gerenciamento de implantação do RUP, fica claro que testes não bastam para assegurar a disponibilidade sem erros de um aplicativo.
Segundo o RUP, o papel do gerente de implantação é planejar a transição do produto para a comunidade de usuários devendo ter as seguintes habilidades:
- Experiência na implantação de sistemas.
- Comunicação/Coordenação para se manter atualizado sobre o status do desenvolvimento do produto e comunicar as necessidades das atividades de implantação para os demais membros da organização.
- Capacidade de Planejamento para assegurar que a implantação seja feita dentro do prazo estabelecido e com os recursos disponíveis.
- Orientação por metas e Proatividade a fim de planejar e orientar a conclusão do produto pelas várias equipes. O Gerente de Implantação deve se concentrar em obter um produto de qualidade. Para desempenhar seu papel de forma eficaz, o Gerente de Implantação deve trabalhar com o Gerente de Projeto. Geralmente, esses papéis são desempenhados por uma única pessoa.
Ainda, para que a implantação ocorra da forma mais transparente possível, identifique o hardware necessário para execução dos testes do aplicativo, especifique modelo, versões e configurações, forneça informações sobre suporte do fabricante e licenças.
Liste os recursos necessários para executar as atividades de implantação e tenha em mente que o ambiente de produção, homologação e testes, jamais é 100% igual.
Contudo, o custo de se manter ambientes de teste fiéis aos de produção é exageradamente alto, principalmente se avaliarmos a alocação de mainframes, também os custos e esforços necessários para se manter o ambiente caro fiel ao de produção é quase a duplicação de todo o custo e esforço do ciclo completo de desenvolvimento do aplicativo. Que direção tomar então ? alinhar expectativas, deveres e direitos, antes de qualquer processo de implantação, e sim, enquanto o ambiente de produção não é igual ao de testes, dê uma navegada na aplicação para garantir que seu gerente ou superior não terá uma surpresa desagradável ao ver um erro, ou ao receber um feddback negativo de um usuário.
Parabéns Setembrino
Ótima abordagem. É isto que acontece e sempre pega a gente de surpresa, por mais que tenhamos tomado todos os cuidados.
Leia meu artigo Ponto Zero.
https://www.tiespecialistas.com.br/2011/03/ponto-zero-ou-o-aqui-e-agora/
Tento alinhar todas as técnicas para que na hora H, a coisa funcione.