Upload
alexandre-freire
View
3.486
Download
2
Embed Size (px)
DESCRIPTION
Todo projeto de Software tem dívidas técnicas. Aprenda a visualizar e controlar a sua. Slides de apoio a palestra que mostra com exemplos e histórias R$eais como administrar a inevitável dívida técnica.
Citation preview
DívidaTécnica
Ou “Como evitar que o cobrador bata na sua porta.”
@freire_da_silva
• LATAM lead @IndustrialLogic
• Agil desde 2001, lean desde a 1ª série
• Founder: AgilCoop, ).( e AgilBits
• Mestrado na USP: “Refleções sobre o Ensino de Metodologias Ágeis na Academia, Indústria e Governo”
• Experiência e successo com muitos amigos: Apple Brasil, Freeddom, Americanas.com, Mandic Internet, Ministério da Cultura, O2 Filmes, Locaweb, e mais...
• Gosto de nadar e construir casas
✓Metáforas✓ Causas Raíz✓ Vídeos✓ Sintomas✓Quizes Interativos
com Brindes✓ Bala de Prata✓ Leis
✓ Histórias Reais✓ Estratégias✓ Práticas✓ Padrões✓ Anti-padrões✓ Recomendações
de Livros✓ 1 slide com bullets
Oque vai rolar nessa palestra?
Oque vai rolar nessa palestra?
METÁFORAthe long lost XP practicelost in translation...... débito não é dívida
Ward Cunningham - invetor do Wiki
//FIXMESWITCH (key) {case ‘a’: printf(”a”)case ‘b’:…
}
now to paythat tech
debt for v2
Velocity
Velocity
Q
dias não investidos
em
qualidade
Velocity
TCO=CoC(t)+k
1ª entregaDívidaTécnica
1 2 3 4 5 6 7
meses
felicidade do cliente CoC real
CoC ótimo
$ ou
tem
po
?
SINTOMAS
vs
15 anos
cliente pediu gerente pediu design code marketing
documentação instalaram isso pagou por isso suporte o que ele queria
SEU PROJETO?
SEU TIME
?
“MEUS TESTES ESTÃO RODANDO.”
TESTANDO!
//TODO:refatorar aqui
//FIXME: isso não //deveria estar //duplicado
//WTF! PERIGO!
A B
C D
E F
G H
I J
?
SISTEMAS COMPLEXOS ADAPTATIVOS
+
IT’S SCIENCE!
O ministério da agilidade adverte: cuidado com seu uso de métricas
Big Visible Charts
By Matthew Bisanz
WHY?
WHY?
kanbananálise desenvolvimento aceitação produção
kanbananálise desenvolvimento aceitação produção
história: a dívida
desconhecida do e-mail
Temos problemas
Novo fornecedor oferece 1 solução
Centenas de milhares
de R$
Novo responsável
Os problemas
eram razoáveis…
… e ainda + a solução nova não agüentou.
Pagamos a dívida do
antigo sistema!
WHY?
WHY?
FALHAS NA COMUNICAÇÃO
E NA COLABORAÇÃO
Em Retrospectiva
BAD MANAGMENT
Tudo tranquilo por aqui...
http://www.sonarsource.org/
commits over time
Lei de Parkinson
FOLGA
RE-FACTORSPRINT
Time completo
CFD
história: falência
do SI
Lei de Murphy
Sistema Interno
(ou Central)
1998
DBACCESS
Passa por várias outras
mãos…
… não conheciamos nem as boas
práticas
lib_fichao2
.asp
Big Ball of Mud
Centenas de milhares
de R$
Falência
Investimento de
~R$1milhão
Novo sistema, mas…
Lei de Conway
Anti- corruption
layer
Virada suave
e reversível
análise desenvolvimento aceitação produção
Story Maps
Prototype
Lei de Pareto
20%
80%
FuncionalidadesValor
análise desenvolvimento aceitação produção
Scenario: Client sees tooltip for plan Given I selected the "lite" plan When I move mouse over "tooltip” Then I should see tooltip content And I move mouse out "tooltip” Then I should not see tooltip content
Acúmulode wait()
análise desenvolvimento aceitação produção
Code Smells“If it stinks,Change it.”Kent Beck
I SEEDEADCODE
DRY
ODDBALL
SOLUTION
PRIMITIVEOBSESSION
CONDITIONALCOMPLEXITY
TRACKERThe long lost XP role
Toxicidade
Turbulência
Complexity & Coverage
Pirâmide decomplexidade
Test Balance
0
37.5
75.0
112.5
150.0
W1 W2 W3 W4 W5 W6 W7
Commits With Tests Commits Without Tests
Matriz de Evolução
Pair Programming
história: Escalando WebStore
TIME2 Market
Escalando Rails c/ $ln -s
80 clientes servidor
R$150Cliente
Marketing
â
Concurrent Set Based Design
Cloud Version
DB Cluster Version
Middleware Version
Team’s Version
R$8Cliente
Sempre existem 3 opções
Gambiarra não é opção!
Feature Fake
78%
22%
UsedNot Used
16 users from 4 countries are online right now.
Join the chat.
Unlikely Neutral Likely
1 7 6
Laura KleinLean UX Expert
Group Chat Anyone?
1.Não se endividar
2.Dívida sem juros
RECALL de~$1 bilhão
3.Dívida com juros
O futuro hoje
https://github.com/relevance/tarantula
Relevance::Tarantula::FormSubmission.attacks << { :name => :sql_injection, :input => "a'; DROP TABLE posts;", }
Your Score: 62%
Session Recorder
http://www.industriallogic.com/elearning
PERGUNTAS?
@freire_da_silva
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➡http://www.gohorseprocess.com.br/➡http://www.runningthematrix.com/2012/02/
chaos-monkey-vs-spof-monster.html➡http://thinkrelevance.com/blog/2008/02/26/
tarantula-vs-your-rails-app➡http://www.genetic-programming.org/hc2009/1-
Forrest/Forrest-Presentation.pdf➡http://www.industriallogic.com/blog/fast-frugal-
learning-with-a-feature-fake/➡http://www.industriallogic.com/blog/smells-to-
refactorings-cheatsheet/➡http://vimeo.com/6434925➡http://analyzo.org