be agile, stay agile

Post on 05-Jul-2015

235 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

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

Be Agile, Stay Agile

Métricas, Feedback, Refactoring e Agile

@rpepato

Obrigado!

Projetos “green-field”Projetos “legados”

AGILE

AGILE

+ 50 % dos profissionais do mercado

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

Manutenção de Software “Legado”

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

air

Toda ajuda é bem vinda

O que é código legado?

“Legacy code is code without tests”

O que é código bom?

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 ?

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

Como e onde aplicar essas técnicas naquele lixo?

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

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

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

WMC• Replace conditional with

polymorphism• Replace Method of Method

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

DIT

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

CBO

•Move Method• Extract Class•Moving Features Between

Objects• Remove Middle Man• ...

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

git :)

extract metrics

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?

@rpepato

:)

top related