Qualidade de Software: uma questão de eficiência

Você sabia que a grande maioria das empresas de software no Brasil gasta 70% do tempo de desenvolvimento corrigindo erros, ao invés de inovar e desenvolver novas soluções? É muito mais trabalhoso reescrever códigos do que criar novos códigos, inovar, criar novas soluções. Existem empresas que já estão na versão 5 de seu software, mas têm clientes que ainda usam a versão 3, porque morrem de medo de atualizar, por causa dos históricos de erros em novas versões – eles preferem os problemas já conhecidos. Saber que sua empresa fornecedora de software trabalha dentro dos padrões de qualidade da indústria, pode ser uma informação fundamental para a tomada de decisões.

O software IDEAGRI é desenvolvido com base na documentação técnica adequada.

Clique aquie saiba mais sobre o software.

Vejam alguns exemplos de condutas e processos inadequados:

Não existem requisitos ou documentação.

Geralmente desenvolvedores não fazem a tarefa de casa levantando os requisitos de software, já começam a escrever o código conforme é pedido. Ou, pior, não fazem as documentações necessárias de análise antes do desenvolvimento de um software. Isso causa diversos problemas:

  • Quando o desenvolvedor desconhece os requisitos, ele provavelmente voltará a reescrever um código que já foi escrito, pela falta de análise, desordem, descaso por não levantar os requisitos.
  • Às vezes pode até haver requisitos, mas numa equipe cada desenvolvedor pode interpretar os requisitos de uma forma diferente.
  • Requisitos mal levantados ou mal escritos por falta de conhecimento ou experiência.
  • Falta de uma documentação do software.
  • Documentação mal elaborada.

Quando há a falta de documentação o serviço de software fica complicado em diversos sentidos: há uma grande dificuldade de encontrar mão de obra especializada, e quando encontram, devido à falta de documentação, os contratados levam meses para conhecer o software da empresa, afinal, o conhecimento está na cabeça de alguns; é difícil fazer teste de software para garantir um menor risco de erros; o desenvolvimento de software é comprometido aumentando as chances de erros do software. Estes são apenas alguns exemplos.

Não existe a fase de projeto de software

Simplesmente levantam-se rapidamente os requisitos e inicia o desenvolvimento, sem uma analise e projeto. Isso leva a falta de documentação e inicio de vários problemas de, no futuro, ter que reescrever códigos com erro, além de dificultar para a equipe de testes a análise do software.

Controle de mudanças e de versões inadequadas (ou inexistentes)

Não há um controle do que foi mudado, um muda o banco de dados sem comunicar e interferem outros módulos do software.

Não há uso de controle de versões. O que é um erro. Há diversas ferramentas que fazem este controle, como o CVS.

Foco na entrega

Muitos pensam em entregar o mais rápido o software, sem se preocupar com a qualidade. Isso faz o software voltar com diversos erros encontrados, muitas vezes pelos clientes, o que é péssimo. É melhor colocar um prazo real e entregar com qualidade, que correr para entregar rápido. Há empresas que eliminam a análise de documentação do projeto em nome de "produtividade", mas esta suposta "produtividade" é apenas ilusória.

Inexistência de um time de testes

Geralmente quem faz os testes são os desenvolvedores. Isso é um erro. Eles seguem uma lógica que é diferente da lógica de usuários finais. Ou quando tem uma equipe de testes, é a secretária, o office-boy, ou outros funcionários da empresa que não fazem um teste correto. Ou a falta de ferramentas de automação de testes. Ou o teste é realizado pelos próprios clientes, o que é pior.

Time de testes focado em testes superficiais

Quando há, como foi citado no item anterior, não utilizam ferramentas de automação de testes, de ferramentas de gestão de testes, de gestão de defeitos, etc. Fazem aquele teste de usuário, mesmo assim superficial, não fazem teste do banco de dados, do desempenho do sistema, de análise do código, não catalogam os defeitos em níveis de defeitos, não criam regras de mensagens de erros para ajudar ao usuário a contornar os possíveis erros, etc. Hoje montar uma equipe de testes é importante, se estuda muito teste de software, são raros os profissionais especializados e são muito bem remunerados.

Desenvolvimento reativo

O desenvolvimento é focado na correção de erros, ao invés da evolução do software ou novas soluções. Isso devido aos fatores já mencionados.

Conclusão

É preciso mudar a mentalidade e cultura de desenvolvedores e empresas de software para aumentar não apenas a qualidade de software, mas a rentabilidade das empresas de software em geral. Um grande desafio, uma vez que as faculdades, universidades e cursos técnicos formam desenvolvedores com esta mentalidade e cultura atrasados no mundo de hoje.

Os profissionais e empresas de software deveriam investir em treinamentos de análise, documentação e orientação a objetos, além de testes de software e, incentivar os funcionários a adotarem a risco estas metodologias de análise, desenvolvimento e testes de software. Só assim poderemos melhorar o cenário do mercado de software nacional, podendo inclusiver competir com o mercado internacional.