• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Understanding technical debt
 

Understanding technical debt

on

  • 489 views

 

Statistics

Views

Total Views
489
Views on SlideShare
489
Embed Views
0

Actions

Likes
0
Downloads
8
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Foreclosure, App sunset, funding of new app with same problems, sliding window
  • Code Analysis pull assemblies from SIT? Blockers => no PDB?

Understanding technical debt Understanding technical debt Presentation Transcript

  • Understanding Technical DebtFebruary 20th, 2010
  • Relations to Application Life Cycle Management?1. ALM is a business process.2. Being Great at ALM requires incorporating technical debt management strategies.3. Even incremental improvements in ALM can deliver large benefits in the form of agility, predictability, auditing, quality and productivity.4. Paying down Technical Debt delivers incremental improvements 2
  • What is Technical Debt?• Technical Debt is a metaphor (Ward Cunningham)• Result of “Quick and Dirty” Software Design.• A “Quick and Dirty” approach has short term benefits.• Intent: We will fix it later. 3
  • How is Technical Debt Incurred? Expectations Actual Remaining Work Remaining Work Planned work Actual work and velocity and velocity Projected Planned Release Date work and velocity Time Time Planned Planned Release Date Release Date[Kane Mar and Michael James, Technical Debt and Design Death] 4
  • Priority: On-Time, On-Budget, Technical Debt Visualized. Actual work and velocity  Pressure applied here Result = On Time, On Budget Remaining Work Claim = Productivity improved Area here is Technical Debt Planned work and velocity Time Planned Avoided / Full Quality Release Date Release Date[Kane Mar and Michael James, Technical Debt and Design Death]
  • So What?Too Much Technical Debt  Bankruptcy! – Failed Customer Interactions (FCI) – Sev1, Sev2, etc – High TCOA (Ex: # BAU Resources) – Overly Complex & Brittle – Lost Productivity – Low Confidence 6
  • How to Pay Down Technical Debt? Define Measurements Continually Identify Sources Monitor Apply Strategies and Tactics to Reduce 7
  • How to Measure Technical Debt?• Maintainability Index: – Calculated value between 0 – 100 indicating code quality. – Recommendation: Group into three levels • Green = highly maintainable code. • Yellow = warning, code in danger of becoming red. • Red = difficult to maintain code.Cyclomatic Complexity: – Method level calculation of the number of independent execution paths. – Recommendation: Cyclomatic Complexity < 15.Depth of Inheritance: – Calculates the level of inheritance between classes – Recommendation: Depth of Inheritance < 4. 8
  • What tools do we use?• Using the Toolset: – We Own (Nothing to buy) – We Know (Less Training)• Specifically Visual Studio 2008 provides: – Code Analysis – Rules based Code Inspection – Code Metrics – Calculate Indicators 9
  • References• Ward Cunnigham – Technical Debt Metaphor• Steve McConnell – Technical Debt Articles – http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical- debt-2.aspx• Quent Herschelman (Microsoft) 10
  • Reference: Can Technical Debt be used Strategically?• Reasons to Incur Technical Debt: – Quicker Time to Market – Delaying Development Expense (Application Sun Setting) – Preservation of Startup Capital 11