SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
Padrão de Estrangulamento
na Prática
Bárbara Sanches & Thalita Gomes
A jornada de modernização de um
legado Perl de 20 anos
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
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
O Desafio
A Manutenção de um Sistema Legado de 20 anos
● 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
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
Mas...
Como convencer a área de negócio a modernizar?
Visibilidade!
A base para qualquer decisão
Avaliação da Arquitetura
● Visões e opiniões das
Stakeholders
● Conjunto priorizado de
atributos de qualidade de
Software
● Requisitos transversais
Atributos de
Qualidade
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
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
● Toxicidade do código
● Reutilização de código
● Cobertura de testes
● Bugs e Vulnerabilidades
Avaliação do Código
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
Plano
O que fazer e por onde começar?
Melhorar o
que existe
Substituição
Gradual
Substituição
Total
Identificando a Opção de Modernização
Individualmente ou em Combinação
Melhorar o
que existe
Substituição
Gradual
Substituição
Total
Identificando a Opção de Modernização
● Sistema era core do negócio
● Menor risco devido a
complexidade da lógica de
negócio
● A aplicação legada estava
modularizada
Individualmente ou em Combinação
Foco em Capacidades de Negócio
Entendimento
do Monolito
Identificação de
Domínios de Negócio
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
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 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
Execução
Estrangulando o Legado
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...
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
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
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
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
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
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
Validação
Estamos no caminho certo?
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)
Próximos Passos
Onde estamos e para onde vamos?
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
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)
Obrigada!
Bárbara Sanches
@barbara_sanches
barbarasanches@thoughtworks.com
Thalita Gomes
@thalitapinheiro
tgomes@thoughtworks.com
bw ♥

Mais conteúdo relacionado

Mais procurados

Software Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationLilia Sfaxi
 
Software application assignment 2
Software application assignment 2Software application assignment 2
Software application assignment 2Sow Wei Henn
 
フラットなPHPからフレームワークへ
フラットなPHPからフレームワークへフラットなPHPからフレームワークへ
フラットなPHPからフレームワークへMasao Maeda
 
Metodologia ágil das Desenvolvimento Adaptativo Software
Metodologia ágil das   Desenvolvimento Adaptativo SoftwareMetodologia ágil das   Desenvolvimento Adaptativo Software
Metodologia ágil das Desenvolvimento Adaptativo SoftwareMarilainny Martins da Silva
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development ModelRitika Balagan
 
優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法Junichi Izumi
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture ReviewHimanshu
 
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~Takuro Wada
 

Mais procurados (20)

Inspeções em desenvolvimento de software
Inspeções em desenvolvimento de softwareInspeções em desenvolvimento de software
Inspeções em desenvolvimento de software
 
mep bim ppt.pptx
mep bim ppt.pptxmep bim ppt.pptx
mep bim ppt.pptx
 
BIM Execution Plan
BIM Execution PlanBIM Execution Plan
BIM Execution Plan
 
UX Research
UX ResearchUX Research
UX Research
 
The Role of CIC on BIM Development
The Role of CIC on BIM DevelopmentThe Role of CIC on BIM Development
The Role of CIC on BIM Development
 
the taxonomy table
the taxonomy tablethe taxonomy table
the taxonomy table
 
Tekla Structures 21.0
Tekla Structures 21.0Tekla Structures 21.0
Tekla Structures 21.0
 
Software Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specificationSoftware Engineering - chp2- requirements specification
Software Engineering - chp2- requirements specification
 
Pre and Post Contract BIM Execution Plans
Pre and Post Contract BIM Execution PlansPre and Post Contract BIM Execution Plans
Pre and Post Contract BIM Execution Plans
 
Software application assignment 2
Software application assignment 2Software application assignment 2
Software application assignment 2
 
フラットなPHPからフレームワークへ
フラットなPHPからフレームワークへフラットなPHPからフレームワークへ
フラットなPHPからフレームワークへ
 
Metodologia ágil das Desenvolvimento Adaptativo Software
Metodologia ágil das   Desenvolvimento Adaptativo SoftwareMetodologia ágil das   Desenvolvimento Adaptativo Software
Metodologia ágil das Desenvolvimento Adaptativo Software
 
Metodologia Ágil
Metodologia ÁgilMetodologia Ágil
Metodologia Ágil
 
Gerenciamento das Comunicações do Projeto
Gerenciamento das Comunicações do ProjetoGerenciamento das Comunicações do Projeto
Gerenciamento das Comunicações do Projeto
 
Engenharia de software - Prototipo
Engenharia de software - PrototipoEngenharia de software - Prototipo
Engenharia de software - Prototipo
 
Agile Software Development Model
Agile Software Development ModelAgile Software Development Model
Agile Software Development Model
 
優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法優れたデザインの 定義と思考方法
優れたデザインの 定義と思考方法
 
Scrum - evolução contínua
Scrum - evolução contínuaScrum - evolução contínua
Scrum - evolução contínua
 
Architecture Review
Architecture ReviewArchitecture Review
Architecture Review
 
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~3Dプリント×Python ~コードからアプローチする3Dプリンティング~
3Dプリント×Python ~コードからアプローチする3Dプリンティング~
 

Semelhante a Padrão de Estrangulamento na Prática

Papel de PO distribuído: funciona? Lessons learned de um produto global
Papel de PO distribuído: funciona?  Lessons learned de um produto global Papel de PO distribuído: funciona?  Lessons learned de um produto global
Papel de PO distribuído: funciona? Lessons learned de um produto global Viviam Ribeiro
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devopsDiego Pacheco
 
GTISUL - ENCONTRO CIOS RS - V2
GTISUL - ENCONTRO CIOS RS - V2GTISUL - ENCONTRO CIOS RS - V2
GTISUL - ENCONTRO CIOS RS - V2Antonio Andrade
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaHenrique Nunes Bez Fontana
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Anderson Silveira
 
DevOps - Novos Desafios para TI
DevOps - Novos Desafios para TIDevOps - Novos Desafios para TI
DevOps - Novos Desafios para TICarlos Buzeto
 
CV Rogério Casimiro Reis 2015
CV Rogério Casimiro Reis 2015CV Rogério Casimiro Reis 2015
CV Rogério Casimiro Reis 2015Rog Casimiro Reis
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...Fabrízio Mello
 
Ágil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se AtraemÁgil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se AtraemCentus Consultoria
 
[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...
[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...
[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...EloGroup
 
Como implantar transformações organizacionais a partir de uma plataforma BPMS...
Como implantar transformações organizacionais a partir de uma plataforma BPMS...Como implantar transformações organizacionais a partir de uma plataforma BPMS...
Como implantar transformações organizacionais a partir de uma plataforma BPMS...Lecom Tecnologia
 
– Como implantar transformações organizacionais a partir de uma plataforma BP...
– Como implantar transformações organizacionais a partir de uma plataforma BP...– Como implantar transformações organizacionais a partir de uma plataforma BP...
– Como implantar transformações organizacionais a partir de uma plataforma BP...EloGroup
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoRafael Chaves
 
ROI de UX - Apresentação - Superlógicas - set/2017
ROI de UX - Apresentação - Superlógicas - set/2017ROI de UX - Apresentação - Superlógicas - set/2017
ROI de UX - Apresentação - Superlógicas - set/2017Guilherme Gonzalez
 
Gleidson rodrigues apresentação profissional
Gleidson rodrigues   apresentação profissionalGleidson rodrigues   apresentação profissional
Gleidson rodrigues apresentação profissionalGleidson Rodrigues
 
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...Dextra
 
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Vanessa Campos
 

Semelhante a Padrão de Estrangulamento na Prática (20)

Papel de PO distribuído: funciona? Lessons learned de um produto global
Papel de PO distribuído: funciona?  Lessons learned de um produto global Papel de PO distribuído: funciona?  Lessons learned de um produto global
Papel de PO distribuído: funciona? Lessons learned de um produto global
 
Workshop soa, microservices e devops
Workshop soa, microservices e devopsWorkshop soa, microservices e devops
Workshop soa, microservices e devops
 
GTISUL - ENCONTRO CIOS RS - V2
GTISUL - ENCONTRO CIOS RS - V2GTISUL - ENCONTRO CIOS RS - V2
GTISUL - ENCONTRO CIOS RS - V2
 
Métodos Ágeis - Aula 01
Métodos Ágeis - Aula 01Métodos Ágeis - Aula 01
Métodos Ágeis - Aula 01
 
Palestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresaPalestra papel do desenvolvedor no sucesso da empresa
Palestra papel do desenvolvedor no sucesso da empresa
 
Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito Como aplicar práticas DevOps em um sistema monólito
Como aplicar práticas DevOps em um sistema monólito
 
DevOps - Novos Desafios para TI
DevOps - Novos Desafios para TIDevOps - Novos Desafios para TI
DevOps - Novos Desafios para TI
 
CV Rogério Casimiro Reis 2015
CV Rogério Casimiro Reis 2015CV Rogério Casimiro Reis 2015
CV Rogério Casimiro Reis 2015
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
 
Ágil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se AtraemÁgil e Arquitetura-Os Opostos se Atraem
Ágil e Arquitetura-Os Opostos se Atraem
 
[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...
[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...
[Café com BPM - Setor Privado] Como implantar transformações organizacionais ...
 
Como implantar transformações organizacionais a partir de uma plataforma BPMS...
Como implantar transformações organizacionais a partir de uma plataforma BPMS...Como implantar transformações organizacionais a partir de uma plataforma BPMS...
Como implantar transformações organizacionais a partir de uma plataforma BPMS...
 
– Como implantar transformações organizacionais a partir de uma plataforma BP...
– Como implantar transformações organizacionais a partir de uma plataforma BP...– Como implantar transformações organizacionais a partir de uma plataforma BP...
– Como implantar transformações organizacionais a partir de uma plataforma BP...
 
Separando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestãoSeparando arquitetura e negócios em sistemas de gestão
Separando arquitetura e negócios em sistemas de gestão
 
ROI de UX - Apresentação - Superlógicas - set/2017
ROI de UX - Apresentação - Superlógicas - set/2017ROI de UX - Apresentação - Superlógicas - set/2017
ROI de UX - Apresentação - Superlógicas - set/2017
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Gleidson rodrigues apresentação profissional
Gleidson rodrigues   apresentação profissionalGleidson rodrigues   apresentação profissional
Gleidson rodrigues apresentação profissional
 
2015_CV_PT
2015_CV_PT2015_CV_PT
2015_CV_PT
 
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...Desenvolvimento Ágil e Pontos de Função  gerenciando o projeto de maneira ági...
Desenvolvimento Ágil e Pontos de Função gerenciando o projeto de maneira ági...
 
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
Desenvolvimento ágil e pontos de função: gerenciando o projeto de maneira ági...
 

Mais de ThoughtWorks Brasil

[XConf Brasil 2020] Alinhando times em uma cultura DevOps
[XConf Brasil 2020] Alinhando times em uma cultura DevOps[XConf Brasil 2020] Alinhando times em uma cultura DevOps
[XConf Brasil 2020] Alinhando times em uma cultura DevOpsThoughtWorks Brasil
 
[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...
[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...
[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...ThoughtWorks Brasil
 
[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks
[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks
[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorksThoughtWorks Brasil
 
[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...
[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...
[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...ThoughtWorks Brasil
 
[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app
[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app
[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do appThoughtWorks Brasil
 
[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...
[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...
[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...ThoughtWorks Brasil
 
[XConf Brasil 2020] Redefining confidence: cognitive biases in development life
[XConf Brasil 2020] Redefining confidence: cognitive biases in development life[XConf Brasil 2020] Redefining confidence: cognitive biases in development life
[XConf Brasil 2020] Redefining confidence: cognitive biases in development lifeThoughtWorks Brasil
 
[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?
[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?
[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?ThoughtWorks Brasil
 
[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia
[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia
[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da ÁsiaThoughtWorks Brasil
 
Quebrando silos por meio de uma cultura de produto
Quebrando silos por meio de uma cultura de produtoQuebrando silos por meio de uma cultura de produto
Quebrando silos por meio de uma cultura de produtoThoughtWorks Brasil
 
Desenvolvimento para Big-Screen - fragmentação = entropia infinita?
Desenvolvimento para Big-Screen - fragmentação = entropia infinita?Desenvolvimento para Big-Screen - fragmentação = entropia infinita?
Desenvolvimento para Big-Screen - fragmentação = entropia infinita?ThoughtWorks Brasil
 
DevOps e Plataformas Digitais de A a Z
DevOps e Plataformas Digitais de A a ZDevOps e Plataformas Digitais de A a Z
DevOps e Plataformas Digitais de A a ZThoughtWorks Brasil
 
Mundo Mobile: o que temos usado e o que vem por aí
Mundo Mobile: o que temos usado e o que vem por aíMundo Mobile: o que temos usado e o que vem por aí
Mundo Mobile: o que temos usado e o que vem por aíThoughtWorks Brasil
 
Integração entre design e tecnologia
Integração entre design e tecnologiaIntegração entre design e tecnologia
Integração entre design e tecnologiaThoughtWorks Brasil
 
Princípios de Arquitetura Evolutiva
Princípios de Arquitetura EvolutivaPrincípios de Arquitetura Evolutiva
Princípios de Arquitetura EvolutivaThoughtWorks Brasil
 
Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...
Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...
Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...ThoughtWorks Brasil
 
Enriquecendo um Modelo de Domínio Anêmico
Enriquecendo um Modelo de Domínio AnêmicoEnriquecendo um Modelo de Domínio Anêmico
Enriquecendo um Modelo de Domínio AnêmicoThoughtWorks Brasil
 
Entrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine LearningEntrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine LearningThoughtWorks Brasil
 

Mais de ThoughtWorks Brasil (20)

[XConf Brasil 2020] Alinhando times em uma cultura DevOps
[XConf Brasil 2020] Alinhando times em uma cultura DevOps[XConf Brasil 2020] Alinhando times em uma cultura DevOps
[XConf Brasil 2020] Alinhando times em uma cultura DevOps
 
[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...
[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...
[XConf Brasil 2020] Ei, Tech Lead! Não se esqueça que você é LEAD...
 
[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks
[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks
[XConf Brasil 2020] Linguagens no Technology Radar da ThoughtWorks
 
[XConf Brasil 2020] Data mesh
[XConf Brasil 2020] Data mesh[XConf Brasil 2020] Data mesh
[XConf Brasil 2020] Data mesh
 
[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...
[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...
[XConf Brasil 2020] Abalos sísmicos e negócios digitais modernos: a visão da ...
 
[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app
[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app
[XConf Brasil 2020] Ajudando a Natura a escalar usando modularização do app
 
[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...
[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...
[XConf Brasil 2020] Modelo do queijo suíço: engajando todo o time na estratég...
 
[XConf Brasil 2020] Redefining confidence: cognitive biases in development life
[XConf Brasil 2020] Redefining confidence: cognitive biases in development life[XConf Brasil 2020] Redefining confidence: cognitive biases in development life
[XConf Brasil 2020] Redefining confidence: cognitive biases in development life
 
[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?
[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?
[XConf Brasil 2020] De volta ao front-end: o futuro já chegou?
 
[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia
[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia
[XConf Brasil 2020] Escalando uma das principais startups de Insurtech da Ásia
 
Pessoas > Linguagens
Pessoas > LinguagensPessoas > Linguagens
Pessoas > Linguagens
 
Quebrando silos por meio de uma cultura de produto
Quebrando silos por meio de uma cultura de produtoQuebrando silos por meio de uma cultura de produto
Quebrando silos por meio de uma cultura de produto
 
Desenvolvimento para Big-Screen - fragmentação = entropia infinita?
Desenvolvimento para Big-Screen - fragmentação = entropia infinita?Desenvolvimento para Big-Screen - fragmentação = entropia infinita?
Desenvolvimento para Big-Screen - fragmentação = entropia infinita?
 
DevOps e Plataformas Digitais de A a Z
DevOps e Plataformas Digitais de A a ZDevOps e Plataformas Digitais de A a Z
DevOps e Plataformas Digitais de A a Z
 
Mundo Mobile: o que temos usado e o que vem por aí
Mundo Mobile: o que temos usado e o que vem por aíMundo Mobile: o que temos usado e o que vem por aí
Mundo Mobile: o que temos usado e o que vem por aí
 
Integração entre design e tecnologia
Integração entre design e tecnologiaIntegração entre design e tecnologia
Integração entre design e tecnologia
 
Princípios de Arquitetura Evolutiva
Princípios de Arquitetura EvolutivaPrincípios de Arquitetura Evolutiva
Princípios de Arquitetura Evolutiva
 
Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...
Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...
Como a colaboração entre artistas e engenheiros fomenta a pesquisa de tecnolo...
 
Enriquecendo um Modelo de Domínio Anêmico
Enriquecendo um Modelo de Domínio AnêmicoEnriquecendo um Modelo de Domínio Anêmico
Enriquecendo um Modelo de Domínio Anêmico
 
Entrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine LearningEntrega Contínua aplicada a Machine Learning
Entrega Contínua aplicada a Machine Learning
 

Padrão de Estrangulamento na Prática

  • 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
  • 4. O Desafio A Manutenção de um Sistema Legado de 20 anos
  • 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
  • 7. Mas... Como convencer a área de negócio a modernizar?
  • 8. Visibilidade! A base para qualquer decisão
  • 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
  • 14. Plano O que fazer e por onde começar?
  • 15. Melhorar o que existe Substituição Gradual Substituição Total Identificando a Opção de Modernização Individualmente ou em Combinação
  • 16. Melhorar o que existe Substituição Gradual Substituição Total Identificando a Opção de Modernização ● Sistema era core do negócio ● Menor risco devido a complexidade da lógica de negócio ● A aplicação legada estava modularizada Individualmente ou em Combinação
  • 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)
  • 31. Próximos Passos Onde estamos e para onde vamos?
  • 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)