/Blog

11-Erros-no-projeto-de-software-que-devem-ser-evitados
11-Erros-no-projeto-de-software-que-devem-ser-evitados

11 Erros no projeto de software que devem ser evitados

O que você vai encontrar neste artigo:

É fato comprovado que a maioria dos projetos de software falham, causando prejuízos a empresas de todos os portes. Mas por que isso é tão comum? A resposta envolve fatores técnicos e humanos. Neste artigo, listamos as 11 principais causas que levam a erros no projeto de software e as soluções para reduzir o seu risco de ocorrência.

Antes de tudo, considere estes números:

Nada menos que 66% dos projetos de software falham.
Mais de 31% dos projetos hoje em andamento serão cancelados antes de serem concluídos.
52,7% dos projetos custarão 189% a mais que suas estimativas originais.
88% dos projetos de software no mundo ultrapassam prazo.

(Fonte: Standish Group)

Essas são estatísticas bastante preocupantes se você considerar o papel vital que os softwares desempenham na forma como trabalhamos, produzimos e vivemos. Afinal, não é só uma questão de prejudicar os negócios, pois os softwares impactam na realidade do cotidiano das pessoas.

Daí a importância de entender por que tantos projetos de software falham e buscar garantir que a mitigação de riscos faça parte do processo de planejamento. Confira a seguir os principais erros que levam ao fracasso de projetos – e como evitá-los.

Os 11 principais erros no projeto de software

Erro nº 1: Plano de projeto ruim

Assim como construir um prédio com bases fracas leva facilmente a edificação à ruína, um plano ruim é o primeiro passo para o fracasso do projeto de software. De fato, é o pior erro que um gerente de projetos pode cometer. O planejamento deve ser amplo e detalhado, cobrindo todas as etapas do projeto, como objetivo, escopo, cronograma, distribuição de tarefas, gestão de riscos, etc.

💡 Solução: Quando feito da maneira certa, um plano ajudará a equipe a manter o curso do projeto mesmo diante de mudanças e imprevistos. Um plano adequado de software deve contemplar pelo menos os seguintes itens:

  • Escopo
  • Objetivos do projeto
  • Organização de projeto
  • Organização da equipe e papéis envolvidos
  • Riscos do Projeto
  • Descrição dos riscos
  • Estratégias de redução dos riscos
  • Recursos de software e hardware
  • Descrição dos recursos
  • Custos relacionados
  • Divisão do trabalho (atividades do projeto, milestones e resultados de cada atividade)
  • Cronograma (dependência entre atividades, pessoas envolvidas, tempo para cada milestone)
  • Mecanismos de monitoramento

Erro nº 2: Diagnóstico inadequado

Todo mundo sabe que a maioria das equipes de desenvolvimento tem um prazo curto e rígido, e que não deve ser comprometido. Mas, para cumprir o prazo, os times podem deixar de lado a pesquisa sobre o cliente. A má compreensão do que ele deseja resultará em mil ajustes em um produto confuso, abaixo da média, com bugs ou até mesmo levar o projeto ao fracasso.

💡 Solução: Os desenvolvedores de software precisam entender claramente o objetivo do projeto, o que o produto resolverá e quem é o usuário real. Por isso, a melhor maneira de criar um ótimo software é envolver o cliente em todas as fases de desenvolvimento e testes.

Erro nº 3: Comunicação deficiente

A equipe precisa entender a distribuição do trabalho. Sem uma ideia clara do que precisa ser feito e por quem, o progresso do projeto é comprometido, há perda de tempo e de recursos intelectuais e financeiros.

💡 Solução: Um sistema eficiente prospera com a boa comunicação e delegação adequada de trabalho, aumenta a chance de desenvolver o projeto dentro do prazo e criar uma entrega de valor para o cliente. Aqui, é preciso determinar como será a comunicação entre os envolvidos no projeto, incluindo o cliente, e de que forma as entregas ou aceites serão realizados.

Erro nº 4: Cronogramas irrealistas

O cronograma pode se tornar um pesadelo na ausência da palavra “não” – uma das maiores razões pelas quais os projetos de software falham é porque os gerentes de projeto concordam com alterações de escopo que tornam os cronogramas infactíveis.

💡 Solução: É função do gerente de projetos ter discussões francas com o cliente e saber limitar o trabalho que será executado, levando em conta cuidadosamente os recursos disponíveis para a equipe.

Erro nº 5: Ignorar os testes do produto

Se testes inadequados provocam uma perda absurda de tempo e recursos, não fazê-los é como colocar explosivos dentro do projeto. Os testes são cruciais para encontrar defeitos, bugs, erros ou outros problemas e uma das formas mais eficientes de verificar se o produto atende aos requisitos.

💡 Solução: Executar processos de testes de software ao longo do ciclo de desenvolvimento, em prazos regulares, ajuda a identificar falhas antes que seja tarde demais, evitando danos irreversíveis no projeto.

Aqui estão os principais tipos de testes:

  • Teste de aceitação: Verifica se todo o sistema funciona como pretendido.
  • Teste de integração: Garante que os componentes ou funções do software funcionem juntos.
  • Teste de unidade: Valida se cada unidade de software funciona conforme o esperado. Uma unidade é o menor componente testável de um aplicativo.
  • Teste funcional: Verificação de funções que “simulam” cenários de negócios com base nos requisitos funcionais, como o Teste de Caixa Preta, por exemplo.
  • Teste de desempenho: Testa como o software funciona em diferentes cargas de trabalho. O teste de carga é usado para avaliar o desempenho em condições reais.
  • Teste de regressão: Verifica se novos recursos quebram ou degradam a funcionalidade. No entanto, pode-se utilizar um Teste de Sanidade* para verificar menus, funções e comandos no nível da superfície, quando não há tempo para um teste de regressão completo.

* O Teste de Sanidade é um subconjunto do Teste de Regressão.

  • Teste de estresse: Testar quanta tensão o sistema pode suportar antes de falhar.
  • Teste de usabilidade: Validar o quanto um cliente pode usar um sistema ou aplicativo da web para concluir uma tarefa satisfatoriamente.

Os testes devem ser robustos e estressantes, ou seja, imitar as condições mais extremas que seu software encontrará no ambiente de produção. Inclua também boas práticas de qualidade de desenvolvimento de software, como QA.

Leia também:
O que é e como funcionam os testes automatizados
10 ferramentas para testes automatizados de software

Erro nº 6: Não ter um checklist

Os checklists devem ser usados durante várias fases do processo de desenvolvimento do projeto. Ou melhor, cada etapa ou subetapa do projeto pode e deve ter seu próprio checklist. Porém, os desenvolvedores podem estar ocupados fazendo testes e documentações finais e ignorar itens importantes destas listas que certamente vão causar algum tipo de problema mais à frente.

Por exemplo, é possível criar checklists para:

  • Descobrir erros de função, de lógica ou de implementação para qualquer representação do software.
  • Verificar que o software atende aos requisitos especificados.
  • Garantir que o software foi representado de acordo com padrões pré-definidos.
  • Especificações de design/interface/UI.
  • Desenvolver projetos mais gerenciáveis.
  • Analisar qualidade de codificação.
  • Garantir funcionalidades, medir desempenho
  • Elencar quais problemas e defeitos os testes de software devem contemplar.

💡 Solução: As checklists devem ser aplicadas a tudo o que envolva análise, projeto, codificação e teste, com foco em aspectos e defeitos comuns de cada fase correspondente.

Erro nº 7: Estourar o prazo do projeto

A falta de tempo suficiente para cada fase do projeto pode levar à análise inadequada dos requisitos, codificação apressada, testes insuficientes e documentação incompleta. O resultado pode ser um sistema que não atende às expectativas e falha em uma ou mais áreas-chave.

No entanto, estimar o tempo necessário para realizar cada fase de um projeto é difícil e é comum ser excessivamente otimista.

💡 Solução: Definir claramente o objetivo do projeto, estabelecendo as tarefas que serão realizadas e quem vai realizá-las; alinhar as expectativas do cliente e da empresa, para que todos estejam na mesma página, e ter indicadores de gestão. É importante também adotar uma metodologia ágil, como Scrum.

Erro nº 8: Subestimar riscos

A maioria dos gerentes de projeto falha em prever riscos, o que pode levar ao descarrilamento do projeto e também aumentar os custos. Por outro lado, superestimar os riscos também levará a obstáculos no andamento do projeto. Tanto a superestimação quanto a subestimação de projetos podem ser prejudiciais.

💡 Solução: É preciso elaborar um bom plano de riscos e definir medidas alternativas que possam ser implementadas para salvar o projeto em tempos de crise.

Leia também:
Gestão de riscos em projetos de Desenvolvimento de Software

Erro nº 9: Requisitos pouco claros

A especificação de requisitos é uma etapa determinante para o sucesso de um software. É o que define os objetivos e funções que serão executadas, com a descrição do que irá ocorrer a cada ação do usuário. Uma falha nos requisitos básicos do software pode levar o processo todo ao fracasso e a problemas de usabilidade, funcionalidade e de execução, além de desperdício de tempo e dinheiro.

A análise dos requisitos também auxilia nas estimativas de prazo e de custo do projeto.

💡 Solução: Especificar os requisitos funcionais e não funcionais, descrevendo o passo a passo de cada funcionalidade, assim como suas devidas restrições, além de especificar as necessidades do cliente e as exigências do negócio.

Erro nº 10: Desvio de Escopo: o temível “Scope Creep”

O temido desvio de escopo (“scope creep”) nada mais é do que trabalho adicional que a equipe de desenvolvimento de software não esperava ou para o qual não estava preparada, causando atrasos, custos adicionais e até mesmo o total desmoronamento do projeto.

Se o escopo está sendo alterado, possivelmente o prazo ou o custo vão aumentar (quando não os dois), pois as alterações solicitadas pelos clientes sempre são para acrescentar algo, e não para excluir algo do projeto.

💡 Solução: Resistir ao aumento do escopo requer objetivos bem definidos, comunicação consistente e disposição para dizer “não” quando as demandas se tornam irrealistas e se estendem além do escopo do projeto. É imprescindível avaliar a solicitação do cliente e verificar se realmente é possível efetuar a alteração sem afetar dois pontos da tríade, que são prazo e custo, o que muitas vezes não acontece.

Erro nº 11: Estimativas erradas

Estimativas incorretas podem comprometer as entregas ao gerar um cronograma impreciso, mais custos para o projeto, horas extras para entregar no prazo acordado com o cliente, entre outros problemas.

O processo de estimativa consiste em definir o escopo do projeto, estimar o esforço e tempo necessários e, em seguida, desenvolver o cronograma, levando em consideração fatores como disponibilidade de recursos, tecnologias envolvidas, etc.

💡 Solução: Utilizar técnicas de medição de tamanho do software e de esforço através de uma metodologia e de métricas ou ainda por analogia, em que as estimativas de tamanho do projeto atual são baseadas em outras já realizadas em projetos similares. A UDS, por exemplo, tem sucesso de 100% em suas estimativas baseadas em analogia devido a 20 anos de experiência em projetos de software para empresas nacionais e internacionais.

Leia também:
Como medir o tamanho do software

Erros em softwares custam trilhões de dólares às empresas

Em 2021, o Citibank perdeu meio bilhão de dólares por causa de um sistema mal desenhado. Tudo aconteceu quando funcionários faziam pagamentos de juros a alguns credores de um cliente. 

No entanto, uma interface mal projetada do sistema os induziu a um erro caríssimo: em vez de pagar US$ 7,8 milhões de juros, os funcionários acabaram transferindo US$ 500 milhões.

Além do prejuízo financeiro, ocorreu o dano à reputação da empresa junto aos clientes e o mercado.

Uma pesquisa realizada em 2018 pela Tricentis, identificou 606 falhas em sistemas de 314 companhias, que impactaram 3,7 bilhões de pessoas e resultaram em US$ 1,7 trilhões em perdas financeiras. 

De lá para cá, esse número vem aumentando a um percentual de 14% ao ano, segundo um relatório do Consortium for Information & Software Quality (CISQ, 2020).

As repercussões de erros em softwares não são apenas financeiras: também podem causar efeitos nefastos na segurança e privacidade das pessoas, vazando dados valiosos, ou mesmo ameaçar a saúde e a vida.

Daí a importância cada vez maior de seguir boas práticas de desenvolvimento de software, não apenas para assegurar códigos de qualidade e melhor documentação, como entregar um produto final livre de problemas.

Por fim, é importante dizer que o “projeto de desenvolvimento de software ideal” não existe. Cada um tem suas próprias características, funcionalidades, usuários, bugs, base de código e outros componentes.

Não tem mágica, mas conhecer os principais erros no projeto de software contribui para o desenvolvimento consistente e sustentável e ajuda a diminuir os riscos do fracasso com seus consequentes prejuízos para todos os envolvidos.

Desenvolvimento de Software UDS.

O atributo alt desta imagem está vazio. O nome do arquivo é traco-ok.png

Gostou deste artigo? Assine nossa newsletter e receba em primeira mão conteúdos sobre tecnologia, desenvolvimento de software, inovação e muito mais.

Simone Marques

Jornalista, especialista em mídias digitais e estrategista de conteúdos de tecnologia na UDS.

Posts Relacionados

Inscreva-se no nosso blog

Receba em primeira mão os conteúdos mais quentes da área de Tecnologia.