Hélio Engholm Jr

Especializado em Engenharia de Software

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á armando uma grande armadilha. Os envolvidos podem não estar cientes das consequências geradas a partir do momento da entrega do sistema desenvolvido e entregue 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 e foi contratado recentemente, 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 sistema 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.

Engenharia de Software na Prática

O livro Engenharia de Software na Prática aborda os seguintes processos:

- Gerenciamento e engenharia de requisitos
- Gerenciamento de mudanças
- Gerenciamento de riscos
- Gerenciamento de qualidade
- Gerenciamento de configuração
- Processos de análise, arquitetura e design de software
- Processos de construção, testes de software e implantação
Mostrando exemplos e templates que podem ser utilizados em projetos reais de TI.

Conheça o livro

LivroES

Link Novatec: http://www.novatec.com.br/livros/engenhariasoftware/

Link Livraria Cultura:

http://www.livrariacultura.com.br/scripts/resenha/resenha.asp?nitem=22123724

Livraria Saraiva: 

http://www.livrariasaraiva.com.br/produto/3048891




+ Artigos