O documento descreve a jornada de modernização de um sistema legado de 20 anos em Perl através da estratégia de estrangulamento. O time priorizou as capacidades de negócio, identificando os domínios mais críticos e migrando-os gradualmente para novas aplicações enquanto mantinha a funcionalidade original. Eles validaram o progresso a cada etapa e observaram melhorias na qualidade, velocidade e satisfação do time.
1. Padrão de Estrangulamento
na Prática
Bárbara Sanches & Thalita Gomes
A jornada de modernização de um
legado Perl de 20 anos
2. Bárbara Sanches
Tecnologista Líder na ThoughtWorks desde 2015.
Entusiasta de métricas visando a construção de
organizações de alta performance.
Apaixonada por tecnologia desde adolescente,
também já atuou como desenvolvedora de software
e gerente de projetos.
Analista de Negócios
3. Thalita Gomes
Consultora de desenvolvimento de software sênior na
Thoughtworks eLíder técnica.
Responsável pela definição da estratégia de migração do
sistema legado, garantindo engajamento do time,
qualidade técnica e entrega de valor.
Líder Técnica
5. ● Um sistema legado de vendas
○ Parte central do negócio
○ +100 mil transações diárias
○ Monolito em Perl
○ Sem documentação
○ Poucas pessoas conheciam detalhes de implementação
● Missão dada ao time
○ Manutenção da aplicação
○ Correção de bugs já conhecidos
O Legado em Contexto
6. Modernização é Vital para Experimentação
● Legados reduzem lucros, consomem todo o orçamento
operacional e abafam a capacidade de inovar rapidamente
● O ciclo de inovação é contado em meses ou até mesmo em
anos
● Impede a competição por talentos: ninguém quer trabalhar
em um dinossauro digital
Impacto em Negócio e em Pessoas
9. Avaliação da Arquitetura
● Visões e opiniões das
Stakeholders
● Conjunto priorizado de
atributos de qualidade de
Software
● Requisitos transversais
Atributos de
Qualidade
10. Avaliação da Arquitetura
● Visões e opiniões das
Stakeholders
● Conjunto priorizado de
atributos de qualidade de
Software
● Requisitos transversais
● Plataforma
● Stack tecnológica
● Ferramentas de
desenvolvimento
● Estratégias de reutilização
Atributos de
Qualidade
Decisões
Arquiteturais
11. Avaliação da Arquitetura
● Visões e opiniões das
Stakeholders
● Conjunto priorizado de
atributos de qualidade de
Software
● Requisitos transversais
● Plataforma
● Stack tecnológica
● Ferramentas de
desenvolvimento
● Estratégias de reutilização
● Diagramas UML de Caso de Uso
● UML Componentes e Interfaces
○ Diagramas de Componentes e
Conectores
○ Diagramas de Sequência
○ Definição de Interface
● Outros Artefatos
Atributos de
Qualidade
Diagramas
Arquiteturais
Decisões
Arquiteturais
12. ● Toxicidade do código
● Reutilização de código
● Cobertura de testes
● Bugs e Vulnerabilidades
Avaliação do Código
13. Avaliação do Valor de Negócio
● Melhoria irrisória de conversão de vendas
● Valor de negócio imperceptível para o
usuário final
Valor Gerado pelo Time
<<<
Valor Investido no Time
17. Foco em Capacidades de Negócio
Entendimento
do Monolito
Identificação de
Domínios de Negócio
18. Priorizando as Capacidades de Negócio
Identificando os Atributos
Time to
Market
Reward/
Valor de negócio
Riscos (Dívidas Técnicas,
Complexidade,
Tamanho da aplicação)
Custo
19. Priorizando as Capacidades de Negócio
Identificando os Atributos
Time to
Market
Reward/
Valor de negócio
Riscos (Dívidas Técnicas,
Complexidade,
Tamanho da aplicação)
Custo
Comparando as Iniciativas
20. Priorizando as Capacidades de Negócio
Identificando os Atributos
Time to
Market
Reward/
Valor de negócio
Riscos (Dívidas Técnicas,
Complexidade,
Tamanho da aplicação)
Custo
Comparando as Iniciativas Priorizando pela Pontuação
Aplicação 1
Aplicação 2
Aplicação 3
High
Medium
Low
22. Migrando Capacidades de Negócio
* https://martinfowler.com/articles/microservices.html
Monolito Domínios de Negócio
Um monolito coloca todas as suas
funcionalidade em um só processo...
A arquitetura de microsserviços coloca
cada elemento de funcionalidade em
um serviço separado...
23. Substituição Gradual: Passo a Passo
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
24. Substituição Gradual: Passo a Passo
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
25. Substituição Gradual: Passo a Passo
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
26. Substituição Gradual: Passo a Passo
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
27. Substituição Gradual: Passo a Passo
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
28. Substituição Gradual: Passo a Passo
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
30. Validando o Progresso a cada Migração
Observar
Desacoplar
Evoluir ou Pivotar
Instrumentar
● Logs de aplicação e base de dados
● Indicadores de Performance
● Dashboards (Automáticos/Manuais)
● Alertas e Monitoramento
Continuar a construir a nova
aplicação se os resultados são
positivos ou pivotar para um
passo alternativo
Refatorar, reescrever ou substituir
a aplicação atual.
● Canary Releases
● Testes A/B
● Medir KPIs e Métricas para:
○ Qualidade (Discrepâncias em Outputs)
○ Velocidade (Melhorias no Cycle Time)
○ Custos (Investimentos)
○ Eficiência (Produtividade do Usuário)
32. Onde Estamos Hoje
APLICAÇÃO NOVA
DB
APLICAÇÃO
LEGADA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
APLICAÇÃO
LEGADA
DB
APLICAÇÃO NOVA
DB
APLICAÇÃO
NOVA
DB
CAMADA DE
INDIREÇÃO
APLICAÇÃO
LEGADA
DB
Fonte - http://jonnyleroy.com/2011/02/03/dealing-with-creaky-legacy-platforms/
1 2 3
4 5 6
CAMADA DE
INDIREÇÃO
33. Desafios Conquistas
● Alta complexidade de negócio
● Risco de Impacto ao Negócio
● Código difícil de entender, evoluir
e desacoplar
● Mudanças simples se tornaram
custosas pela Infraestrutura
Legada
● Melhor rastreamento de erros
● Melhor Time to Market, menor cycle
time (tempo de desenvolvimento)
● Inovação - Novos produtos
● Qualidade técnica
● e-NPS do time foi de -60% a 100%
(Employee-Net Promoter Score)