Preços: como medimos o tamanho e o preço do software
A Mesterséges Intelligencia Központ Kft. é uma empresa de desenvolvimento de software com sede em Budapeste, na Hungria. Não definimos o preço com base em horas estimadas: medimos o tamanho funcional do software em pontos de função COSMIC (ISO/IEC 19761), e daí resultam a proposta e o calendário.
Em resumo: primeiro descrevemos em conjunto o que o software tem de fazer, depois medimos o seu tamanho, e é a partir do tamanho medido que definimos o preço e o calendário. É por isso que não indicamos um preço com base num primeiro telefonema, e é também por isso que não publicamos uma tabela de preços.
Porque é que medimos o tamanho em vez de estimar horas?
Uma estimativa em horas diz quanto trabalho espera quem estima, e isso depende da experiência, da prudência e da equipa de quem estima. Para a mesma tarefa, duas empresas podem indicar números de horas muito diferentes, e de fora não se percebe porquê, em cada caso.
O tamanho funcional, pelo contrário, é uma propriedade do próprio software: mede o que este tem de fazer, e não quem o constrói nem como. Por isso, pode ser verificado e medido de novo, e permite comparar duas propostas.
O que é um ponto de função COSMIC?
O COSMIC é um dos métodos normalizados a nível internacional para medir o tamanho funcional do software (ISO/IEC 19761). Conta quantos movimentos de dados existem nos processos funcionais do software. Há quatro tipos de movimentos de dados:
| Movimento de dados | O que significa | Exemplo |
|---|---|---|
| Entry (entrada) | chegam dados do utilizador ou de outro sistema | o cliente envia o formulário de encomenda |
| Exit (saída) | saem dados para o utilizador ou para outro sistema | o sistema envia uma confirmação |
| Read (leitura) | o software lê dados guardados | carrega as encomendas anteriores do cliente |
| Write (escrita) | o software guarda dados | grava a nova encomenda |
Cada movimento de dados vale 1 ponto de função COSMIC (CFP), e o tamanho do software é a soma de todos eles. Um processo simplificado de «registo de uma encomenda», por exemplo, é composto por uma entrada, uma leitura, uma escrita e uma saída, ou seja, 4 CFP. A medição é independente da linguagem de programação, da tecnologia e da equipa que trabalha no projeto. O nosso artigo O que é um ponto de função COSMIC, e em que difere da estimativa em horas? apresenta o método com um exemplo prático, juntamente com os seus limites.
Como é que o tamanho se torna uma proposta e um calendário?
- Especificação: descrevemos em conjunto, item a item, as funções, os intervenientes e os dados (ver Como trabalhamos).
- Medição: um fluxo de trabalho próprio, assistido por inteligência artificial, mede os grupos de funções com várias contagens independentes entre si, e uma ronda de conciliação garante que cada processo conta exatamente uma vez.
- Revisão: revemos a medição e esclarecemos os pontos incertos.
- Proposta: o preço resulta do tamanho medido, complementado com aquilo que o tamanho funcional não exprime (ver abaixo).
- Calendário: vemos o tamanho também por grupo de funções, e por isso baseamos nele as etapas, a ordem e os prazos.
Se surgir uma nova necessidade pelo caminho, também a medimos da mesma forma, para que se veja sempre quanto muda o âmbito e o que isso significa para o preço e para o calendário.
O que mais influencia o custo?
O tamanho funcional mede o que o software faz, mas não tudo aquilo que dá trabalho. A medição assinala à parte os fatores seguintes, para que também não fiquem escondidos na proposta:
- Integrações: a quantos sistemas externos é preciso ligar e quão bem documentadas estão as suas interfaces.
- Requisitos não funcionais: desempenho, disponibilidade, segurança dos dados, acessibilidade.
- Interface e gráficos personalizados: o design feito à medida e os elementos visuais exclusivos.
- Várias plataformas: quando é preciso a mesma coisa em versão web, iOS e Android.
- Migração de dados: a passagem dos dados do sistema antigo para o novo.
- Cálculo complexo e funcionamento em tempo real: algoritmos, fluxos de dados ao vivo.
A operação após a entrega é uma rubrica à parte: o funcionamento, a manutenção e a evolução e, nas funcionalidades de IA, a tarifa dos modelos de linguagem, que depende da utilização. Falamos disso também nas perguntas abaixo.
Porque é que duas propostas se tornam assim comparáveis?
Se duas propostas partirem da mesma especificação e do mesmo tamanho medido, dizem respeito ao mesmo âmbito: vê-se quanto pede cada uma das empresas pela mesma coisa e o que cobra à parte. Os números de horas não podem ser comparados desta forma, porque as horas não são uma propriedade do software. O COSMIC é um método público e normalizado, por isso também outros podem verificar a nossa medição. Vale a pena perguntar também aos outros proponentes para que âmbito apresentaram o seu preço.
Perguntas frequentes
Porque é que não indicam um preço por telefone?
Não indicamos um preço por telefone porque o preço do software depende daquilo que tem de fazer, e isso não se pode medir de forma responsável numa chamada curta. A primeira consulta é gratuita: depois, descrevemos em conjunto as necessidades, medimos o tamanho e, a partir dele, apresentamos uma proposta. Pode pedir uma marcação na página Contacto.
O que torna um desenvolvimento mais caro?
Um desenvolvimento fica mais caro sobretudo quando inclui mais funções, ou seja, mais movimentos de dados. Além disso, os fatores acima também o podem encarecer: integrações numerosas ou mal documentadas, requisitos rigorosos de desempenho e de segurança, gráficos personalizados, várias plataformas ou a migração de muitos dados.
Quanto custa a operação?
O valor da operação depende daquilo que inclui: o alojamento e o funcionamento, as atualizações, a correção de erros, a evolução e, nas funcionalidades de IA, a tarifa dos modelos de linguagem, que depende da utilização. Adaptamos o âmbito da operação ao sistema concreto; os desenvolvimentos seguintes são medidos da mesma forma que o primeiro. Respondemos a outras perguntas na página Perguntas frequentes.