SlideShare a Scribd company logo
1 of 12
O seu código fede e você nem
sabia. Ou sabia, mas não sabia o
quanto fede
Code Smells
• Definição: sintoma de que algo no código
pode estar errado.
• Geralmente indica a necessidade de um
refactoring ou de alteração estrutural da
aplicação.
Divida técnica - sintomas
• Perda de satisfação do cliente quanto a
primeira entrega
• Demora para entregar o software
• Atrasos nas entregas
• Erros de estimativas com frequencia
• Entrega de software com bug em
produção
Divida técnica - sintomas
• Projeto engessado
• Time frustrado
• Cobertura de testes fraca
• Suite de testes que demora para ser
executada
• //TODO E //FIXME
• Problemas de comunicação na equipe
Dívida técnica
“A dívida técnica é similar à dívida financeira. Assim como
a dívida financeira, a 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,
ganhamos reduzindo os juros no futuro.”
Martin Fowler
Como medir ?
• Sugestões?
Sonar
• http://www.sonarsource.org/
Dois indicadores simples
• Complexidade ciclomatica (condicional)
– mede a quantidade de caminhos de execução
independentes a partir de um código fonte
• NCSS
– Determina o numero de linhas que um
metodo deve ter
• Dívida técnica
• Indice de qualidade do projeto
• Gráfico Toxicidade
• TimeLine
• Widget Lab
• Tabela de Métricas
• SCM Stats
• Posso vincular com o Eclipse
• Sugestão de leitura -
http://metrics.sourceforge.net/
Dinâmica do dois chapéus: Kent
Beck
Adicionar Funcionalidade
Não altera código pré existente
Refatorar
Não acrescenta funcionalidade

More Related Content

Similar to O seu código fede e você nem sabia

Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
elliando dias
 

Similar to O seu código fede e você nem sabia (20)

Dívida técnica por gustavo cocina
Dívida técnica por gustavo cocinaDívida técnica por gustavo cocina
Dívida técnica por gustavo cocina
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Dívida Técnica
Dívida TécnicaDívida Técnica
Dívida Técnica
 
DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!DevSecOps: Não é simples, mas é possível!
DevSecOps: Não é simples, mas é possível!
 
O que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBMO que é DevOps? Introdução à abordagem pela IBM
O que é DevOps? Introdução à abordagem pela IBM
 
Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?Muita gestão e pouca engenharia, por onde anda o XP?
Muita gestão e pouca engenharia, por onde anda o XP?
 
Código Limpo
Código LimpoCódigo Limpo
Código Limpo
 
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
PHP Conference 2020 - A eterna luta: compatibilidade retroativa vs. dívida té...
 
Métricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetosMétricas de software: modelos de contratação e planejamento de projetos
Métricas de software: modelos de contratação e planejamento de projetos
 
Tdc continuous testing
Tdc   continuous testing Tdc   continuous testing
Tdc continuous testing
 
Debito tecnico
Debito tecnicoDebito tecnico
Debito tecnico
 
Implantação Software Contas a Receber
Implantação Software Contas a ReceberImplantação Software Contas a Receber
Implantação Software Contas a Receber
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério NizzolaTdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
Tdc Future 2021 - simples soluções grandes resultados - Márcio Rogério Nizzola
 
Novo Celular
Novo CelularNovo Celular
Novo Celular
 
Kanban
KanbanKanban
Kanban
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 
In-IT Status Report 20080616
In-IT Status Report 20080616In-IT Status Report 20080616
In-IT Status Report 20080616
 
Atividade 2.pptx
Atividade 2.pptxAtividade 2.pptx
Atividade 2.pptx
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 

More from Wagner Mendes Voltz Fusca

More from Wagner Mendes Voltz Fusca (20)

Como Acabar Com Seu Débito Técnico - Amcom
Como Acabar Com Seu Débito Técnico - AmcomComo Acabar Com Seu Débito Técnico - Amcom
Como Acabar Com Seu Débito Técnico - Amcom
 
Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020
 
Seu ágil vai falhar!
Seu ágil vai falhar!Seu ágil vai falhar!
Seu ágil vai falhar!
 
Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020
 
Management day PUCPR - Agile coach
Management day PUCPR - Agile coachManagement day PUCPR - Agile coach
Management day PUCPR - Agile coach
 
Management 3.0 - Redefinindo liderança: Gerenciando o sistema e não as pessoas
Management 3.0 - Redefinindo liderança: Gerenciando o sistema e não as pessoasManagement 3.0 - Redefinindo liderança: Gerenciando o sistema e não as pessoas
Management 3.0 - Redefinindo liderança: Gerenciando o sistema e não as pessoas
 
Como acabar com seu débito técnico - Agile Brazil 2019
Como acabar com seu débito técnico - Agile Brazil 2019Como acabar com seu débito técnico - Agile Brazil 2019
Como acabar com seu débito técnico - Agile Brazil 2019
 
Como acabar com seu débito técnico - TDC SP 2019 - Trilha XP
Como acabar com seu débito técnico - TDC SP 2019 - Trilha XPComo acabar com seu débito técnico - TDC SP 2019 - Trilha XP
Como acabar com seu débito técnico - TDC SP 2019 - Trilha XP
 
Coragem um valor ágil (talvez esquecido)
Coragem um valor ágil (talvez esquecido)Coragem um valor ágil (talvez esquecido)
Coragem um valor ágil (talvez esquecido)
 
As 5 disfunções da minha melhor equipe
As 5 disfunções da minha melhor equipeAs 5 disfunções da minha melhor equipe
As 5 disfunções da minha melhor equipe
 
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
Cornucópia – um agile game para facilitar a codificação segura - Agile Trends...
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba ConferenceAgilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba Conference
 
Metodologia ágil - VIII Semana das Engenharias - Unicesumar
Metodologia ágil - VIII Semana das Engenharias - UnicesumarMetodologia ágil - VIII Semana das Engenharias - Unicesumar
Metodologia ágil - VIII Semana das Engenharias - Unicesumar
 
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
Agilidade NÃO é para desenvolvedores! - Agile Brazil 2018
 
OWASP Cornucopia - Scrum Gathering Rio 2018
 OWASP Cornucopia - Scrum Gathering Rio 2018 OWASP Cornucopia - Scrum Gathering Rio 2018
OWASP Cornucopia - Scrum Gathering Rio 2018
 
Cornucopia - Um game para facilitar o assunto codificação segura
Cornucopia - Um game para facilitar o assunto codificação segura Cornucopia - Um game para facilitar o assunto codificação segura
Cornucopia - Um game para facilitar o assunto codificação segura
 
Tips to improve your code review
Tips to improve your code reviewTips to improve your code review
Tips to improve your code review
 
Agilidade é para desenvolvedores? TDC Florianópolis
Agilidade é para desenvolvedores? TDC FlorianópolisAgilidade é para desenvolvedores? TDC Florianópolis
Agilidade é para desenvolvedores? TDC Florianópolis
 
Seu código fede e você nem sabia
Seu código fede e você nem sabiaSeu código fede e você nem sabia
Seu código fede e você nem sabia
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da Agilidade
 

O seu código fede e você nem sabia

  • 1. O seu código fede e você nem sabia. Ou sabia, mas não sabia o quanto fede
  • 2. Code Smells • Definição: sintoma de que algo no código pode estar errado. • Geralmente indica a necessidade de um refactoring ou de alteração estrutural da aplicação.
  • 3. Divida técnica - sintomas • Perda de satisfação do cliente quanto a primeira entrega • Demora para entregar o software • Atrasos nas entregas • Erros de estimativas com frequencia • Entrega de software com bug em produção
  • 4. Divida técnica - sintomas • Projeto engessado • Time frustrado • Cobertura de testes fraca • Suite de testes que demora para ser executada • //TODO E //FIXME • Problemas de comunicação na equipe
  • 5. Dívida técnica “A dívida técnica é similar à dívida financeira. Assim como a dívida financeira, a 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, ganhamos reduzindo os juros no futuro.” Martin Fowler
  • 6. Como medir ? • Sugestões?
  • 8.
  • 9. Dois indicadores simples • Complexidade ciclomatica (condicional) – mede a quantidade de caminhos de execução independentes a partir de um código fonte • NCSS – Determina o numero de linhas que um metodo deve ter
  • 10. • Dívida técnica • Indice de qualidade do projeto • Gráfico Toxicidade • TimeLine • Widget Lab • Tabela de Métricas • SCM Stats
  • 11. • Posso vincular com o Eclipse • Sugestão de leitura - http://metrics.sourceforge.net/
  • 12. Dinâmica do dois chapéus: Kent Beck Adicionar Funcionalidade Não altera código pré existente Refatorar Não acrescenta funcionalidade