De um sistema com UI de 2011 a um novo produto em 9 semanas
Um sistema interno de dados de mercado com 237.000 linhas, construído sobre componentes de UI com 14 anos de atraso, reescrito como um novo produto. A análise antes do código provou que 65% do sistema antigo estava morto — o cliente pagou apenas pelo que estava vivo.
- 9 semanas até um novo produto
- 65% do âmbito cortado após a análise
- 237.000 linhas de código legado analisadas
O cliente
Uma empresa internacional de transporte marítimo cujo trabalho diário depende de um sistema interno de dados de mercado e contratos — introdução de dados, consultas, importação/exportação de Excel, relatórios em PDF e relatórios por email agendados para a gestão e os parceiros.
O desafio
O sistema tinha mais de uma década: 237.000 linhas de código, uma UI construída sobre componentes de 2011 sem suporte há anos e uma base de dados de 119 tabelas com camadas de funcionalidade há muito esquecida. As licenças eram antiquadas, o alojamento estava preso a infraestrutura obsoleta e cada alteração exigia arqueologia.
O reflexo clássico seria "reescrever tudo um-para-um". Foi exatamente isso que não fizemos.
A abordagem
Reconhecimento completo antes do orçamento. Desmontámos o sistema antigo — e, mais importante, a sua base de dados em produção. Os resultados falam por si: cerca de 35% da base de dados era invisível a partir do código — um trigger escondido, procedimentos mortos sem uso desde 2016, 19 vistas que ninguém lê, tabelas sem uma única linha de código a referenciá-las.
Cortar antes de construir. A análise transformou-se numa conversa de lista de verificação com o cliente: o que disto é que realmente usam? A resposta — cerca de um terço. 65% do sistema foi cortado por acordo mútuo antes da primeira linha de código novo. O cliente não pagou para portar peso morto.
Verificar a paridade, não a intuição. Dados reais do sistema antigo foram importados para comparação linha a linha, e uma auditoria independente conferiu o sistema novo com o antigo funcionalidade a funcionalidade — as diferenças confirmadas entraram num plano, não em surpresas pós-lançamento. Duas versões intermédias passaram pelo feedback dos utilizadores reais.
Uma fundação moderna sem grilhetas antigas. O novo sistema corre em .NET 10 com componentes de UI livres de licenças, tarefas automatizadas em segundo plano, relatórios em PDF e Excel e um registo de auditoria em cada ação. O sistema antigo continuou a funcionar intocado durante toda a transição.
O resultado
- Um produto novo, com marca própria, em cerca de 9 semanas — incluindo duas rondas de feedback do cliente e uma fase final de consolidação.
- O cliente pagou por ~35% do sistema antigo — a parte viva; o resto ficou provado como morto e permaneceu no passado.
- Sem taxas de licenças de componentes de UI; um aspeto moderno que os utilizadores adotaram sem perder os seus hábitos.
- Uma análise documentada que fica com o cliente — o mapa do sistema agora existe, e a próxima alteração não começará com arqueologia.
A linha de código mais valiosa é muitas vezes a que não se escreve: um terço do preço do projeto foi poupado porque primeiro provámos o que estava morto.
Tecnologia
.NET 10 · ASP.NET Core MVC · EF Core 9 · MariaDB · Quartz.NET