Rio Agile - O Poder da Visualização: atacando a Dívida Técnica e promovendo outras mudanças

Preview:

DESCRIPTION

Apresentação realizada na edição de 2013 do Rio Agile

Citation preview

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