Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
Credit Crunch Code<br />Paying Back the Technical Debt<br />By Gary Short<br />1<br />
Agenda<br />Defining Technical Debt<br />Why Managing Technical Debt is Important<br />Quantifying Technical Debt<br />Tec...
Defining Technical Debt #1<br />Term coined by Ward Cunningham in 1992<br />Analogous to financial debt<br />Financial deb...
Defining Technical Debt #2<br />With financial debt<br />“Virtual debt” by not having the best interest rate<br />With Tec...
Is There Interest On Technical Debt?<br />Just as there is interest on financial debt...<br />So there is interest on tech...
Just As Not All Financial Debt Is Bad<br />6<br />
Nor Is All Technical Debt<br />7<br />
But Financial Debt Can Be Dangerous<br />8<br />
And So Can Technical Debt<br />9<br />
Why Is Managing Technical Debt Important?<br />10<br />
Reduce Effort by Keeping it Under Control<br />11<br />
Quantifying Technical Debt<br />12<br />
Basic Formula To Get You Started<br />Where:<br />T = Total number of employees involved in paying back the debt<br />i = ...
Rate Card<br />Project Manager = 32 Euros / hour<br />Architect = 33 Euros / hour<br />Lead Developer = 30 Euros / hour<br...
Case Study #1<br />The Anti-Pattern: Waterfall Methodology<br />15<br />
The Main Weakness of Waterfall<br />16<br />
Where Does Change Come From?<br />17<br />
Why is Change So Costly?<br />18<br />
Why Is This Technical Debt?<br />Borrow time now, repay later<br />Take advantages now<br />Ease in analysing potential ch...
Quantify the Technical Debt: Agile<br />Assume a small error caught during the “paper prototype” phase of an iteration<br ...
Quantify the Technical Debt: BDUF<br />Now the same error found in waterfall...<br />Resources deployed<br />Architect 1 h...
Potential Cost Per Project<br />So the TD / defect = 148 Euros<br />The av. number of defects / project = 283*<br />Potent...
Fixing The Technical Debt<br />I’m not saying prefer Agile over Waterfall<br />I am saying:<br />Be aware of the impact th...
Case Study #2<br />The Anti – Pattern: Not Invented Here<br />24<br />
Symptoms<br />Development team spend time developing software which is not core the problem they are trying to solve<br />...
Concrete Example<br />Developers for a national bank are tasked with creating a new MIS tool<br />They dedicate 1 develope...
Why Is This Technical Debt?<br />Savings against time not made<br />Chose to develop a component<br />Should have bought f...
Quantifying The Technical Debt<br />The component was bought in the end:<br />Disregard the cost of the component<br />And...
Fixing The Technical Debt<br />Identify non core functional aspects of project<br />For each of those:<br />Can a componen...
Case Study #3<br />Anti-Pattern: Code that plays together stays together<br />30<br />
Symptoms<br />Let’s imagine a “Car” object<br />What properties should it have?<br />Make<br />Model<br />Colour<br />What...
What Is The Problem?<br />32<br />
Example of Class Pollution<br />Credit: Phil Winstanley (http://weblogs.asp.net/Plip/)<br />33<br />
Why Is This Technical Debt?<br />Borrow time now, repay later<br />Borrowed time now<br />Simpler object graph<br />Repay ...
Concrete Example<br />Online provider wants to be first to market<br />Ships service with monolithic object graph<br />Eff...
Quantifying the Technical Debt<br />1 monthly iteration to fix this debt<br />Resources deployed:<br />5 X Developers<br /...
Fixing The Technical Debt<br />Understand that<br />Monolithic object graph has a limited lifespan<br />Prefer separation ...
Case Study #4<br />The Anti-Pattern: Sensitive Tests<br />38<br />
Symptoms<br />Test which are sensitive to<br />Context<br />Interface<br />Data<br />Pass in one iteration<br />Fail in th...
Why Is This Technical Debt?<br />Borrow time now, repay later<br />Borrowed time in the form of easy to write tests<br />R...
Concrete Example<br />Tester testing code which uses data from development database<br />Developer adds new functionality<...
Quantifying the Technical Debt<br />Take previous 283 defects per project<br />Assume 10% of tests for those defects are d...
Fixing The Technical Debt<br />Test must use independent data<br />Don’t run tests against development data<br />Either<br...
How Do We Spot Technical Debt?<br />44<br />
We Are Used to Charting Progress<br />45<br />
Time Budget Failures Are Obvious<br />46<br />
Effect #1 – Loss of Productivity<br />47<br />
Effect #1 – Loss of Productivity<br />48<br />
Effect #2 – Increase In Testing<br />49<br />
Effect #2 – Increase In Testing<br />50<br />
Effect #3 – Decrease In Morale<br />51<br />
Effect #3 – Decrease In Morale<br />52<br />
Summary<br />In this presentation you learned:<br />What technical debt is<br />That it is important to manage technical d...
Take Away<br />If you only take away one thing<br />Know that technical debt is<br />the silent killer that stalks all pro...
Further Reading<br />http://c2.com/cgi/wiki?WardExplainsDebtMetaphor<br />http://c2.com/cgi/wiki?TechnicalDebt<br />http:/...
Questions?<br />There wasn’t time for my question<br />Where can I contact you?<br />gary@garyshort.org<br />www.garyshort...
Nächste SlideShare
Wird geladen in …5
×

Quantifying the Technical Debt<br />1 Technical Debt

17.795 Aufrufe

Veröffentlicht am

Quantifying the Technical Debt1 monthly iteration to fix this debtResources deployed:5 X Developers1 X lead developer2 X testersApply these figures to our formula and:Cost of technical debt: 44,800 Euros.36

  • Als Erste(r) kommentieren

×