um sisteminha de gerenciamento: - 7 módulos/páginas - cada uma com um CRUD básico… - Listagem de coisas cadastradas - Inserção de novos elementos - Busca por elementos, usando vários critérios de busca - um sistema de gerenciamento de usuários com 3 perfis diferentes - interface simles (uso interno), com AJAXDada esta breve descrição, ele me pergunta quanto eu cobraria. Depois de pensar um pouco, dei minha estimativa (não vou citar valores, mas é um valor módico – o sistem parece ser bem simples…). Qual não foi minha surpresa, quando ele diz que tinha feito um levantamento com outras pessoas, e estas chegavam a cobrar 10 vezes o valor que eu havia sugerido.
Daí quis saber o porque de se cobrar tanto por algo tão simples, e ele me disse que era porque poderiam surgir picuinhas, que interface de usuário é algo cheio de detalhes, que especificações podem mudar …
Refletindo um pouco sobre estes motivos, percebi que todas as afirmações eram verdadeiras. No entanto, usar estas razões para precificar o desenvolvimento de um software não parece razoável. De acordo com minha experiência, todo software tem picuinhas, toda interface vai ter inúmero detalhes, as especificações sempre mudam. O que fazer então? Tentar esmiuçar cada detalhe do software, validar cada interface do sistema, exercitar todas as possibilidades de uso do sistema? Com isto, você com certeza vai inchar o seu produto de tal forma que a quantidade de recursos demandados realmente justificaria um preço elevado. E isto também resultaria em um prazo maior para a entrega do produto.
Qualquer um consegue ver que isto não é nada positivo: qual o cliente que quer contratar o desenvolvimento de um software que será caro, e irá demorar para ser entregue? Com certeza nenhum …
Qual é portanto a melhor alternativa? Simplifique, seja ágil (gosto cada vez mais dessa palavra). Surpreenda seu cliente desenvolvendo uma solução que atenda suas necessidades de forma satisfatória rapidamente. Isso irá resultar em um produto de menor custo entregue num curto espaço de tempo. Quando o cliente for usar seu produto terá grande parte de suas necessidades atendidas, mas com certeza encontrará um caso específico que não está contemplado, não irá gostar de alguma coisa da interface … nestes casos ele pode contratá-lo novamente para resolver estes problemas, que certamente serão resolvidos de forma muito rápida, uma vez que ele saberá dizer exatamente o que há de errado com o produto que você desenvolveu.
Da forma que vejo, no final das contas, em ambos os modelos você chegará a um mesmo produto, com a mesma qualidade e as mesmas funcionalidades. No entanto, na forma ágil, este resultado será obtido muito mais rapidamente, e com um custo bem menor. Bom para o cliente, e bom para os desenvolvedores.
Powered by ScribeFire.