SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Anderson Silveira
Agile Coach | KMP | CSM - CPQD
1
Quem somos nós?
anderson.silveira.br /andersonsilveira /andersonsilvra
Luís Fernando
Arquiteto de Software - CPQD
lfmrocha88@gmail.com /luis-fernando-martins-da-rocha
#SomosCPqD
Transformação
digital
Conecte-se ao
novo
2
3
Timeline
20XX
Pre CMMi
Ambiente de pessoas bem
seniors
Fortemente cascata
acadêmico
Poucos clientes
CMMi 3
Processo rígido CMMi 3 e ISO
Muita documentação
Silos de conhecimento
Métricas de vaidade
2006
Pré XP
Sem processo definido
Muitos clientes
Falta de padrão e sinergia
entre times
Qualidade a desejar
201X
XP
Processo bem definido e
adaptado
Método Kanban
Padrão e colobaração entre
times
Qualidade: alta ou altíssima
2017
❏ ~ 1 Milhão de linhas de código
❏ ~ Tabelas com mais de 10 Milhões de registros
❏ ~ 11 equipes
❏ ~ 150 pessoas envolvidas
❏ ~ Build de aproximadamente 2 horas
❏ ~ Milhões de transações por dia
4
O Monolito
5
Complexidade Essencial x Acidental
6
Débito técnica é instaurada
Dívida
7
Sintomas
● Responsividade ineficiente aos clientes
● Aumento nos tempos gerando atraso nas
entregas
● Muitos defeitos, alto acoplamento
● Aumento do custo do desenvolvimento
● Baixa performance do time
● Baixa colaboração entre as áreas de
desenvolvimento e operação
8
Composição dos times
9
Time
A
Time
B
Time
C
Sistema
Componente
A
Componente
B
Componente
C
Em times por componente, para se concluir
uma nova funcionalidade é necessário o
trabalho de múltiplos times
Antes: Times por componentes
➢ Grande número de hand offs
➢ Código coletivo não era efetivo
➢ Baixa colaboração
➢ Testes aceitação automatizado não eram
realizados
10
Parte do
monolito
Qual é o
pior
problema?
XP
Próximo
problema
Para aplicar XP no Monolito
Ambiente que permita sinergia Processo social dos “geeks”
https://github.com/tj/git-extras (git effort -- --since='2018-10-01') 11
Componente A
Componente B
Componente C
Desconstruindo o monolito...
12
Testes
Design
Simples
Coragem
Ambiente
Refatoração
Feedback
rápidoPrimeiros passos XP
Amadurecimento XP
Fonte: Extreme Programming Explained: Embrace Change (XP Series) (English Edition) 1st Edition 13
14
XP de “bolso”
Quanto menor,
melhor
Batch de trabalho
Ciclo curto
Feedback
Foco no essencial
Visibilidade
Exemplos das práticas na prática..
15
16
Time
A
Time
B
Time
C
Sistema
Componente
A
Componente
B
Componente
C
Em times por cliente, é possível desenvolver
uma nova funcionalidade do começo ao fim
Depois: Times por Cliente
➢ Otimização do fluxo de trabalho
➢ Código coletivo efetivo
➢ Facilidade de programação em par entre times
➢ Testes unitários padronizados
➢ Testes aceitação padronizados
➢ Alta Colaboração
Iniciação das equipes com
práticas de engenharia...
17
18
Qualitividade:
- 2 horas/semana de todas
as equipes
Objetivo:
- Aprimoramento de
práticas de TDD,
Refatoração,
Programação em par e
código coletivo
19
Código Organizado
20
Pagando a dívida técnica...
Inspeção contínua de código (Tratamento de vazamentos)
https://blog.sonarsource.com/water-leak-changes-the-game-for-technical-debt-management/ 21
● Foram selecionados os principais
componentes e módulos, para
inspeção contínua.
● Sem mutirão! A estratégia foi focar
nos novos códigos ou unidades de
código que serão alteradas na
próxima release
● Fazer ajustes frequentes no quality
gate para garantir que o
vazamento seja controlado.
22
Coragem
Refatoração
Simplicidade
Redução de aproximadamente 50K de LoC
23
Violações LoC
Testes
Unitários
Cobertura
ANTES
7000 74K 44 7%
DEPOIS
302 24K 183 23%
24
Refactor/Toggle - Antes e depois
Componentes LoC
Tempo
Resposta
Cobertura
ANTES
1 10K 4500ms 0%
DEPOIS
25 2K 900ms 75%
25
26
Ciclo de otimização
Make it fast Make it run
Make it right
Ciclo de
otimização
Release rápidos
Ciclos curtos
27
Dev
Commit
stage
Code
Analysis
Database
validation
Acceptance
Tests
Deploy to
QA
Deploy to
Homolog
Artifact
Testador OperaçãoDev
Promove a build para o
Testador
Arquiva o
artefato
Marca o card com n° da
pipeline
Recorte conceitual
Continuous Integration Continuous Delivery
Ganhos com a pipeline
● Redução do custo de transação
90% na liberação para QA e
Homologação
● Redução de recurso em disco ao
disponibilizar no Artifactory
● Promove colaboração e confiança
entre as áreas
● Frequência de entrega 10x maior
29
Custo de transação
por dia
Recurso em
disco
Confiança de
instalação
Frequência
de entrega
por dia
ANTES ~4 horas >2Gb Baixa 2
DEPOIS ~20 min < 2Gb Alta ~ 20
30
Dados de Qualidade Interna 2018/2019
Inspeção contínua: Pagamento da dívida
600%
170%
295%
31
Dados de tratamento de chamados: 2016/2017/2018/2019
Redução de Downtime em produção
Redução em:
-30%
CONCLUSÃO
Principais ganhos com as práticas XP aplicadas nas
equipes
32
REDUÇÃO DA
COMPLEXIDADE
ACIDENTAL
Mindset com foco na
complexidade
essencial e valor do
cliente
DIMINUIÇÃO DO
CICLO DE FEEDBACK
Com uso da pipeline
reduzimos o custo de
transação de 90%
AUMENTO DA
COLABORAÇÃO
Confiança nas entregas
nas entregas geraram
proximidade e empatia
entre as equipes de
desenvolvimento e
operação
GANHOS NA QUALIDADE
DE INTERNA
Diminuição
significativamente dos
chamados em produção
e downtime
Recapitulando...
33
Foco no essencial Recorte conceitual XP de “bolso”
Padrão e coletividade Feature Toggle CI/CD e feedback curtos
Pague a dívida
Obrigado!
Curtiu?
Anderson Silveira
anderson.silveira.br@gmail
Luís Fernando
lfmrocha88@gmail.com
Dev
Commit
stage
Code
Analysis
Database
validation
Acceptance
Tests
Deploy to
QA
Deploy to
Homolog
Artifact
Testador OperaçãoDev
Promove a build para o
Testador
Arquiva o
artefato
Marca o card com n° da
pipeline
Recorte conceitual
Job full compiler &
get environment
AWS
instance
AWS
instance
Continuous Integration Continuous Delivery
Atualização completa
Infra as code

Weitere ähnliche Inhalte

Was ist angesagt?

A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...
A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...
A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...tdc-globalcode
 
Teste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.jsTeste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.jsDiogo Andrade Miranda
 
Entendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaEntendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaDairton Bassi
 
Metodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserverMetodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserverGeneXus
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend ServerDiego Santos
 
Introdução de Kanban para Equipes Scrum
Introdução de Kanban para Equipes ScrumIntrodução de Kanban para Equipes Scrum
Introdução de Kanban para Equipes ScrumCamilo Almendra
 
GXTest Para Dummies
GXTest Para DummiesGXTest Para Dummies
GXTest Para DummiesGeneXus
 
DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!Fabio Gomes Ferreira
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoDenis Santos
 
Desmistificando o kanban
Desmistificando o kanbanDesmistificando o kanban
Desmistificando o kanbanRafael F. Buzon
 
Plano para medição de capacidade e performance em redes virtuais por Leonidas...
Plano para medição de capacidade e performance em redes virtuais por Leonidas...Plano para medição de capacidade e performance em redes virtuais por Leonidas...
Plano para medição de capacidade e performance em redes virtuais por Leonidas...Joao Galdino Mello de Souza
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutosiMasters
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?Thiago Ganzarolli
 
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...tdc-globalcode
 
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...Joao Galdino Mello de Souza
 
Gestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxoGestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxoAnderson Silveira
 

Was ist angesagt? (20)

A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...
A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...
A experiência da AGCO ao adotar o BDD em seus projetos: uma experiência excit...
 
Teste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.jsTeste Ágil - Fazendo pirâmides com node.js
Teste Ágil - Fazendo pirâmides com node.js
 
Entendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação ExtremaEntendendo Scrum, Kanban e Programação Extrema
Entendendo Scrum, Kanban e Programação Extrema
 
Metodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserverMetodologia de trabalho em equipe: GXserver
Metodologia de trabalho em equipe: GXserver
 
Práticas DevOps com Zend Server
Práticas DevOps com Zend ServerPráticas DevOps com Zend Server
Práticas DevOps com Zend Server
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Introdução de Kanban para Equipes Scrum
Introdução de Kanban para Equipes ScrumIntrodução de Kanban para Equipes Scrum
Introdução de Kanban para Equipes Scrum
 
GXTest Para Dummies
GXTest Para DummiesGXTest Para Dummies
GXTest Para Dummies
 
DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!
 
ccgest
ccgestccgest
ccgest
 
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de IntegraçãoComunidade Ágil Netshoes - O que tem dado certo no time de Integração
Comunidade Ágil Netshoes - O que tem dado certo no time de Integração
 
Criando uma Arquitetura Testável
Criando uma Arquitetura TestávelCriando uma Arquitetura Testável
Criando uma Arquitetura Testável
 
Desmistificando o kanban
Desmistificando o kanbanDesmistificando o kanban
Desmistificando o kanban
 
Plano para medição de capacidade e performance em redes virtuais por Leonidas...
Plano para medição de capacidade e performance em redes virtuais por Leonidas...Plano para medição de capacidade e performance em redes virtuais por Leonidas...
Plano para medição de capacidade e performance em redes virtuais por Leonidas...
 
7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos7Masters - Devops - Do legado ao ci cd em 7 minutos
7Masters - Devops - Do legado ao ci cd em 7 minutos
 
Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 
DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?DevOps, NoOps...afinal que raios é isso?
DevOps, NoOps...afinal que raios é isso?
 
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
 
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
Performance e Capacidade de Aplicação e Infraestrutura - Qualidade do Código ...
 
Gestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxoGestão Ágil: Gerar valor a partir da otimização de fluxo
Gestão Ágil: Gerar valor a partir da otimização de fluxo
 

Ähnlich wie Como a CPqD transformou seu monolito usando XP

Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágilabacrazy
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)André Dias
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasKleitor Franklint Correa Araujo
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de ProjetosInaniaVerba
 
Premier IT Produtividade em Foco
Premier IT Produtividade em FocoPremier IT Produtividade em Foco
Premier IT Produtividade em FocoJorge Biesczad Jr.
 
Gestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxoGestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxoAnderson Silveira
 
Gestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágilGestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágilSabrina Mariana
 
Gestão da qualidade metodologia ágil v01 (2)
Gestão da qualidade   metodologia ágil v01 (2)Gestão da qualidade   metodologia ágil v01 (2)
Gestão da qualidade metodologia ágil v01 (2)Sabrina Mariana
 
MIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoCaio Candido
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAndré Abe Vicente
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeisComunidade Tá safo!
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
 
Desenvolvimento ágil pensando além
Desenvolvimento ágil   pensando alémDesenvolvimento ágil   pensando além
Desenvolvimento ágil pensando alémilegra
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme ProgrammingDenis L Presciliano
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareRoberto Brandini
 

Ähnlich wie Como a CPqD transformou seu monolito usando XP (20)

Scrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento ÁgilScrum e o Ambiente de Desenvolvimento Ágil
Scrum e o Ambiente de Desenvolvimento Ágil
 
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
Utilizando metologias ágeis com VSTS: Scrum e XP, YES WE CAN! (ALM204)
 
Metodologias Ageis
Metodologias AgeisMetodologias Ageis
Metodologias Ageis
 
Automação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégiasAutomação de testes - uma introdução sobre estratégias
Automação de testes - uma introdução sobre estratégias
 
Gestão Ágil de Projetos
Gestão Ágil de ProjetosGestão Ágil de Projetos
Gestão Ágil de Projetos
 
Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Premier IT Produtividade em Foco
Premier IT Produtividade em FocoPremier IT Produtividade em Foco
Premier IT Produtividade em Foco
 
Gestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxoGestão ágil: gerar valor partir otimização de fluxo
Gestão ágil: gerar valor partir otimização de fluxo
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
Gestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágilGestão da Qualidade - Metodologia ágil
Gestão da Qualidade - Metodologia ágil
 
Gestão da qualidade metodologia ágil v01 (2)
Gestão da qualidade   metodologia ágil v01 (2)Gestão da qualidade   metodologia ágil v01 (2)
Gestão da qualidade metodologia ágil v01 (2)
 
MIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como CódigoMIT DevOps IaC - Infra como Código
MIT DevOps IaC - Infra como Código
 
Agile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da IndústriaAgile e Testes: Um Relato de Experiência da Indústria
Agile e Testes: Um Relato de Experiência da Indústria
 
Treinamento Ágil / Scrum
Treinamento Ágil / ScrumTreinamento Ágil / Scrum
Treinamento Ágil / Scrum
 
Gerenciamento de projetos de TI
Gerenciamento de projetos de TIGerenciamento de projetos de TI
Gerenciamento de projetos de TI
 
Introdução às metodologias ágeis
Introdução às metodologias ágeisIntrodução às metodologias ágeis
Introdução às metodologias ágeis
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
Desenvolvimento ágil pensando além
Desenvolvimento ágil   pensando alémDesenvolvimento ágil   pensando além
Desenvolvimento ágil pensando além
 
Introdução: eXtreme Programming
Introdução: eXtreme ProgrammingIntrodução: eXtreme Programming
Introdução: eXtreme Programming
 
Gerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de softwareGerenciamento de equipes no desenvolvimento de software
Gerenciamento de equipes no desenvolvimento de software
 

Como a CPqD transformou seu monolito usando XP