5. 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
7. Já passaram por lá...
Celebridades do mundo ágil nacional e internacional
David Anderson
Rodrigo de Toledo
Alisson Vale
Juan Bernabó
8. Já passaram por lá...
Celebridades do mundo ágil nacional e internacional
Paulo Caroli
Martin Fowler
Jez Humble
9. Expansão
do uso para
outros times
Primeiro projeto
com Scrum
na gerência
Necessidade
de disseminação
das práticas
técnicas
2011
2009
2010
2008
10. Technical Debt
Code that is written in
A fast and “dirty” way or,
more technically, code
that is produced taking
shortcuts that fall short
of best practices
Ward Cunningham
11. 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
12. Desafio:
Como um grupo de 4 pessoas
poderia atuar na disseminação
do conceito e redução da
Dívida Técnica de cerca
de 30 times?
13. 1ª iniciativa: Divulgação dos
conceitos sobre Dívida Técnica
O que é?
Qual o seu tamanho?
Por que estamos acumulando?
Como podemos pagá-la (mantê-la controlada)?
33. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
34. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
35. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
36. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
37. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
38. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
39. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
40. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
41. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
42. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
43. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
44. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
45. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
46. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
47. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
48. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
49. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
50. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
51. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
52. Team
Team A
Team B
Team C
Team D
NonUse of static Functional
functional
analysis tools
tests
tests
Monitoring
Statistics
Security
Load
Peformance
Design
Acceptance
Integration
Unit
Architecture
Bugs
Configuration
Management
Good Practices
Style
Automatic Promotion
Automatic Deploy
Continuous Integration
Automatic Build
Technical Debt
Quality
53. 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 job
agendado 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 quantidade
que o time se sente
confortável
59. A princípio não!
Apesar de não termos sido impedidos de
fazer este trabalho, foi muito difícil convencer
que esta atividade deveria ser estimulada.
E nós iríamos precisar de ajuda...
60.
61. O questionamento: nós temos software que
traz lucros para empresa rodando por 20 anos
e isso nunca foi necessário.
Por que fazer isso agora? (ex: Testes Automatizados)
62. Não negamos que investir no
pagamento da Dívida Técnica ia
requerer mais tempo no
desenvolvimento e que o retorno
seria no longo prazo
Havia uma preocupação de que ao
incentivar essa atividade o ritmo
de entregas fosse prejudicado,
e consequentemente o
relacionamento com o cliente.
64. Infelizmente não tínhamos como mostrar
resultados 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, repetindo
incessantemente que sem o apoio de gerentes e
coordenadores, não íamos conseguir avançar muito
65. 2012
Sim! Nós nos preocupamos com a
Dívida Técnica!
Acompanhamento mensal
dos coordenadores no quadro de dívida técnica
Metas corporativas relacionadas à redução
da dívida técnica e não só a entregas
69. Dificuldades Atuais
O acompanhamento com os
coordenadores já não está sendo tão
frequente
A visualização por si só não está chamando
para a ação
70. 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)
71. Ainda em 2011...
... e a busca por pagar a dívida
técnica passou a ser a busca pela
entrega contínua.
72.
73.
74. 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
76. E o mais importante
Temos usado esta abordagem de
Visualização + Métricas para auxiliar
na promoção de outras melhorias
77. 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?