Empresa internacional de transporte marítimo · dados de mercado e contratos

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