SlideShare uma empresa Scribd logo
Praticando o desapego: quando
    ignorar a dívida técnica
Objetivo


  Gerenciar o catálogo de
produtos e categorias de um
   dos maiores sites de e-
   commerce do mundo.
Equipe


●   4 times
    ○ 35 desenvolvedores



    ○   8 engenheiros

    ○   6 gerêntes
Métricas do projeto

linhas de código

558982
Métricas do projeto

                   classes java

                   3096

linhas de código
  558982
Métricas do projeto

                   junit tests

                   2777

linhas de código     classes java
  558982               3096
Métricas do projeto

              tempo de build

                    7h

linhas de código    classes java     classes java
  558982              3096             3096
Pontos de integração do projeto
Pontos de integração do projeto


104 pontos de integração!
Primeira estória

Importar produtos de um feed
Primeira estória

Importar produtos de um feed
      IHateYouForverImpl

● 2272 linhas
● 32 dependências
● getItemStatus (3 setters)
Primeira estória

Importar produtos de um feed
   IHateYouServiceImplTest

● 78 linhas de test setup
Primeira estória

Importar produtos de um feed
      loadAllProducts.xml

● 26 páginas impressas
Primeira estória

Importar produtos de um feed
         ProductDTO.java

● 86 atributos
● + getters / + setters
● equals() => 400 linhas
Vamos jogar tudo fora
  e começa do zero!
Praticando o desapego  quando ignorar a dívida técnica
Tá bom, então vamos
   refatorar tudo!
Pague o aluguel!
Arrumando a casa


●   refatoração intensiva

●   pair programming

●   reclamação
6 semanas mais tarde
Ferrou!


●   um refectoring inocênte
    (especulativo)

●   bugs em produção (custou
    dinheiro)
:(

●   desconfiança entre o time
●   quase cancelamento do
    projeto
●   iteration manager se demitiu
●   tech lead se demitiu
Nova abordagem!
Desapegue-se!
right software > software right

                   +/-

    software certo > fazer software certo
Código legado é código que
         funciona!
Jogue os "gatos" pra debaixo do tapete

●   hierarquias e classes paralelas
●   empacote em façades
:)


●   mvp em nível de
    funcionalidade

●   divide and conquer
Então, quando vale a pena refatorar?


●   não dá pra medir com
    precisão
:)


●   conheça suas ferramentas

●   controle de versão
Oo"


●   fazer tdd?...
Oo"


●   fazer tdd?... NÃO!
Conclusão
será que esse sucesso é fruto
      do esforço inicial?
sim




mas não

Mais conteúdo relacionado

PDF
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
PDF
A Jornada para o Continuous Delivery - Scrum Gathering Rio 2016
PDF
Testes em todos os niveis de planejamento
PPTX
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
PPTX
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
PDF
Facilitando o desenvolvimento orientado a testes em aplicações PHP
PDF
Desenvolvedor no controle utilizando tdd
PPTX
Continuous Delivery - versão estendida :)
3 noções básicas para automação de testes efetivos - Taíse Dias da Silva
A Jornada para o Continuous Delivery - Scrum Gathering Rio 2016
Testes em todos os niveis de planejamento
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
[Uff] Continuous Delivery: Entrega Contínua de Software de Valor
Facilitando o desenvolvimento orientado a testes em aplicações PHP
Desenvolvedor no controle utilizando tdd
Continuous Delivery - versão estendida :)

Mais procurados (6)

PPT
PDF
MTC2015-Automatizar_testes_efetivos
PPTX
[Lady talks]Continuous Delivery
PDF
E so mais um campinho na tela
PDF
Por quê você deve utilizar TDD?
PDF
AutomaçãoWeb - Chaordic Academy
MTC2015-Automatizar_testes_efetivos
[Lady talks]Continuous Delivery
E so mais um campinho na tela
Por quê você deve utilizar TDD?
AutomaçãoWeb - Chaordic Academy
Anúncio

Destaque (20)

PPSX
Aprendizaje colaborativo
PPTX
calentamiento global
PDF
Fuvest1998 2fase (1) parte_001
PPTX
Herramienta gratuita[1]
PPTX
Herramienta gratuita[1]
PPT
Rotación del auditor y la importancia de llevar una auditoria
PDF
Unicamp2007 2fase 3dia_parte_001
PPTX
Identidades trigonométricas
PPT
El paro respiratorio proyecto de física
PDF
Supernova (Derrigorrezko Bigarren hezkuntza / Batxilergoa / Izar-eskola / Pam...
PPTX
Televisão Nova tem 13 Letras
PPTX
Potenciación de números enteros
PPTX
Ppoint britez nancy
PPTX
Iván patricio hurtado rodríguez
PPTX
Slideshare
PPTX
html
PDF
Novo codigo civil
PPTX
PDF
Cartilha da mulher_presa_1_portugues_4
Aprendizaje colaborativo
calentamiento global
Fuvest1998 2fase (1) parte_001
Herramienta gratuita[1]
Herramienta gratuita[1]
Rotación del auditor y la importancia de llevar una auditoria
Unicamp2007 2fase 3dia_parte_001
Identidades trigonométricas
El paro respiratorio proyecto de física
Supernova (Derrigorrezko Bigarren hezkuntza / Batxilergoa / Izar-eskola / Pam...
Televisão Nova tem 13 Letras
Potenciación de números enteros
Ppoint britez nancy
Iván patricio hurtado rodríguez
Slideshare
html
Novo codigo civil
Cartilha da mulher_presa_1_portugues_4
Anúncio

Semelhante a Praticando o desapego quando ignorar a dívida técnica (20)

KEY
Praticando o Desapego: quando ignorar a dívida técnica
PDF
Continuous Delivery e DevOps
PDF
Gestão de Projeto de Desenvolvimento Agil(XP)
PPTX
Maven 3, Sonar e Hudson
PPTX
Maven em 10 minutos
PDF
BaixadaTech 2012 - Qualidade de Software
PDF
Padrões de deploy para devops e entrega contínua - DevDay 2014
PDF
Netbeans 6.7: a única IDE que você precisa!
PDF
Integração Contínua
PPTX
Métricas de Código
PDF
Clean Code
PPSX
Apresentação TCC-pós
PPTX
Code Smells
PDF
TDC2016POA | Trilha Web - Front-end that scales
PDF
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
PDF
Simtecce 2011 Integracao Continua
 
ODP
Criando Projetos Open Source
KEY
Take It To The Next Level
PPTX
Menos teste e mais qualidade - como equilibrar essa equação?
PDF
poster
Praticando o Desapego: quando ignorar a dívida técnica
Continuous Delivery e DevOps
Gestão de Projeto de Desenvolvimento Agil(XP)
Maven 3, Sonar e Hudson
Maven em 10 minutos
BaixadaTech 2012 - Qualidade de Software
Padrões de deploy para devops e entrega contínua - DevDay 2014
Netbeans 6.7: a única IDE que você precisa!
Integração Contínua
Métricas de Código
Clean Code
Apresentação TCC-pós
Code Smells
TDC2016POA | Trilha Web - Front-end that scales
Suporte a Open Source no Oracle WebLogic 12c - Integração com Maven & Hudson
Simtecce 2011 Integracao Continua
 
Criando Projetos Open Source
Take It To The Next Level
Menos teste e mais qualidade - como equilibrar essa equação?
poster

Último (20)

PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Aula sobre desenvolvimento de aplicativos
PDF
Apple Pippin Uma breve introdução. - David Glotz
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
tutor eletronico para seguranca de bebes e criancas
PPTX
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Émile Durkheim slide elaborado muito bom
Aula sobre desenvolvimento de aplicativos
Apple Pippin Uma breve introdução. - David Glotz
COBITxITIL-Entenda as diferença em uso governança TI
Curso de Java 9 - (Threads) Multitarefas.pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
tutor eletronico para seguranca de bebes e criancas
SISTEMA DE INFORMAÇÃO EM SAÚDE_UEPA.pptx
Aula 18 - Manipulacao De Arquivos python
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx

Praticando o desapego quando ignorar a dívida técnica