SlideShare a Scribd company logo
1 of 36
Download to read offline
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 n
Despair
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 novo
DecisõesConsicentes
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 novo
DecisõesConsicentes
Chidamber &
Kemerer
C&K Metrics
http://faculty.salisbury.edu/~stlauterburg/cosc425/
metricforood_chidamberkemerer94.pdf
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
:)

More Related Content

Viewers also liked

Adding where to your ruby apps
Adding where to your ruby appsAdding where to your ruby apps
Adding where to your ruby appsRoberto Pepato
 
METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...
METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...
METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...Roberto Pepato
 
Adding where to your ruby apps lt - (q con)
Adding where to your ruby apps   lt -  (q con)Adding where to your ruby apps   lt -  (q con)
Adding where to your ruby apps lt - (q con)Roberto Pepato
 
An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...Roberto Pepato
 
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...Joberto Diniz
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Viewers also liked (7)

Adding where to your ruby apps
Adding where to your ruby appsAdding where to your ruby apps
Adding where to your ruby apps
 
METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...
METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...
METACOM - Um Método para Análise de Correlação entre Métricas de Produto de S...
 
Adding where to your ruby apps lt - (q con)
Adding where to your ruby apps   lt -  (q con)Adding where to your ruby apps   lt -  (q con)
Adding where to your ruby apps lt - (q con)
 
An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...
 
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
A Importância do Código Limpo na Perspectiva dos Desenvolvedores e Empresas d...
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similar to Be Agile, Stay Agile

Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos ÁgeisCurso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeisagileembassy
 
Softwares de apoio ao desenvolvimento 2012
Softwares de apoio ao desenvolvimento   2012Softwares de apoio ao desenvolvimento   2012
Softwares de apoio ao desenvolvimento 2012Diogo Winck
 
O Programador Pragmático
O Programador PragmáticoO Programador Pragmático
O Programador PragmáticoTadeu Marinho
 
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
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeWagner Mendes Voltz Fusca
 
[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016GUTS-RS
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Gabriel Rubens
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionLeonardo Molinari
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionLeonardo Molinari
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionLeonardo Molinari
 
Tdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdfTdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdfMinistry of Data
 
Scrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveScrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveMarcos Alves
 
Palestra sobre Métricas para Performance
Palestra sobre Métricas para PerformancePalestra sobre Métricas para Performance
Palestra sobre Métricas para PerformanceRicardo T. Dias
 
Comece certo
Comece certo Comece certo
Comece certo Sebrae-PA
 

Similar to Be Agile, Stay Agile (20)

Imaginando Apps
Imaginando AppsImaginando Apps
Imaginando Apps
 
Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos ÁgeisCurso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
Curso de Pós-Graduação FUCAPI - Módulo: Métodos Ágeis
 
Softwares de apoio ao desenvolvimento 2012
Softwares de apoio ao desenvolvimento   2012Softwares de apoio ao desenvolvimento   2012
Softwares de apoio ao desenvolvimento 2012
 
O Programador Pragmático
O Programador PragmáticoO Programador Pragmático
O Programador Pragmático
 
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 ...
 
Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...
Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...
Semana de Comércio Exterior e Logística - Aplicação de ferramentas de melhori...
 
Lean startup
Lean startupLean startup
Lean startup
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da Agilidade
 
Estratégias, Riscos e Modelagem Empresarial
Estratégias, Riscos e Modelagem EmpresarialEstratégias, Riscos e Modelagem Empresarial
Estratégias, Riscos e Modelagem Empresarial
 
[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016[GUTS-RS] Tendências de Teste de Software para 2016
[GUTS-RS] Tendências de Teste de Software para 2016
 
Clean Coder
Clean CoderClean Coder
Clean Coder
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final Version
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final Version
 
At Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final VersionAt Ma Qualidade Molinari V11 Final Version
At Ma Qualidade Molinari V11 Final Version
 
Tdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdfTdc2015 bigdata-mpias-final-pdf
Tdc2015 bigdata-mpias-final-pdf
 
Scrum in a nutshell - business perspective
Scrum in a nutshell - business perspectiveScrum in a nutshell - business perspective
Scrum in a nutshell - business perspective
 
Palestra sobre Métricas para Performance
Palestra sobre Métricas para PerformancePalestra sobre Métricas para Performance
Palestra sobre Métricas para Performance
 
Cultura Lean Agile Weekend
Cultura Lean Agile WeekendCultura Lean Agile Weekend
Cultura Lean Agile Weekend
 
Comece certo
Comece certo Comece certo
Comece certo
 

Be Agile, Stay Agile