Como CTO de uma pequena empresa de desenvolvimento de software que cria soluções personalizadas de IoT, ajudo meus colegas de equipe a avaliar os custos de desenvolvimento de aplicativos ao preparar estimativas de projetos para nossos clientes em potencial.
Como trabalhamos principalmente com startups, nossos clientes são muito sensíveis a seus orçamentos.
Idealmente, você inicia cada projeto de desenvolvimento de software com uma fase de descoberta e mergulha nos requisitos funcionais e não funcionais de um produto desde o início. Como resultado, você pode definir o conjunto de recursos do produto, desde protótipos funcionais até um MVP e um produto completo, e chegar a uma estimativa precisa e realista.
Idealmente, mas esse não é o caso de startups que operam com pouco dinheiro, já que a descoberta também custa dinheiro.*
Alguns de nossos clientes também podem ter expectativas irrealistas em relação ao preço do desenvolvimento de uma solução de tecnologia. Todos nós já ouvimos piadas sobre startups que procuram construir um clone do Facebook por US$ 10 mil – e a parte mais triste é que algumas pessoas acham que isso é possível.
Portanto, eu estava brincando com a ideia de minimizar o trabalho de avaliação do nosso lado, ao mesmo tempo em que oferecia aos clientes um preço aproximado para dar vida à sua ideia de tecnologia antes mesmo de entrarem em contato com minha equipe. Uma verificação da realidade, se desejar. 🙂
Foi assim que o conceito de calculadora de custos de software se formou na minha cabeça .
Um geek de coração e um desenvolvedor móvel por profissão, decidi matar dois coelhos com uma cajadada só. Além dos objetivos mencionados acima, também coloquei meus conhecimentos de Flutter à prova. Desenvolvi um aplicativo de cálculo de custo de software de plataforma cruzada que funciona perfeitamente em dispositivos iOS e Android e em navegadores sem recorrer a JavaScript, o que, em sua forma pura, me deixa arrepiado.
O Flutter provou ser estável e eficiente o suficiente para essa tarefa. Estou até pensando em construir uma calculadora física baseada em um computador de placa única como presente de Natal para nossos fiéis clientes. Além disso, outros desenvolvedores podem usar a calculadora para avaliar o preço do desenvolvimento de uma solução de tecnologia específica (ou parte dela!) fora de sua especialidade.
De qualquer forma, neste artigo, detalho minha experiência criando a solução — e os desafios que encontrei no caminho.
Aqui vamos nos.
Ok, ok, eu sei o que você está pensando.
*Engenharia de uma solução de software, seja uma pequena loja online ou um completo
sistema de back-office para orquestrar unidades de crioterapia , é uma estrada longa e ventosa com centenas de curvas possíveis e armadilhas a serem evitadas.*
E, a menos que você tenha preparado um documento exaustivo de especificação de requisitos de software (SRS) listando o conjunto de recursos do produto, requisitos de UI/UX, pilha de tecnologia ideal, público-alvo, provisões de conformidade e uma dúzia de outras questões, é impossível colocar um preço em sua aplicação.
Essas eram exatamente as minhas preocupações. Então, decidi verificar como outros engenheiros de software abordaram o problema de precisão de estimativa antes de mim.
Tendo testado várias calculadoras de custo de software, identifiquei vários problemas a serem lembrados ao criar minha solução:
As calculadoras dos concorrentes ignoram completamente as necessidades de um usuário não técnico. Por exemplo, como diabos devo saber quais linguagens de programação meu aplicativo usará se eu for novo em programação? Para lidar com esse problema, fiz questão de escrever um guia detalhado sobre como usar minha calculadora na página de destino que o acompanha.
Algumas soluções estimam o preço de montar uma equipe de software em vez de construir um produto de software. A menos que você tenha trabalhado com empresas de engenharia de software antes ou dirigido uma você mesmo, provavelmente não conhece as entranhas do desenvolvimento de software, incluindo a composição ideal de uma equipe de software e as funções dentro dela. É por isso que me concentrei nos recursos do software em vez das responsabilidades do desenvolvedor e implementei o modificador de taxa combinada para simplificar os cálculos.
A maioria das calculadoras fornece apenas uma estimativa em troca de um endereço de e-mail comercial. Sou um engenheiro de software, não um profissional de marketing. 🙂 Quero resolver os problemas das empresas ao invés de bombardeá-las com e-mails promovendo nossos serviços; se precisarem de ajuda, eles nos escreverão de qualquer maneira! É por isso que minha calculadora não coleta nenhum dado — e não exige que você preencha nenhum formulário antes de obter sua estimativa. Sabemos apenas que alguém chegou à página inicial da calculadora de custo de software, marcou todas as caixas e recebeu uma estimativa.
Minha calculadora considera a plataforma de destino de um aplicativo e os recursos esperados para produzir estimativas de custo de software precisas. Em seguida, vários modificadores são implementados para reduzir ou aumentar o preço do software personalizado com base no estágio do projeto e nas implicações específicas do setor. Na etapa final, os esforços de desenvolvimento de software, estimados em horas-homem, são multiplicados pela taxa combinada da equipe de TI.
Para elaborar o mecanismo de avaliação, estudei mais de 20 projetos que minha empresa concluiu e uma dúzia de projetos dos portfólios de nossos parceiros. Esses projetos variavam em tamanho e complexidade, desde aplicativos de reserva de eventos até soluções domésticas inteligentes personalizadas. Algumas tecnologias e soluções, como inteligência artificial e AR/VR, estão deliberadamente ausentes da calculadora porque raramente crio esses aplicativos. Assim, a calculadora reflete o conhecimento básico da minha empresa e posso atestar a precisão de suas estimativas.
Modificadores. Indústrias e recursos de software têm multiplicadores de dificuldade. Por exemplo, aumentei a contagem de horas em 20% para projetos de TI de assistência médica para abordar possíveis problemas de desenvolvimento, como integrações com sistemas médicos existentes, conformidade etc. Para calcular os modificadores de complexidade, dividi a soma dos recursos do software pelo total de horas contar. Um modificador constante adiciona números de gerenciamento de projeto e garantia de qualidade à estimativa. Quando os recursos de um aplicativo e as plataformas pretendidas são avaliados, o número é multiplicado por 1,3, aumentando a contagem de horas em 30%. Por fim, existe o modificador de estágio do projeto, que avalia o custo de desenvolvimento do software com base na prontidão do produto. Se um usuário deseja apenas projetar a interface do aplicativo, a estimativa final é multiplicada por 0,16. Para protótipos funcionais, o modificador é 0,25. A versão do produto mínimo viável (MVP) de uma solução de software contendo apenas recursos suficientes para ir ao mercado tem um modificador de 0,5-0,75. Por fim, os esforços de desenvolvimento em horas-homem são multiplicados por 1 para produtos prontos para o mercado.
Taxas por hora do desenvolvedor. O preço de construir uma solução de software personalizada depende de quem a está fazendo. As taxas horárias do engenheiro de software diferem muito, dependendo da especialização, experiência e país de residência de uma pessoa. De acordo com
Abaixo você encontrará uma fórmula que resume os fatores mencionados acima para produzir uma estimativa:
Se um recurso não estiver relacionado a dispositivos móveis e não exigir implementação em várias plataformas, ele será marcado como featurePrice.
avgFeatureComplexityMult aumenta a estimativa com base na pilha de tecnologia de um projeto e no setor de destino.
productStageMultiplier denota o estágio desejado do produto — ou seja, consentimentos de design, um protótipo, MVP ou solução pronta para o mercado.
As horas de PM/QA são obrigatórias para todos os projetos, a menos que o cliente lide com a parte de gerenciamento e garantia de qualidade. Nesse caso, porém, nenhum desenvolvedor pode garantir que os bugs não se manifestarão no código. Um pequeno esclarecimento aqui: algumas empresas esperam que seu fornecedor produza código livre de bugs na primeira tentativa e se perguntam genuinamente por que precisam de garantia de qualidade.
Clientes maduros, ao contrário, têm expectativas adequadas em relação à qualidade do código de teste e investem cedo em QA para evitar lidar com bugs pós-lançamento.
A questão é: quão precisas são essas estimativas?
Considerando minha experiência como CTO e desenvolvedor Android sênior, a calculadora de custo de software fornece estimativas pontuais para todos os projetos simples e projetos de média complexidade.
Para empreendimentos mais desafiadores envolvendo tecnologias inovadoras, como a Internet das Coisas, a calculadora pode reduzir a estimativa final em 10-13%. Nesses casos, revisamos o preço depois de decidir sobre a pilha de tecnologia e o conjunto de recursos da solução. As revisões também são necessárias se o seu sistema de TI incorporar recursos e tecnologias omitidos da calculadora, como inteligência artificial e integrações com serviços de terceiros.
Um visitante do site é obrigado a preencher as informações sobre as seguintes características de um aplicativo:
Viva, nós conseguimos!
Agora que o usuário tem uma estimativa aproximada, ele pode ajustá-la excluindo ou adicionando recursos de software manualmente, especificando o estágio do produto etc.
Enquanto escrevia este artigo, também preenchi o formulário, selecionando as características de um produto personalizado de IoT médico compatível com HIPAA pronto para ser lançado no mercado. A calculadora me deu uma estimativa de 3.390,4 pessoas-hora, ou US$ 140.992 se multiplicado pela taxa de equipe combinada (US$ 41,6).
Vamos aumentar a estimativa em 10%, considerando possíveis discrepâncias enraizadas no tipo de projeto ( IoT ) e no setor de destino (saúde), e obteremos US$ 150.000.
O pacote de software da câmara criogênica que mencionei no início do artigo ajuda nosso cliente a gerenciar unidades criogênicas conectadas instaladas em dezenas de academias e salões de spa nos EUA. Enquanto o projeto ainda está em desenvolvimento e
No geral, estou satisfeito com o resultado: testei o Flutter com sucesso, me assegurando de seus robustos recursos de desenvolvimento de plataforma cruzada, minimizei o trabalho de avaliação da parte de minha equipe e permiti que nossos clientes em potencial obtivessem estimativas aproximadas realistas de seus projetos de software antes entrando em contato com uma empresa de engenharia de software.
Mas como posso ter todo tipo de viés — afinal, fui eu quem escreveu o código! — Eu encorajo você a experimentar a calculadora e compartilhar suas ideias sobre sua funcionalidade e precisão!
Então, clique na seção de comentários abaixo! Seu feedback é muito apreciado!