Você já ouviu falar na síndrome dos 99%? Quando o desenvolvimento de software já está na fase final, mas sempre surgem problemas e a data da entrega parece cada vez mais distante? Esta é uma situação terrível – e mais comum do que se imagina – que, em certos casos, chega a virar um projeto inacabado, abandonado pelos programadores.

Claramente, não é o que você espera, ao contratar seu fornecedor, por isso gravamos um vídeo com algumas orientações importantes para ajudá-lo a se prevenir. Confira!

O que leva um projeto inacabado ao abandono?

Primeiro, ressaltamos que ninguém começa um projeto com a intenção de não finalizá-lo! Você, cliente, busca um fornecedor que lhe entregue um software finalizado e funcionando adequadamente; e o próprio fornecedor também se propõe a desenvolvê-lo por completo. 

Existem exceções, é verdade, mas, considerando a boa fé dos envolvidos, as pessoas não planejam um projeto inacabado! Então por que existem tantos relatos dessa espécie? Simples: porque a maioria dos fornecedores desenvolve o software com uma única entrega real, deixando os testes de funcionalidades para o final do projeto.

Dessa forma, o cliente (e o próprio fornecedor) só vê o software em funcionamento depois de meses de trabalho, quando já está quase todo estruturado. Então, se surgem bugs (porque é na hora de utilizar a ferramenta que eles aparecem), o projeto já está avançado demais para sofrer mudanças. Assim, a equipe começa a buscar soluções paliativas, que acabam gerando outros problemas e formando um círculo vicioso de projeto inacabado!

Logo, os desenvolvedores percebem a impossibilidade de corrigir as falhas sem reconstruir o software, começam a se esquivar das cobranças do cliente e… somem! Abandonam o projeto! Terrível, não?

Como garantir que o fornecedor entregará o prometido?

Quanto maior o projeto, maiores as chances de surgirem problemas, devido aos níveis de complexidade e de acoplamento do sistema. 

Entende-se por complexidade, o grau de dificuldade de programar neste software em virtude da quantidade de código que precisa ser escrito para alcançar seu objetivo. Já o acoplamento, é a ligação entre certas partes do software, que provoca alterações em áreas que não foram mexidas, quando o programador faz algum ajuste em determinada parte a elas atreladas.

O ideal é reduzir ao máximo a complexidade e o acoplamento do software, no entanto, nem sempre isso é possível. Por este motivo, recomendamos dividir o projeto em pequenas partes inteiras para diminuir riscos e problemas ao fazer ajustes.

Portanto, em vez de aprovar layouts e protótipos estáticos por meses, antes de ver o sistema funcionando, sugerimos desmembrar o software em várias partes inteiras. Assim, as entregas intermediárias do projeto passarão a ser da “coisa real”, do software programado de verdade em áreas específicas de seu sistema.Consequentemente, os bugs que eventualmente surgirem, serão percebidos já nas pequenas entregas e poderão ser corrigidos com mais facilidade e agilidade.

Além disso, a comunicação entre cliente e equipe de desenvolvimento precisa ser fluida e contínua, durante todo o projeto. Até porque, é natural surgirem dúvidas e insights de ambas as partes, que interferem nas decisões relacionadas à construção do software. Por isso, é fundamental o contato direto entre programadores e cliente, para esclarecimento dessas dúvidas e alinhamento de expectativas enquanto há tempo para mudanças estruturais!

É possível salvar um projeto inacabado?

Depende! Um projeto inacabado e abandonado pelos desenvolvedores, certamente alcançou um estágio de problemas insustentável até para seus criadores. Ou seja, tem tantos bugs que, quando mexidos, geram outros bugs, que às vezes nem vale a pena tentar consertar. 

Por outro lado, pode haver partes do software que não estão acopladas àquelas que estão apresentando falhas e que, portanto, não precisam ser alteradas/corrigidas. Neste caso, convém avaliar o custo-benefício de corrigir as partes com problemas para não perder o investimento já feito ou começar tudo de novo.

Então, quando você for contratar um novo fornecedor, tenha bastante cuidado para não terminar novamente com o projeto inacabado! Prefira sempre fornecedores que tenham experiência comprovada, que priorizem a qualidade do código e testes automatizados e que dividam o projeto em pequenas entregas

Se precisar de ajuda, entre em contato com a nossa equipe!

Por Joana Kerr