Caixa Mágica Team ·
Um orçamento de desenvolvimento termina na entrega. A vida do sistema não. O custo de manutenção de software também não.
É por isso que a visão a um ano do custo de manutenção de software engana tanto. Um sistema que custa 80.000 € a construir e parece acessível no primeiro ano transforma-se num compromisso de 200.000 € ou mais ao longo da sua vida útil. Esse número existe quer alguém o tenha orçamentado quer não. A decisão que mais o influencia não é a taxa horária nem a tecnologia. É quem fica com o conhecimento no dia da entrega.
| Valor | O que significa |
|---|---|
| 15–20% | Do custo de construção, por ano, em manutenção. Algumas fontes indicam 10 a 20 por cento |
| 200–1.500 € | Por mês em alojamento e infraestrutura, consoante a dimensão do sistema |
| 150–200 mil € | Dez anos de manutenção numa construção de 100.000 €, antes de qualquer funcionalidade nova |
| 1,5–2× | Quanto custa a manutenção face à construção original ao longo de uma década |
Em que é gasto o custo de manutenção de software?
O custo de manutenção de software divide-se por quatro tipos de trabalho, distinguidos na ISO/IEC 14764 e com comportamentos muito diferentes na prática. A manutenção corretiva é a que todos orçamentam. A manutenção adaptativa é a que rebenta os orçamentos.
| Tipo | O que cobre | Na prática |
|---|---|---|
| Corretiva | Corrigir o que aparece | Defeitos que surgem com uso real. Não é previsível, concentra-se nos primeiros meses e depois estabiliza. |
| Adaptativa | Acompanhar o exterior | Sistemas operativos, dependências, integrações, legislação. Chega de fora, sem aviso e ao ritmo de outra pessoa. |
| Perfectiva | Melhorar o que existe | Desempenho, usabilidade, pequenos ajustes. A única que pode de facto adiar. |
| Preventiva | Reduzir a dívida antes de custar | Previsível, e a primeira a ser cortada, porque é a única sem sintoma visível. |
O que é que realmente força mudanças?
Vale a pena ver com exemplos concretos em vez de categorias abstratas. Os dois que se seguem vêm de trabalho que fazemos e podem ser verificados publicamente.
Muda uma geração de hardware. Portugal começou a emitir o Cartão de Cidadão v2 em junho de 2024, redesenhado para cumprir as normas de segurança e de formato do Regulamento (UE) 2019/1157. O cartão v2 usa chaves ECDSA onde o v1 usava RSA, e suporta leitura sem contacto. Qualquer integração construída antes de meados de 2024 e não tocada desde então está a funcionar com pressupostos que o cartão já não cumpre. Nenhuma linha do código do cliente mudou. O contexto mudou.
Uma distribuição atualiza uma dependência. Nas distribuições que trazem o pcsc-lite 2.3.0, como o Ubuntu 24.10 e o Fedora 41, passou a ser necessário um pacote flatpak específico para o middleware funcionar. Uma decisão tomada a montante, por quem mantém uma distribuição Linux, e um custo real para qualquer pessoa que tenha esse software em produção.
Estes dois casos ilustram o padrão geral. A manutenção adaptativa não é desencadeada por si. É desencadeada por fabricantes de hardware, por quem mantém sistemas operativos, por reguladores e por parceiros de integração.
O que faz o custo de manutenção de software subir ou descer?
Seis fatores mexem no custo de manutenção de software, ordenados pelo impacto ao longo de uma década. O primeiro é dominante e o menos discutido.
-
1Quem fica com o conhecimento. Se a equipa que construiu o sistema se dispersar na entrega, o primeiro ano de manutenção é gasto a redescobrir decisões. A continuidade é mais barata do que a documentação, e a documentação é muito mais barata do que a arqueologia.
-
2Número de integrações. Cada sistema de terceiros é uma superfície de mudança fora do seu controlo. As integrações acrescentam 20 a 30 por cento à construção inicial e continuam a cobrar durante toda a vida do sistema.
-
3Escolhas tecnológicas. Não moderno contra antigo, mas suportado contra abandonado. Uma tecnologia aborrecida com dez anos de suporte garantido custa menos a manter do que uma framework entusiasmante cujos responsáveis seguem para outra coisa no terceiro ano.
-
4Cobertura de testes. Um sistema com testes pode ser alterado com confiança. Um sistema sem testes exige verificação manual de cada alteração, todas as vezes, para sempre. É aqui que se decide o número a dez anos, e é a linha que mais vezes é cortada do orçamento de construção.
-
5Requisitos de conformidade. Os setores regulados acrescentam evidência, auditorias e retenção. É um custo real e previsível, o que é preferível a um custo real e imprevisível.
-
6Dimensão da base de utilizadores. Mais utilizadores significa mais casos-limite encontrados, mais suporte e mais pressão sobre o desempenho.
Quando é que reescrever sai mais barato do que manter?
Há um ponto em que manter deixa de fazer sentido, e chega mais tarde do que a maioria das equipas de engenharia gostaria. Uma reescrita justifica-se quando a tecnologia perdeu o suporte de segurança sem caminho de atualização, quando cada alteração parte sistematicamente três coisas noutro sítio, quando ninguém na organização percebe partes significativas do sistema ou quando a manutenção anual se aproxima do custo de o construir de novo.
Há três más razões que aparecem muito mais vezes. A tecnologia é antiga, mas antigo e a funcionar é um ativo e não um problema. A equipa atual preferia trabalhar noutra coisa, o que é uma questão de gestão e não de arquitetura. E é mais fácil conseguir orçamento para um projeto novo do que para manutenção, o que é verdade, e é assim que as organizações acabam a reescrever sistemas que funcionavam.
Uma reescrita põe o relógio a zero: um novo custo de construção, uma nova vaga de defeitos iniciais e os mesmos 15 a 20 por cento por ano a partir daí. Só compensa quando a fatura de manutenção é de facto pior.
A prova que é difícil de ter
A maioria das empresas de software não consegue mostrar o que acontece a um sistema ao fim de dez anos, porque não estava lá. Trabalhamos há mais de uma década no middleware nacional português de identidade digital, incluindo o Cartão de Cidadão e o respetivo software. Nesse período, o middleware absorveu uma mudança de geração do cartão com um algoritmo criptográfico diferente, a introdução da leitura sem contacto, várias versões da regulamentação europeia aplicável e alterações de dependências ao nível das distribuições Linux.
Nenhuma destas mudanças foi pedida por um cliente. Todas tiveram de ser absorvidas para o sistema continuar a funcionar. É isso que é a manutenção, e é por isso que a percentagem anual não é uma taxa de serviço: é o preço de o sistema continuar a existir num mundo que não fica parado.
Como orçamentar o custo de manutenção de software?
O que deve cobrir um contrato de manutenção de software?
Os quatro tipos de trabalho, cada um nomeado. Um contrato que diz apenas "manutenção" costuma cobrir o trabalho corretivo e deixar o adaptativo para negociar caso a caso. É aí que o custo de manutenção de software se torna imprevisível.
Para além do âmbito, há três cláusulas que importam mais. Tempos de resposta por gravidade, para que uma falha em produção e um problema estético não sejam tratados da mesma forma. Responsabilidade pelas dependências e pelas mudanças de plataforma, para ficar claro quem age quando um sistema operativo ou uma biblioteca muda. Transferência de conhecimento à saída, para que o sistema possa passar para outra equipa sem começar do zero.
Um relatório mensal ou trimestral do que foi feito, por tipo de trabalho, fecha o ciclo. Mostra se o trabalho preventivo está a acontecer ou apenas a ser prometido.


