rio agile - o poder da visualização: atacando a dívida técnica e promovendo outras mudanças
DESCRIPTION
Apresentação realizada na edição de 2013 do Rio AgileTRANSCRIPT
O Poder da Visualização: atacando a Dívida Técnica e promovendo
outras mudanças
Amanda VarellaCristine Dantas
ContextoGerência de desenvolvimento de soluções de apoio à exploração e produção
de petróleo (E&P)
293pessoas
4 coordenações
ContextoGerência de desenvolvimento de soluções de apoio à exploração e produção
de petróleo (E&P)
30 entre
e 40 times
Contexto
Nossos Clientes são pessoas do negócio (Engenheiros de Petróleo,
Geólogos, Geofísicos...) que solicitam soluções de TI para
apoio às suas atividades
ContextoNós – SMArt – Soluções em Métodos Ágeis e Arquitetura Tecnológica
Já passaram por lá...Celebridades do mundo ágil nacional e internacional
Rodrigo de Toledo
David Anderson
Alisson Vale
Juan Bernabó
Já passaram por lá...Celebridades do mundo ágil nacional e internacional
Martin FowlerPaulo Caroli
Jez Humble
20082009
2011
2010
Primeiro projetocom Scrumna gerência
Expansãodo uso para
outros times
Necessidadede disseminação
das práticas técnicas
Technical Debt
Code that is written inA fast and “dirty” way or,more technically, codethat is produced takingshortcuts that fall shortof best practices
Ward Cunningham
Dívida Técnica é similar a dívida financeira. Assim como o dívida financeira, o dívida técnica exige o pagamento de juros. Estes vem na forma de esforço extra, que devem ser pagos em desenvolvimentos futuros por conta da escolha de um design mais rápido e de baixa qualidade. Nós podemos optar por continuar pagando estes juros ou quitar de uma vez a dívida fazendo uma refatoração, transformando um design de baixa qualidade em um design melhor. Apesar dos custos para saldar a dívida, nós ganhamos reduzindo os juros no futuro.
Martin Fowler
Desafio:
Como um grupo de 4 pessoaspoderia atuar na disseminaçãodo conceito e redução da Dívida Técnica de cercade 30 times?
O que é?Qual o seu tamanho?Por que estamos acumulando?Como podemos pagá-la (mantê-la controlada)?
1ª iniciativa: Divulgação dos conceitos sobre Dívida Técnica
1ª iniciativa: Divulgação dos conceitos sobre Dívida Técnica
Mãos à obra – Integração Contínua
Integração Contínua
Vamos expandir a visualização!
Começamos com o que tínhamos
Com algum apoio...
E em uma semana!
Algumas métricas com o Sonar
Algumas métricas com o Sonar
E uma nova visualização!
Projeto
Últimobuild
# de testes
Percentual de cobertura de testes
Outras coisas ainda precisavamser tratadas...
Managing and Visualizing Non-linear Workflows using a Kanban Matrix
Gerard Meszaros
Categorias
Sub-Categorias
Estado em cada Sub-Categoria
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
sIn
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
cD
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Technical Debt
Team
Configuration
ManagementDesign Quality
Mo
nit
ori
ng
Au
tom
ati
cB
uil
d
Co
nti
nu
ou
s In
teg
rati
on
Au
tom
ati
c D
ep
loy
Au
tom
ati
c P
rom
oti
on Use of static
analysis tools
Functional
tests
Non-
functional
tests
Sta
tis
tic
s
Sty
le
Go
od
Pra
cti
ce
s
Bu
gs
Arc
hit
ec
ture
Un
it
Inte
gra
tio
n
Ac
ce
pta
nc
e
Pefo
rman
ce
Lo
ad
Se
cu
rity
Team A
Team B
Team C
Team D
Integração Contínua Testes Unitários
Não existe job na ferramenta de
Integração Contínua
Não existem Testes
Unitários
Existe um jobagendado na
ferramenta de Integração Contínua
Existem alguns Testes
Unitários
Existe um job agendado na ferramenta de Integração
Contínua e a equipe mantém o build funcionando (compilando
e testes passando)
Existem Testes Unitários
em quantidadeque o time se sente
confortável
Gamificando
Ou
Próximo alvo
Um momento...
Nossos chefes compraramesta ideia?
A princípio não!
Apesar de não termos sido impedidos defazer este trabalho, foi muito difícil convencerque esta atividade deveria ser estimulada.
E nós iríamos precisar de ajuda...
O questionamento: nós temos software quetraz lucros para empresa rodando por 20 anos
e isso nunca foi necessário.Por que fazer isso agora? (ex: Testes Automatizados)
Não negamos que investir no pagamento da Dívida Técnica iarequerer mais tempo no desenvolvimento e que o retorno seria no longo prazo
Havia uma preocupação de que ao incentivar essa atividade o ritmode entregas fosse prejudicado,e consequentemente o relacionamento com o cliente.
E este gráfico foi mostradomuitas vezes....
Infelizmente não tínhamos como mostrarresultados no curto prazo (ex: atacar a dívida técnica melhorou a responsividade ao cliente)
Não houve saída, senão esperar o tempo passar, repetindoincessantemente que sem o apoio de gerentes e coordenadores, não íamos conseguir avançar muito
2012Sim! Nós nos preocupamos com a Dívida Técnica!
Metas corporativas relacionadas à reduçãoda dívida técnica e não só a entregas
Acompanhamento mensaldos coordenadores no quadro de dívida técnica
Hoje
60
Mas não viemos aqui somente paracontar uma história de sucesso...
Ainda existem muitosPost-its rosa.
Dificuldades Atuais
O acompanhamento com oscoordenadores já não está sendo tãofrequente
A visualização por si só não está chamandopara a ação
Já detectamos que...
O modelo atual, apesar de mostrar um senso de progresso, não mostra por quanto tempo uma equipe está em um estado
O progresso não está representado da melhor maneira
A barra foi colocada muito alta, algumas categorias podem sair (pelo menos em um primeiro momento)
Ainda em 2011...
... e a busca por pagar a dívida técnica passou a ser a busca pela
entrega contínua.
Atualmente
Acompanhamento de métricas como Throughput e Lead Time entre outras (estamos conseguindo entregar com mais frequência?)
Mas este é assunto para outra palestra
Resultados
30%
em1 ano
de evolução no atendimentoaos critérios da Dívida Técnica
E o mais importante
Temos usado esta abordagem deVisualização + Métricas para auxiliar
na promoção de outras melhorias
Visualizar o fluxo de trabalho
Limitar o WIP
Medir e Gerenciar o fluxo
Tornar as políticas explícitas
Implementar mecanismos de feedback
Melhorar colaborativamente utilizando modelos e método científico
Isso te lembra algo?
Obrigada!
Amanda VarellaCristine Dantas