Porque 70% dos projetos de software atrasam
Que tema! E mais perigoso eu (em que trabalha em uma Software Factory) falar sobre. Vou cuidar meus jabás com a UBI hehehe
Bom, este artigo pode começar com um pouco de experiência da própria empresa que trabalho. Fizemos uma avaliação para os primeiros projetos que desenvolvemos e adivinhem o percentual de atrasos? Acima de 70%...
Claro que sabemos que os primeiros anos de vida de uma empresa é pura emoção e aprendizado, mas também precisamos não deixar isto como uma desculpa para errar constantemente com os clientes e parceiros. E foi com este mindset que semanalmente olhamos para nossos processos e serviços e vemos onde podemos melhorar. Com estes "olhos" mais críticos, somadas as diversas interações que fizemos com clientes, parceiros e empresas do mesmo seguimento, conseguimos avaliar 3 principais fatores que geram o atraso de entrega dos projetos de software. São eles:
- Comunicação: o que resume uma comunicação imersiva com o cliente para compreender a demanda real
- Transparência: apresentar claramente para o cliente o modelo de trabalho, esforço e as condições para que a parceria funcione
- Processos: um modelo de trabalho que possibilita interações claras e objetivas
Eu lendo isto parece que não falei nada com nada né? Mas eu vou dar um exemplo mais real para que a gente saiba exatamente onde isto acontece. Vamos ao exemplo ruim.
Suponhamos que eu queira fazer um portal institucional para minha empresa com algumas funcionalidades de interação mais sofisticadas (aplicação de currículos, área de login do cliente para acompanhar o projeto, possibilitar a alimentação de portfólio com vídeos e descritivo, alteração da descrição da empresa e etc...) e contrato uma empresa que trabalha com desenvolvimento de software web sob demanda. Em duas reuniões de no máximo 2 horas eu já fico pressionando esta empresa para me dar um orçamento, pois se não eu vou para outra que me entrega isto.
Exatamente aí que começa o problema! Como a empresa vai me passar um orçamento com apenas duas interações comigo? Eu mal expliquei para ela o que eu queria. Falei muito do meu modelo de negócio, mas pouco aprofundei as funcionalidades que eu gostaria no portal.
A empresa, pressionada para fazer uma venda, força sua equipe técnica a estimar a demanda com uma profundidade baixa de requisitos para desenvolver o portal. E na hora de apresentar para o comercial o escopo, ele terá pouco poder de argumento também para defender a proposta, pois ele possui um escopo superficial da demanda. E o que ele faz? Joga coeficiente para garantir possíveis funções não previstas ou simplesmente se arrisca com as horas que a equipe técnica passou.
Houve comunicação, transparência e processos nesta abordagem comercial? Houve uma comunicação superficial para entendimento da demanda, faltou transparência em apresentar a estimativa real da demanda e o processo para entendimento da demanda foi superficial e flexível.
Caso, eu venha fechar com esta empresa e começar a desenvolver, adivinha o que acontece? Na hora que eu começar a abrir as funcionalidades que eu quero, vai ser uma surpresa e estresse para os dois lados. Porque vai ter muitas destas que o entendimento foi muito superficial e o esforço necessário será muito maior que o previsto. Um exemplo simples pode ser visto por uma tela de login, em que na hora de fazer o layout e definir melhor as regras de negócio, eu vou falar que quero login social, recuperação de senha e aplicação forçada de caractere especial. Será que uma empresa de projetos de software conseguirá definir este nível de profundidade em duas reuniões? Claro que não. O projeto vai atrasar e eu vou ter que queimar meu planejamento de divulgação do novo portal e a empresa contratada vai perder dinheiro, pois o tempo de desenvolvimento será maior que o previsto.
Somos "forçados" a darmos orçamentos de escopo fechado a curto prazo para algo extremamente intangível. A estimativa nunca chegará em 100% de precisão, mas existem processos e ferramentas que auxiliam nisto. E uma delas muito forte é aplicar um processo de consultoria na área de negócios, design e tecnologia antes de desenvolver o software. Isto vai possibilitar maiores interações com os especialistas na área com o cliente e possibilitar um entendimento mais profundo da necessidade.
Por que neste modelo tem comunicação, transparência e processos? Você está possibilitando uma comunicação mais intensa com seu cliente, entendendo melhor o modelo de negócios, regras de negócios que precisam estar previstas, possíveis integrações com plataformas externas e tecnologias que poderiam ser utilizadas. Na hora de apresentar um orçamento, existe transparência, pois você apresenta o esforço real da demanda, e não simplesmente algo estimado superficialmente. E por fim, estabeleceu um processo de entendimento e interações com o cliente para que a estimativa tenha maior proximidade da realidade. E na hora de desenvolver, pode somar no processo a metodologia ágil de desenvolvimento, possibilitando mais interações e comunicação com seu cliente.
Claro que o melhor modelo de trabalho para uma Software Factory é uma demanda que não seja escopo fechado e com data final da parceria, mas sabemos que nem sempre o mercado deseja consumir desta forma. O ponto de saída é quebrar o serviço em mais etapas para que o cliente possa ter mais interações e você defender de forma clara, objetiva e segura a sua proposta comercial :)
Neste artigo eu apenas apresentei uma deficiência no começo de um trabalho para desenvolvimento de software sob demanda. Existem muitas outras variáveis que precisam ser cuidadas durante a execução da tecnologia com a Metodologia Ágil de Desenvolvimento, mas este foi um primeiro passo para esclarecer o que muitas vezes o mercado não aceita. Quem contrata a construção de um prédio sem um Arquiteto e Engenheiro Civil? Será que pressionamos os Pedreiros e Mestres de Obras a darem um orçamento relâmpago? Claro que não! Por isto que para software também existem os Designers UX/UI, Analista de Negócios e Analistas de Software, para também realizarem um trabalho de estimativa com maior qualidade e assertiva na demanda do cliente.