SlideShare une entreprise Scribd logo
1  sur  141
DívidaTécnica by @freire_da_silva alexandre.freire@locaweb.com.br
O quevairolarnessapalestra? Leis Metáforas Balas de prata Histórias Sintomas Causas Estratégias Práticas Padrões Anti-padrões Recomendações de livros
METÁFORA the long lost XP practice
CoC e TCO estão ligados
I O U $$$  SWITCH (key) { case ‘a’: printf(”a”) case ‘b’:… }
METÁFORA Dívidairresponsável 	- propositalounão Dívidaconsciente - empréstimo do carro 	- dívida de cartão de créditooucheque especial  	- empréstimo da casa
METÁFORA lost in translation… débitonãoédívida!
vs
“MEUS TESTES ESTÃO RODANDO.” TESTANDO!
//TODO: refatoraraqui //FIXME: issonãodeveria //estarduplicado //WTF! PERIGO!
A incrívelcapacidade de análise dos sereshumanos
?
SISTEMAS COMPLEXOS ADAPTATIVOS
+
O ministério da agilidadeadverte: cuidado com seuuso de métricas
Big Visible Charts By Matthew Bisanz
Nãovamosnospreocupar com uma das causas de dívidatécnica: Falta de um processoclaro de desenvolvimento
kanban análise desenvolvimento aceitação produção
análise desenvolvimento aceitação produção
história: a dívidadesconhecida do e-mail
Nãosabiamosqual era a dívida
Temosproblemas Acumulo de dívidaspequenas
Um novo fornecedorofereceumasolução
Centenas de milhares de R$
Equipe junior parao novo webmail
Continuamos com problemas
Novo responsável
No final osproblemasquetinhamoseramrazoáveis…
… aindaporcima a nova soluçãonãoaguentou
Pagamos a dívida do antigosistema
Descontinuamos a nova solução
CAUSAS
FALHASNACOMUNICAÇÃO
FALHASNACOLABORAÇÃO
EmRetrospectiva
BAD MANAGMENT
CALCULE e MOSTRE sua DÍVIDA
http://www.sonarsource.org/
https://wiki.jenkins-ci.org/display/JENKINS/Task+Scanner+Plugin
DOH!
Lei de Parkinson O trabalhoexpandeparaocuparo tempo reservadoparasuaexecução
FOLGA + refactoring sprint
Time completo
Lei de Murphy
história: falência do SI
SistemaInterno (ou central)
Nasceem 1998 como um banco access pelasmãos do nossofundador
Passaporváriasoutrasmãos…
… nãoconheciamos as boas práticas
lib_fichao2.asp
Big Ball of Mud
Renovamosdomíniossemosclientespedirem
Centenas de milhares de R$
Nãoconseguimosentregaro chargeback a tempo
Centenas de milhares de R$
Falência
Tem quepagar.InvestimentoquaseR$1milhão
Novo sistema, mas…
Atentos a dívida Lei de Conway Camadas anti-corrupção Desacoplamento incremental Virada suave ereversível
+ refactoring to patterns
análise desenvolvimento aceitação produção
Story Maps
CFD
Use Case
Validated Learning
análise desenvolvimento aceitação produção
Seus testes podem ser dívida
Acúmulo de wait()
Scenario: Tooltip view	Given I selected the "lite" plan	When I move mouse over "tooltip”	Then I should see tooltip content	And I move mouse out "tooltip”	And I should not see tooltip content
análise desenvolvimento aceitação produção
Muitasmétricasnesseespaço Linhas de código Tamanho do método Tamanho da classe Complexidadeciclomática Métodosporclasse Acoplamento entre objetos Duplicação Atividade do repositório Cobertura dos testes Testabilidade Razão de linhas de testeporlinhas de código
TRACKER The long lost XP role
Code Smells – The bloaters Long Method Large Class Primitive Obsession Long Parameter List DataClumps
Code Smells – The OO abusers Switch Statements Temporary Field Refused Bequest Alternative Classes with Different Interfaces
Code Smells – The change preventers Divergent Change Shotgun Surgery Parallel Inheritance Hierarchies
Code Smells – The Dispensables Lazy class Data class Duplicate Code Dead Code Speculative Generality
Code Smells – The Couplers Feature Envy Inappropriate Intimacy Message Chains Middle Man
http://metric-fu.rubyforge.org/
http://metric-fu.rubyforge.org/
http://metric-fu.rubyforge.org/
Toxicidade - no excel ;-)
http://findbugs.sourceforge.net/
Turbulência
Tree map  de classes
Pirâmede de tamanhoecomplexidade
Testes/Código
Complexidade do design
Diagrama de sequência
Code City
Matriz de dependências
Últimahistória: WebStore
Time 2 Market
Use FLOSS paraganharvantagem
Entrandonadívida: escalando com links simbólicos
80 clientes / servidor
12 servidores
Custocliente: R$150
O Marketing vaipra TV
Just-in-time parapagar a dívida
Midleware + Cloud
Custocliente: R$ 8 (edescendo)
Sempreexistem 3 opções
Gambiarranãoéopção
Não se endividar
Divida com juros
Dividasemjuros
O futurohoje Fuzzy tests Injeçãoproposital de defeitos Crawlers mal intencionados Self-healing systems Algoritmosgenéticosqueconsertam bugs
Referências http://c2.com/cgi/wiki?TechnicalDebt http://blog.csdn.net/firecoder/article/details/5264031 http://petdance.com/perl/technical-debt/ http://www.construx.com/Page.aspx?cid=2801 http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a-technical-debt http://martinfowler.com/bliki/TechnicalDebtQuadrant.html http://www.jimhighsmith.com/2010/10/19/the-financial-implications-of-technical-debt/ http://www.startuplessonslearned.com/2009/07/embrace-technical-debt.html http://requirements.seilevel.com/blog/2011/03/software-requirements-impact-on-technical-debt-–-part-1.html http://martinfowler.com/bliki/TechnicalDebtQuadrant.html http://www.slideshare.net/dtsato/managing-your-technical-debt-agilebrazil-2011 http://www.slideshare.net/dwildt/da-mtrica-a-diverso-como-as-mtricas-no-desenvolvimento-de-software-podem-ajudar-times-a-se-divertirem http://www.infoq.com/news/2010/03/monetizing-technical-debt http://www.soberit.hut.fi/mmantyla/badcodesmellstaxonomy.htm http://pyxis-tech.com/en/expertise/refactoring http://akitaonrails.com/2008/12/18/tradu-o-d-vida-t-cnica http://www.infoq.com/presentations/Software-Quality-You-Know-It-when-You-See-It http://programmingtour.blogspot.com/2011/03/turbulence-measuring-turbulent-nature.html

Contenu connexe

Similaire à Dívida técnica: causas, efeitos e estratégias de pagamento

Qualidade - pensando fora da caixa
Qualidade - pensando fora da caixaQualidade - pensando fora da caixa
Qualidade - pensando fora da caixaJorge Diz
 
[MTC 2021] Conversa sobre shift left - Douglas Cardoso
[MTC 2021] Conversa sobre shift left - Douglas Cardoso[MTC 2021] Conversa sobre shift left - Douglas Cardoso
[MTC 2021] Conversa sobre shift left - Douglas Cardosominastestingconference
 
Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Elaine Naomi
 
Trilha de testes 2010 - Bluesoft Labs
Trilha de testes 2010 - Bluesoft LabsTrilha de testes 2010 - Bluesoft Labs
Trilha de testes 2010 - Bluesoft LabsRicardo Machado
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceLuca Bastos
 
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...tdc-globalcode
 
Introdução - Visão Computacional
Introdução - Visão ComputacionalIntrodução - Visão Computacional
Introdução - Visão ComputacionalHemerson Pistori
 
Inteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações  - A experiência do TECPARInteligência Artificial e suas aplicações  - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPARBruno Campagnolo
 
Representação do conhecimento (rc)
Representação do conhecimento (rc)Representação do conhecimento (rc)
Representação do conhecimento (rc)iaudesc
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Softwareandrevdrodrigues
 
Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...
Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...
Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...Amazon Web Services LATAM
 
Aspectos profissionais 3pontos
Aspectos profissionais 3pontosAspectos profissionais 3pontos
Aspectos profissionais 3pontosMiguel Alho
 
Do legado ao DDD
Do legado ao DDDDo legado ao DDD
Do legado ao DDDLeonn Leite
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoPaulo Morgado
 
Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoAndré Curvello
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticasFrancke Peixoto
 
Desenho Organizacional Em NegóCios Inovadores
Desenho Organizacional Em NegóCios InovadoresDesenho Organizacional Em NegóCios Inovadores
Desenho Organizacional Em NegóCios InovadoresLuiz Bersou
 

Similaire à Dívida técnica: causas, efeitos e estratégias de pagamento (20)

Qualidade - pensando fora da caixa
Qualidade - pensando fora da caixaQualidade - pensando fora da caixa
Qualidade - pensando fora da caixa
 
[MTC 2021] Conversa sobre shift left - Douglas Cardoso
[MTC 2021] Conversa sobre shift left - Douglas Cardoso[MTC 2021] Conversa sobre shift left - Douglas Cardoso
[MTC 2021] Conversa sobre shift left - Douglas Cardoso
 
Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?Code Smells: o que eles dizem sobre seu código?
Code Smells: o que eles dizem sobre seu código?
 
Trilha de testes 2010 - Bluesoft Labs
Trilha de testes 2010 - Bluesoft LabsTrilha de testes 2010 - Bluesoft Labs
Trilha de testes 2010 - Bluesoft Labs
 
Machine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ceMachine learning java ce conference 2012 - fortaleza ce
Machine learning java ce conference 2012 - fortaleza ce
 
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
TDC2018SP | Trilha Comp Cognitiva - Quer ter um bom chatbot ? Entao vamos com...
 
Código limpo
Código limpoCódigo limpo
Código limpo
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Introdução - Visão Computacional
Introdução - Visão ComputacionalIntrodução - Visão Computacional
Introdução - Visão Computacional
 
Inteligência Artificial e suas aplicações - A experiência do TECPAR
Inteligência Artificial e suas aplicações  - A experiência do TECPARInteligência Artificial e suas aplicações  - A experiência do TECPAR
Inteligência Artificial e suas aplicações - A experiência do TECPAR
 
Representação do conhecimento (rc)
Representação do conhecimento (rc)Representação do conhecimento (rc)
Representação do conhecimento (rc)
 
Os Rumos do Teste de Software
Os Rumos do Teste de SoftwareOs Rumos do Teste de Software
Os Rumos do Teste de Software
 
Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...
Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...
Construindo+uma+solução+de+busca+escalável+na+aws+com+amazon+cloud search+...
 
Aspectos profissionais 3pontos
Aspectos profissionais 3pontosAspectos profissionais 3pontos
Aspectos profissionais 3pontos
 
Java aula 02
Java aula 02Java aula 02
Java aula 02
 
Do legado ao DDD
Do legado ao DDDDo legado ao DDD
Do legado ao DDD
 
As Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPontoAs Novidades Do C# 4.0 - NetPonto
As Novidades Do C# 4.0 - NetPonto
 
Sistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento AssimétricoSistemas Embarcados Híbridos - Processamento Assimétrico
Sistemas Embarcados Híbridos - Processamento Assimétrico
 
Javascript - boas práticas
Javascript - boas práticasJavascript - boas práticas
Javascript - boas práticas
 
Desenho Organizacional Em NegóCios Inovadores
Desenho Organizacional Em NegóCios InovadoresDesenho Organizacional Em NegóCios Inovadores
Desenho Organizacional Em NegóCios Inovadores
 

Plus de alexandre freire

Making People Awesome @Nubank TDC Floripa 2019
Making People Awesome @Nubank TDC Floripa 2019Making People Awesome @Nubank TDC Floripa 2019
Making People Awesome @Nubank TDC Floripa 2019alexandre freire
 
Technical Product Management at Nubank
Technical Product Management at NubankTechnical Product Management at Nubank
Technical Product Management at Nubankalexandre freire
 
Making People Awesome TDC POA 2018 - Alexandre Freire
Making People Awesome   TDC POA 2018 - Alexandre FreireMaking People Awesome   TDC POA 2018 - Alexandre Freire
Making People Awesome TDC POA 2018 - Alexandre Freirealexandre freire
 
Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018alexandre freire
 
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?alexandre freire
 
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...alexandre freire
 
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015alexandre freire
 
Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014alexandre freire
 
Tech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelênciaTech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelênciaalexandre freire
 
What NOT to test in your project
What NOT to test in your projectWhat NOT to test in your project
What NOT to test in your projectalexandre freire
 
Como não testar seu projeto de software
Como não testar seu projeto de softwareComo não testar seu projeto de software
Como não testar seu projeto de softwarealexandre freire
 
Ágil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira ÁgilÁgil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira Ágilalexandre freire
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadoresalexandre freire
 
surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle alexandre freire
 
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011alexandre freire
 

Plus de alexandre freire (17)

Making People Awesome @Nubank TDC Floripa 2019
Making People Awesome @Nubank TDC Floripa 2019Making People Awesome @Nubank TDC Floripa 2019
Making People Awesome @Nubank TDC Floripa 2019
 
Technical Product Management at Nubank
Technical Product Management at NubankTechnical Product Management at Nubank
Technical Product Management at Nubank
 
Making People Awesome TDC POA 2018 - Alexandre Freire
Making People Awesome   TDC POA 2018 - Alexandre FreireMaking People Awesome   TDC POA 2018 - Alexandre Freire
Making People Awesome TDC POA 2018 - Alexandre Freire
 
Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018Modern Agile and the Future of SW Development GUMARS 2018
Modern Agile and the Future of SW Development GUMARS 2018
 
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?Deploy Contínuo de Software Legado: Loucura ou Genialidade?
Deploy Contínuo de Software Legado: Loucura ou Genialidade?
 
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
Como influenciar sua equipe para ser excelente com medo, culpa, vergonha, pun...
 
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
Otimizando sua Máquina Cultural na busca pela excelência QCon SP 2015
 
Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014Como NÃO testar o seu projeto de Software. DevDay 2014
Como NÃO testar o seu projeto de Software. DevDay 2014
 
Agile #FAIL QCon 2013
Agile #FAIL QCon 2013Agile #FAIL QCon 2013
Agile #FAIL QCon 2013
 
Tech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelênciaTech Safety - um caminho inesperado à excelência
Tech Safety - um caminho inesperado à excelência
 
What NOT to test in your project
What NOT to test in your projectWhat NOT to test in your project
What NOT to test in your project
 
Como não testar seu projeto de software
Como não testar seu projeto de softwareComo não testar seu projeto de software
Como não testar seu projeto de software
 
Divida tecnica
Divida tecnicaDivida tecnica
Divida tecnica
 
Ágil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira ÁgilÁgil x Lean Startup no Caipira Ágil
Ágil x Lean Startup no Caipira Ágil
 
Progamacao para não programadores
Progamacao para não programadoresProgamacao para não programadores
Progamacao para não programadores
 
surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle surge con 2011 lightning talk - closed loop server lifecycle
surge con 2011 lightning talk - closed loop server lifecycle
 
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
COWBLAM! - a sua metodologia é a melhor. Agile Brasil 2011
 

Dívida técnica: causas, efeitos e estratégias de pagamento

Notes de l'éditeur

  1. Quemaqui tem dívidatécnica?
  2. quemaquiperdeu a capacidade de atenderseusclientes com agilidadeaolongo do tempo?
  3. Quemaqui tem tempo de entrega (lead time) longo?
  4. Quemaquisempreatrasasuasentregas (ouestimativas)?
  5. Quemaqui tem umataxa de defeitosalta?
  6. Quemaquisentequeseu softwareestáengessado, eécadavezmaisdifícilfazermudanças?
  7. Quemaquiestánumaequipefrustradaou com desempenhofraco?
  8. Quemaqui tem baixacobertura de testes?
  9. E a suite de testes demoraprarodar?
  10. Quemjáviucomentáriosassim no código?
  11. Quem tem dificuldades de comunicação?
  12. Antes de partir pros tipos de dividatecnica, suascausaseestrategiaspralidar com elas, + umaexperiênciapraintroduziroutrametáfora
  13. tamanho do código: repositóriomédiowebappcrudzinha tem 200 MB1 pontobidimensional, do tamanhosistema solar, precisão de 1 metro -> 2 doubles 64bits! -> 128 bits!!!
  14. Propriedades1- complexo:impossíveldescrever com umaúnicalinguagemouperspectiva2- intratabilidade:nãoexistecaminhomaisrápido pro futuroalém de iratéeleComo lidar?investiga, senteereagepráticasemergentes“previsão” do tempo éciência
  15. EquipeCronogramatransparencia
  16. Comparisons industry standards different revisions: trends different parts: outliers Aesthetics symmetry balance/harmony