No último texto discutimos a respeito das atividades que devem preceder a terceirização de Testes de Software. Neste vamos desmistificar os aspectos da manutenção de software.
O que tenho escutado sobre a manutenção:
“Não sei nem por onde começar!”
“É difícil estabelecer as responsabilidades!”
“Não dá para saber se estamos melhorando!”
“Se eu não tiver alguém cuidando disso…”
“Só sei da insatisfação do cliente pelo pior caminho, a queixa!”
“A versão nova ainda não estabilizou!”
“Instalamos a versão nova assim que recebemos e rezamos…”
“Eu arrumo aqui, dá problema ali…”
“E o problema estava parado há vários dias, acredita?”
Estes comentários, normalmente pronunciados nos corredores e dificilmente colocados de forma objetiva nas reuniões adequadas, revelam que as organizações, os usuários e até mesmo os profissionais de TI têm medo da manutenção de software. E por que?
Inicialmente há que se considerar as diferentes manutenções de software:
- Manutenção corretiva, que foca a correção dos defeitos;
- Manutenção adaptativa, que visa a adaptação do software para as diferentes plataformas e / ou inovações tecnológicas; e,
- Manutenção evolutiva, que permitirá a inclusão de novas funcionalidades.
Alguns autores ainda classificam mais um tipo de manutenção, a perfectiva, que adiciona melhorias na forma que o software trata as funcionalidades, tornando o software mais amigável, ou mais produtivo ao usuário.
Qualquer que seja o motivo da manutenção, ela sempre vem carregada com uma certa dose de pressão, seja por parte do Usuário, seja por parte da Produção.
Os Usuários exigem que os defeitos sejam removidos rapidamente, pois são eles que arcam com os custos das falhas decorrentes.
A Produção em geral tem os seus SLAs e SLMs – acordos / gestão de níveis de serviço – a serem cumpridos, que também os colocam em posição de pressão.
Por outro lado há a questão histórica de que em média a organização chega a gastar até 70% dos seus orçamentos de desenvolvimento em manutenção corretiva, adaptativa e evolutiva. Daí decorre o mito de que a manutenção é sempre cara.
Para os Desenvolvedores a manutenção é vista como uma atividade menos nobre e a grande maioria dos profissionais preferem trabalhar em projetos de novos sistemas e softwares.
Quando olhamos para estes fatores em conjunto, temos a impressão que estamos andando em círculos: solicitações por manutenção gerando pressões, pressões gerando urgências e atividades sendo preteridas. Ai a manutenção é executada rapidamente sem os devidos cuidados e o resultado é óbvio.
Reverter esta situação não é simples, mas algumas ações focadas na qualidade para a manutenção de software podem fazer a diferença:
- A Metodologia de Desenvolvimento de Software deve definir atividades para a manutenção com foco na análise de impacto;
- Deve ser conduzida uma Revisão Formal da solução adotada para a manutenção com a participação de Arquitetos de Sistemas, Usuários, Produção e Desenvolvedores de outros sistemas envolvidos ou impactados;
- Os Testes devem ter abrangência ampliada para todos os demais sistemas envolvidos ou impactados;
- A Gestão de Mudanças deve exigir evidências efetivas destas atividades; e,
- Estabelecer a gestão para as atividades de manutenção.
Gestão de Manutenção deve envolver a validação da necessidade, análise de alternativas, definição da alternativa escolhida, análise de impacto, validação das alterações e testes e aprovação da implantação pelo Controle de Mudanças.
Não há segredo, mas sim foco no risco e impacto das manutenções que tiverem a sua necessidade validada pela organização.
Outra iniciativa necessária é garantir a manutenibilidade de sistemas e softwares quando da sua construção. Mas isto já é foco para outro texto.
Em nosso próximo texto vamos falar sobre Qualidade em TI – A visibilidade da qualidade e a Governança de TI.
[Crédito da Imagem: Manutenção de Software – ShutterStock]
Excelente artigo
Obrigado!