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

XP como aliado para conter a complexidade de um monolito de mais de 15 anos