Divida tecnica

Post on 14-Jan-2015

3.486 views 2 download

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.

Transcript of Divida tecnica

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!

http://abstrusegoose.com/432

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...

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

http://metric-fu.rubyforge.org/

Toxicidade

http://findbugs.sourceforge.net/

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;", }

http://code.google.com/p/gource/

Your Score: 62%

Session Recorder

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