SlideShare uma empresa Scribd logo
1 de 78
O Poder da Visualização: atacando
a Dívida Técnica e promovendo
outras mudanças

Amanda Varella
Cristine Dantas
Contexto
Gerência de desenvolvimento de soluções de apoio à exploração e produção
de petróleo (E&P)

293
pessoas

4

coordenações
Contexto
Gerência de desenvolvimento de soluções de apoio à exploração e produção
de petróleo (E&P)

entre

30 40
e

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
Contexto
Nós – SMArt – Soluções em Métodos Ágeis e Arquitetura Tecnológica
Já passaram por lá...
Celebridades do mundo ágil nacional e internacional
David Anderson

Rodrigo de Toledo

Alisson Vale

Juan Bernabó
Já passaram por lá...
Celebridades do mundo ágil nacional e internacional

Paulo Caroli

Martin Fowler

Jez Humble
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
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
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 pessoas
poderia atuar na disseminação
do conceito e redução da
Dívida Técnica de cerca
de 30 times?
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)?
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

Último
build

# de testes

Percentual de cobertura de testes
Outras coisas ainda precisavam
ser tratadas...
Managing and Visualizing Non-linear
Workflows
using a Kanban Matrix
Gerard Meszaros
Categorias
Sub-Categorias
Estado em cada Sub-Categoria
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Gamificando
Ou

Próximo alvo
Um momento...
Nossos chefes compraram
esta ideia?
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...
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)
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.
E este gráfico foi mostrado
muitas vezes....
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
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
Hoje

60
Mas não viemos aqui somente para
contar uma história de sucesso...
Ainda existem muitos
Post-its rosa.
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
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%

de evolução no atendimento
aos critérios da Dívida Técnica
em

1 ano
E o mais importante

Temos usado esta abordagem de
Visualizaçã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 Varella
Cristine Dantas

Mais conteúdo relacionado

Mais procurados

[Webinar] Scrum - Você está fazendo do jeito certo?
[Webinar] Scrum - Você está fazendo do jeito certo?[Webinar] Scrum - Você está fazendo do jeito certo?
[Webinar] Scrum - Você está fazendo do jeito certo?TargetTrust
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosWilliam Lima
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterPaulo Lomanto
 
Scrum - Framework, Competências e Valores (versão community)
Scrum -  Framework, Competências e Valores (versão community)Scrum -  Framework, Competências e Valores (versão community)
Scrum - Framework, Competências e Valores (versão community)Manoel Pimentel Medeiros
 
Scrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveScrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveMarcos Alves
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareFrancke Peixoto
 
Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumMarcos Garrido
 
Seminário - Scrum , Kaban e XP
Seminário - Scrum , Kaban e XPSeminário - Scrum , Kaban e XP
Seminário - Scrum , Kaban e XPLays Lopes
 
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...Thiago Compan
 

Mais procurados (20)

[Webinar] Scrum - Você está fazendo do jeito certo?
[Webinar] Scrum - Você está fazendo do jeito certo?[Webinar] Scrum - Você está fazendo do jeito certo?
[Webinar] Scrum - Você está fazendo do jeito certo?
 
Metricas (e previsões) acionáveis de projeto
Metricas (e previsões) acionáveis de projetoMetricas (e previsões) acionáveis de projeto
Metricas (e previsões) acionáveis de projeto
 
Gestao de Projeto com gráfico burndown
Gestao de Projeto com gráfico burndownGestao de Projeto com gráfico burndown
Gestao de Projeto com gráfico burndown
 
Gestão Ágil de tudo: Planejamento backlog
Gestão Ágil de tudo: Planejamento backlogGestão Ágil de tudo: Planejamento backlog
Gestão Ágil de tudo: Planejamento backlog
 
Papeis Ágeis - uma proposta operacional Scrum
Papeis Ágeis - uma proposta operacional ScrumPapeis Ágeis - uma proposta operacional Scrum
Papeis Ágeis - uma proposta operacional Scrum
 
Desmistificando Agile & Scrum
Desmistificando Agile & ScrumDesmistificando Agile & Scrum
Desmistificando Agile & Scrum
 
Modelagem com historias bem além dos requisitos
Modelagem com historias bem além dos requisitosModelagem com historias bem além dos requisitos
Modelagem com historias bem além dos requisitos
 
Fundamentos Gestão de Escopo e Qualidade
Fundamentos Gestão de Escopo e QualidadeFundamentos Gestão de Escopo e Qualidade
Fundamentos Gestão de Escopo e Qualidade
 
Scrum - Gerenciamento de Projetos
Scrum - Gerenciamento de ProjetosScrum - Gerenciamento de Projetos
Scrum - Gerenciamento de Projetos
 
Gestao Ágil do Backlog - Taskboards
Gestao Ágil do Backlog - TaskboardsGestao Ágil do Backlog - Taskboards
Gestao Ágil do Backlog - Taskboards
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum Master
 
Scrum - Framework, Competências e Valores (versão community)
Scrum -  Framework, Competências e Valores (versão community)Scrum -  Framework, Competências e Valores (versão community)
Scrum - Framework, Competências e Valores (versão community)
 
Scrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveScrum in a nutshell - business perspective
Scrum in a nutshell - business perspective
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Gestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com ScrumGestão Ágil de Projetos com Scrum
Gestão Ágil de Projetos com Scrum
 
Gerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com ScrumGerenciamento Ágil de Projetos com Scrum
Gerenciamento Ágil de Projetos com Scrum
 
Seminário - Scrum , Kaban e XP
Seminário - Scrum , Kaban e XPSeminário - Scrum , Kaban e XP
Seminário - Scrum , Kaban e XP
 
Gestão Agil de tudo - Retrospectivas
Gestão Agil de tudo - RetrospectivasGestão Agil de tudo - Retrospectivas
Gestão Agil de tudo - Retrospectivas
 
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
Resumo do livro SCRUM a arte de fazer o dobro do trabalho na metade do tempo ...
 
O que é SCRUM
O que é SCRUMO que é SCRUM
O que é SCRUM
 

Semelhante a Visualizando a Dívida Técnica

Mudando a Cultura de uma Organização para o Pensamento Ágil
Mudando a Cultura de umaOrganização para o Pensamento ÁgilMudando a Cultura de umaOrganização para o Pensamento Ágil
Mudando a Cultura de uma Organização para o Pensamento ÁgilLuiz C. Parzianello
 
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
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009Ramon Durães
 
People Centric IT
People Centric ITPeople Centric IT
People Centric ITAldo Pires
 
Gestao Agil de Projetos com Scrum
Gestao Agil de Projetos com ScrumGestao Agil de Projetos com Scrum
Gestao Agil de Projetos com ScrumRafael Ramos
 
Praticas robustas e antifrageis de engenharia de software
Praticas robustas e antifrageis de engenharia de softwarePraticas robustas e antifrageis de engenharia de software
Praticas robustas e antifrageis de engenharia de softwareMarco Mendes
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidaderzauza
 
Complexidade, Transformação digital e organizações adaptativas
Complexidade, Transformação digital e organizações adaptativasComplexidade, Transformação digital e organizações adaptativas
Complexidade, Transformação digital e organizações adaptativasFernando de la Riva
 
Gerenciando Projetos Ágeis usando Scrum
Gerenciando Projetos Ágeis usando ScrumGerenciando Projetos Ágeis usando Scrum
Gerenciando Projetos Ágeis usando ScrumLeandro Cianconi
 
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
 
Introdução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumIntrodução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumJuan Bernabó
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryRodrigo Russo
 
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...GrupoMENTHOR
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Oficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESCOficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESCWildtech
 

Semelhante a Visualizando a Dívida Técnica (20)

Mudando a Cultura de uma Organização para o Pensamento Ágil
Mudando a Cultura de umaOrganização para o Pensamento ÁgilMudando a Cultura de umaOrganização para o Pensamento Ágil
Mudando a Cultura de uma Organização para o Pensamento Ágil
 
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
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009
 
Palestra Gerenciamento de Projetos com Scrum e MPS.Br
Palestra Gerenciamento de Projetos com Scrum e MPS.BrPalestra Gerenciamento de Projetos com Scrum e MPS.Br
Palestra Gerenciamento de Projetos com Scrum e MPS.Br
 
20 anos Manifesto ágil - o que aprendemos?
20 anos Manifesto ágil - o que aprendemos?20 anos Manifesto ágil - o que aprendemos?
20 anos Manifesto ágil - o que aprendemos?
 
People Centric IT
People Centric ITPeople Centric IT
People Centric IT
 
Gestao Agil de Projetos com Scrum
Gestao Agil de Projetos com ScrumGestao Agil de Projetos com Scrum
Gestao Agil de Projetos com Scrum
 
Praticas robustas e antifrageis de engenharia de software
Praticas robustas e antifrageis de engenharia de softwarePraticas robustas e antifrageis de engenharia de software
Praticas robustas e antifrageis de engenharia de software
 
Conceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidadeConceitos e fundamentos sobre testes de software e garantia da qualidade
Conceitos e fundamentos sobre testes de software e garantia da qualidade
 
Apresentação TCC I - IES/SC 2013
Apresentação TCC I - IES/SC 2013Apresentação TCC I - IES/SC 2013
Apresentação TCC I - IES/SC 2013
 
Complexidade, Transformação digital e organizações adaptativas
Complexidade, Transformação digital e organizações adaptativasComplexidade, Transformação digital e organizações adaptativas
Complexidade, Transformação digital e organizações adaptativas
 
Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
 
Gerenciando Projetos Ágeis usando Scrum
Gerenciando Projetos Ágeis usando ScrumGerenciando Projetos Ágeis usando Scrum
Gerenciando Projetos Ágeis usando Scrum
 
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)
 
Introdução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com ScrumIntrodução A Gestão Ágil De Projetos Com Scrum
Introdução A Gestão Ágil De Projetos Com Scrum
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous DeliveryQConRio 2014 - Tutorial Iniciando Com Continuous Delivery
QConRio 2014 - Tutorial Iniciando Com Continuous Delivery
 
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
Palestra sobre a Metodologia para Apoio à Decisão, Gerência e Implantação de ...
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Oficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESCOficina Métodos Ágeis UDESC
Oficina Métodos Ágeis UDESC
 

Visualizando a Dívida Técnica

  • 1. O Poder da Visualização: atacando a Dívida Técnica e promovendo outras mudanças Amanda Varella Cristine Dantas
  • 2.
  • 3. Contexto Gerência de desenvolvimento de soluções de apoio à exploração e produção de petróleo (E&P) 293 pessoas 4 coordenações
  • 4. Contexto Gerência de desenvolvimento de soluções de apoio à exploração e produção de petróleo (E&P) entre 30 40 e times
  • 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
  • 6. Contexto Nós – SMArt – Soluções em Métodos Ágeis e Arquitetura Tecnológica
  • 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)?
  • 14. 1ª iniciativa: Divulgação dos conceitos sobre Dívida Técnica
  • 15. Mãos à obra – Integração Contínua
  • 17. Vamos expandir a visualização!
  • 18. Começamos com o que tínhamos
  • 20. E em uma semana!
  • 23. E uma nova visualização!
  • 25. Outras coisas ainda precisavam ser tratadas...
  • 26. Managing and Visualizing Non-linear Workflows using a Kanban Matrix Gerard Meszaros
  • 27.
  • 28.
  • 29.
  • 32. Estado em cada Sub-Categoria
  • 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
  • 54.
  • 56.
  • 58. Um momento... Nossos chefes compraram esta ideia?
  • 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.
  • 63. E este gráfico foi mostrado muitas vezes....
  • 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
  • 67. Mas não viemos aqui somente para contar uma história de sucesso...
  • 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
  • 75. Resultados 30% de evolução no atendimento aos critérios da Dívida Técnica em 1 ano
  • 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?