Quem gerencia projetos, ou já contratou empresas para executar projetos, sabe que uma das maneiras de se diminuir custos e prazos de entrega é diminuir a qualidade do produto, não utilizar processos definidos, não gerar documentação, não executar fases previstas no desenvolvimento de software e não planejar e executar testes apropriados.
É justamente aqui que se está se armando uma grande armadilha. Os envolvidos podem não estar cientes das consequências geradas da entrega do sistema desenvolvido sem ter sido dada a devida atenção à qualidade. Todo numerário economizado no desenvolvimento poderá e será gasto na geração de novas versões corrigidas que deverão ser entregues ao cliente, além de termos um custo imensurável ligado a imagem do produto e da própria empresa.
Outro efeito da falta da utilização de processos definidos e da engenharia de software é a geração de sistemas não amigáveis para uso, apresentando informações consideradas não fidedignas e com erros de funcionamento. Neste cenário, nenhum usuário se interessará em utilizar o sistema desenvolvido, fazendo que o projeto fracasse e que seja perdido todo o investimento realizado.
Imagine o cenário de um sistema de cobrança bancária, para o qual você poderia estar participando de um processo de manutenção corretiva, sem ter documentação do sistema e sem ter conhecimento das regras de negócio implementadas. Imagine também que esta manutenção está relacionada à correção de informações, que estão sendo geradas incorretamente. Agora, para finalizar, imagine que o sistema possui milhares de linhas de código e você é novo na equipe, sendo que os programadores que implementaram o sistema não estão mais na empresa.
Por mais que este cenário seja assustador, podemos encontrá-lo neste exato momento em diversos lugares, enquanto você lê este artigo.
O que faltou no projeto de desenvolvimento deste tipo de sistema?
Tecnicamente, poderia citar:
- Engenharia de Software e utilização de processos definidos
- Utilização de metodologia de desenvolvimento de sistema alinhado ao paradigma associado ao projeto
- Utilização de Design Patterns quando apropriado
- Documentação adequada
- Planejamento e execução de testes adequados
Do lado humano, poderia citar:
- Participação no projeto de profissionais com conhecimento dos itens técnicos acima relacionados
- Falta de percepção do sponsor do projeto do valor e benefícios de se utilizar os itens acima relacionados
- Falta de conhecimento dos envolvidos no projeto, das melhores práticas de mercado para desenvolvimento de software e de seus benefícios
Já tive a oportunidade de presenciar de empresários e executivos, o seguinte comentário:
Prefiro o desenvolvimento de software sem utilizar Orientação a Objetos e processos de desenvolvimento, pois é mais barato e mais rápido de se disponibilizar o sistema para os usuários.
Pessoas que pensam assim, provavelmente desconhecem o que vou apresentar no próximo artigo, denominado “Crise do legado”, onde mostro informações que deixam claro, a grande armadilha de quem escolhe este tipo de procedimento no desenvolvimento de software.
Desenvolver código baseado nesta idéia pode gerar as seguintes conseqüências:
- Implantação de sistemas cheios de erros, constantemente entrando em manutenção
- Sistemas que podem não atender às expectativas dos Stakeholders
- Softwares com alto custo de manutenção
- Softwares difíceis de serem utilizados, não atendendo às necessidades dos StakeHolders
- Grande insatisfação dos usuários
- Fracasso do projeto
O desenvolvimento de sistema sem utilizar processos, AD HOC, acaba custando muito mais caro, gerando insatisfação.
Já presenciei várias vezes, pessoas que simplesmente não queriam e não utilizavam sistemas disponibilizados pela empresa, por pelo menos um dos seguintes motivos:
- Não confiavam nos dados por eles apresentados
- Porque não atendiam a suas expectativas e necessidades do dia a dia
- Porque tinham usabilidade ruim
- Porque viviam apresentando problemas de funcionamento
O detalhe mais triste é que as empresas onde estas pessoas trabalhavam, investiram dinheiro e tentaram disponibilizar sistemas para melhorar a produtividade e diminuir custos das mesmas. O resultado foi exatamente o contrário, além de não diminuir custos, nem aumentar produtividade, as empresas perderam todo o investimento realizado e o sistema caiu em desuso, literalmente, sendo jogado fora.