be agile, stay agile

36
Be Agile, Stay Agile Métricas, Feedback, Refactoring e Agile

Upload: roberto-pepato

Post on 05-Jul-2015

234 views

Category:

Technology


3 download

DESCRIPTION

Apresentação realizada em 13/09 na conferência AgileVale em São José dos Campos. Temas abordados: Projetos green-field x manutenção de software, agilidade, métricas de produto de software métricas como insight para refatoração

TRANSCRIPT

Page 1: Be Agile, Stay Agile

Be Agile, Stay Agile

Métricas, Feedback, Refactoring e Agile

Page 2: Be Agile, Stay Agile

@rpepato

Page 3: Be Agile, Stay Agile

Obrigado!

Page 4: Be Agile, Stay Agile

Projetos “green-field”Projetos “legados”

AGILE

AGILE

Page 5: Be Agile, Stay Agile
Page 6: Be Agile, Stay Agile
Page 7: Be Agile, Stay Agile

+ 50 % dos profissionais do mercado

Entre 40% e 90% da $$ de um projeto

Manutenção de Software “Legado”

Page 8: Be Agile, Stay Agile
Page 9: Be Agile, Stay Agile
Page 10: Be Agile, Stay Agile
Page 11: Be Agile, Stay Agile

D o m a i n D r i v e n D e s i g nDesp

air

Page 12: Be Agile, Stay Agile
Page 13: Be Agile, Stay Agile

Toda ajuda é bem vinda

Page 14: Be Agile, Stay Agile

O que é código legado?

Page 15: Be Agile, Stay Agile

“Legacy code is code without tests”

Page 16: Be Agile, Stay Agile
Page 17: Be Agile, Stay Agile

O que é código bom?

Page 18: Be Agile, Stay Agile

O que é código bom ?

Bom em quê ?

Qual é tua preocupação?

Não dá pra ser bom em tudo

Bom, talvez dê...

... mas vale a grana ?

Page 19: Be Agile, Stay Agile

+100 técnicas e vários cenários

Page 20: Be Agile, Stay Agile

Como e onde aplicar essas técnicas naquele lixo?

Page 21: Be Agile, Stay Agile

1. Defina seu objetivo

2. Pergunte-se como avaliar

3. Identifique e selecione métricas

4. Automatize a coleta

5. Observe os resultados

6. PENSE

7. Refatore

8. Começe de novoDeci

sões

Cons

icen

tes

Page 22: Be Agile, Stay Agile
Page 23: Be Agile, Stay Agile
Page 24: Be Agile, Stay Agile
Page 25: Be Agile, Stay Agile

1. Defina seu objetivo

2. Pergunte-se como avaliar

3. Identifique e selecione métricas

4. Automatize a coleta

5. Observe os resultados

6. PENSE

7. Refatore

8. Começe de novoDeci

sões

Cons

icen

tes

Page 27: Be Agile, Stay Agile

1. WMC - Weighted Methods Per Class

2. DIT - Depth Of Inheritance Tree

3. CBO - Coupling Between Objects

4. LCOM - Lack of Cohesion In Methods

5. NOC - Number of Children

6. RFC - Response for a Class

Page 28: Be Agile, Stay Agile

WMC• Replace conditional with

polymorphism• Replace Method of Method

Object• Substitute Algorithm• Extract Method•Move Method• Extract Class• ...

Page 29: Be Agile, Stay Agile

DIT

• Replace Subclass With Fields• Extract Hierarchy• ...

Page 30: Be Agile, Stay Agile

CBO

•Move Method• Extract Class•Moving Features Between

Objects• Remove Middle Man• ...

Page 31: Be Agile, Stay Agile

LCOM•Move Field• Encapsulate Field• Encapsulate Collection• ...

Page 32: Be Agile, Stay Agile

git :)

extract metrics

Page 33: Be Agile, Stay Agile
Page 34: Be Agile, Stay Agile
Page 35: Be Agile, Stay Agile

1. Agile - Green Field e Legado

2. Por quê nos importarmos com legado?

3. Por quê e como identificar o que medir?

4. Automatizando a coleta

5. Análise, reflexão e refactoring

O que vimos?

Page 36: Be Agile, Stay Agile

@rpepato

:)