Nota de confidencialidade: Por tratar de um sistema corporativo interno, este case é descrito de forma generalizada e não exibe nomes de sistemas internos, telas, endereços de infraestrutura, métricas internas ou nomes de terceiros.
Problema
O sistema corporativo de manutenção industrial sustenta o registro diário de ordens de serviço, alocação de pessoal e custos operacionais. Construído originalmente em ASP Classic e VBScript, o sistema funcionava no dia a dia, mas havia atingido um ponto de inflexão: adicionar novos módulos, manter regras de negócio acopladas a páginas legadas e garantir previsibilidade em relatórios gerenciais tornava-se cada vez mais caro e arriscado.
Ao assumir a coordenação da área, o desafio não era apenas tecnológico — era manter a operação industrial rodando sem interrupção enquanto construíamos uma base sustentável de software com uma equipe extremamente enxuta (eu + 1 desenvolvedor contratado).
Restrições
- Operação contínua: o sistema legado é usado diariamente pelas equipes operacionais e não podia ser congelado durante meses para uma reescrita completa (big-bang rewrite).
- Base de dados compartilhada: o banco SQL Server existente é o ponto de integração entre o legado e outros fluxos operacionais, exigindo compatibilidade estrita de schema e dados.
- Equipe enxuta e governança corporativa: apenas duas pessoas envolvidas diretamente no desenvolvimento, atuando dentro das normas de governança de um ambiente corporativo Microsoft 365.
- Paridade de dados: relatórios e apontamentos migrados precisavam reproduzir com exatidão os resultados do sistema legado antes de substituir qualquer tela em produção.
Decisão
Chosen
Coexistência incremental (.NET 10 + React 19 compartilhando o SQL Server do legado)
Discarded alternative
Reescrita completa em banco novo com virada única (big-bang)
A coexistência exige respeitar convenções históricas do banco durante a transição, mas elimina o risco de paralisação e entrega valor desde os primeiros módulos.
- Legado ASP Classic (em uso)
- SQL Server compartilhado
- API .NET 10 + OpenAPI
- SPA React 19 + TypeScript
- Paridade e E2E antes do release
Cada módulo novo entra em produção apenas após validação de paridade linha a linha com os relatórios legados.
- Nova arquitetura paralela por módulos: API em .NET 10 (ASP.NET Core, EF Core + Dapper) servindo uma SPA em React 19 + TypeScript, mantendo o legado ASP Classic ativo para os fluxos ainda não migrados.
- Contratos tipados ponta a ponta: geração automática de tipos TypeScript no frontend a partir da especificação OpenAPI/Swagger do backend, eliminando divergências silenciosas entre cliente e servidor.
- Critério rigoroso de aceite e paridade: cada funcionalidade ou relatório migrado só vai para produção após validação de paridade linha a linha com o legado e execução de testes funcionais automatizados.
- IA integrada ao fluxo com governança: uso de workflows assistidos por IA (specs, revisão de arquitetura e verificação determinística) para multiplicar a capacidade de entrega da equipe de duas pessoas sem abrir mão de revisão humana e controle de risco.
Resultado
- A coexistência permitiu entregar novos módulos e evoluções em .NET 10 + React 19 em produção sem interromper o uso diário do sistema legado.
- A base passou a contar com separação clara entre regras de negócio, camada de acesso a dados e interface, além de contratos tipados e suíte de testes funcionais automatizados antes de cada release.
- A área ganhou previsibilidade para priorizar demandas de negócio e manter o ritmo de migração gradual com risco controlado.
O que aprendi
- Coordenar modernização é gerir risco, não escolher framework: a decisão mais importante foi evitar o big-bang e definir limites claros de coexistência no banco de dados.
- Paridade é inegociável em sistemas de negócio: usuários confiam em números consistentes; validar equivalência com o legado evita perda de confiança na nova plataforma.
- Equipe enxuta exige disciplina de engenharia: contratos tipados, padrões documentados e automação de verificação substituem reuniões longas e reduzem retrabalho.