SlideShare una empresa de Scribd logo
1 de 29
© 2011 VersionOne 1
Managing Technical
Debt
© 2011 VersionOne 2
Let’s Talk
© 2011 VersionOne 3
What is Technical Debt
• Design Compromises
• Choosing to accept something as “done” before its time
© 2011 VersionOne 4
Technical debt is not always represented by
Defects
public void populateList(String food)
{
Food SelectedFood = new Food();
if(food.equalsIgnoreCase("vegetable"))
{
SelectedFood = new Vegetables();
}
else if(food.contains("Legume"))
{
SelectedFood = new Legume();
}
list.setAdapter(mSchedule);
}
© 2011 VersionOne 5
But it usually results in them
© 2011 VersionOne 6
Is technical debt always bad?
• Just as in finance, sometimes taking on a certain level of
debt can be considered an investment.
– This needs to be a decision that is made proactively, not
reactively
© 2011 VersionOne 7
Is a debt free project even possible?
• Mentality of Sufficiency – Perfect is the natural enemy
of Good
© 2011 VersionOne 8
When might debt be ok?
• New architecture
– Perhaps we want to do our migration to the new architecture one
step at a time. Until we have completed the migration we are
choosing debt
• First to Market
– Sometimes, the monetary effect of being first to market is worth
incurring some debt
© 2011 VersionOne 9
Some common ways to incur debt
• Time pressure
– We don’t have enough time to finish, unless we cut some corners
• Competitive pressure
– If we can at least show this feature, we will beat the competitor
to market
© 2011 VersionOne 10
How might we avoid taking on too much
debt?
© 2011 VersionOne 11
Test Driven Development
© 2011 VersionOne 12
Acknowledging the interest rate
• There is a cost to waiting
• Understand what that cost is and call it out
• Remember that interest compounds
© 2011 VersionOne 13
Paying off inherited debt (legacy code)
• Start small, creating tests around any work we do within
the legacy code base
• We own this debt just as much any debt we choose to
take on.
© 2011 VersionOne 14
Refactoring – paying a little at a time
• All debt has a minimum payment, or “debt service”
• We can pay our debt service through improving the design
whenever we are in our code, without changing the
behavior
– Find a place that could use some improvement
– Wrap the change in tests
– Make the change
– Run the tests
• Its ok to pay a little extra, but don’t go overboard
© 2011 VersionOne 15
Some strategies for spending within your
means
• Keep your stories small
• Only sign up for what you can comfortably accomplish
• Stick to your guns, only agree to debt that you can be
comforatable with
© 2011 VersionOne 16
Don’t take on more than you can pay
© 2011 VersionOne 17
Limited WIP and Kanban
• By constraining how much work we take on at one time
we can focus on quality
• Pull oriented processes mean less incentive to “cram
something in”
© 2011 VersionOne 18
Iterative Development and Velocity
• As we identify a cadence and velocity, we see how much
we really can sign on for
• Tight feedback loops give us room to inspect and adapt
© 2011 VersionOne 19
Pay the Biggest interest items first
• Make debt service on all debt
• As you fix the more expensive items, you are freeing up
resources for the less expensive items later
© 2011 VersionOne 20
Debt Restructuring
• Sometimes, but *very* seldom, we have to declare
bankruptcy – Major Rearchitecture
• A better approach is to create a restructuring plan
• A set of payments (backlog items or defects) that are
scheduled at regular intervals, and with higher priority or
Class of Service than new features
© 2011 VersionOne 21
Alternative ways to consider debt
• Choose a metaphor that resonates
• Not everyone is comfortable with the money theme
© 2011 VersionOne 22
Speedboat
• Our product is a speedboat, heading for an exotic harbor
• Our debt is a set of anchors
– Each anchor has a weight associated with the amount of work
to be done
– Each anchor is a different depth, loosely analogous to how long it
will take to pull the anchor up
© 2011 VersionOne 23
Some basic tips
© 2011 VersionOne 24
Recognize your debt
• Don’t sweep it under the rug
• “It goes without saying” doesn’t
© 2011 VersionOne 25
“Borrow” only when absolutely necessary
• Don’t let It become a habit
• By thinking of it as a necessary evil, we can make it
something that is an exception instead of a rule
© 2011 VersionOne 26
Track debt
• Note the “interest rate”
• Calculate the costs at periodic intervals
© 2011 VersionOne 27
Plan to pay your debt, just like you plan for
new features
© 2011 VersionOne 28
Don’t beat yourself up
• We all borrow
• Sometimes we let our borrowing get away from us
• Recriminations do NOTHING to get the debt paid off
© 2011 VersionOne 29
Remember, you can pay me now, or you can
pay me later…

Más contenido relacionado

Similar a Managing Technical Debt

Daily Money Management in a Changing Economy
Daily Money Management in a Changing EconomyDaily Money Management in a Changing Economy
Daily Money Management in a Changing Economy
schweitzerbrian
 
Iii. principles of_capital_budgeting
Iii. principles of_capital_budgetingIii. principles of_capital_budgeting
Iii. principles of_capital_budgeting
Ezgi Kurt
 
Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...
Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...
Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...
MassTLC
 

Similar a Managing Technical Debt (20)

Create Success With Analytics: Living With Technical Debt - Balancing Quality...
Create Success With Analytics: Living With Technical Debt - Balancing Quality...Create Success With Analytics: Living With Technical Debt - Balancing Quality...
Create Success With Analytics: Living With Technical Debt - Balancing Quality...
 
Create Success With Analytics: Living With Technical Debt - Balancing Quality...
Create Success With Analytics: Living With Technical Debt - Balancing Quality...Create Success With Analytics: Living With Technical Debt - Balancing Quality...
Create Success With Analytics: Living With Technical Debt - Balancing Quality...
 
Managing Technical Debt - by Michael Hall
Managing Technical Debt - by Michael HallManaging Technical Debt - by Michael Hall
Managing Technical Debt - by Michael Hall
 
Making capital investment decisions
Making capital investment decisionsMaking capital investment decisions
Making capital investment decisions
 
Agile Testing
Agile Testing Agile Testing
Agile Testing
 
Futurum training capital budgeting (intermediate)
Futurum training capital budgeting (intermediate)Futurum training capital budgeting (intermediate)
Futurum training capital budgeting (intermediate)
 
Agile Release & Iteration Planning
Agile Release & Iteration Planning   Agile Release & Iteration Planning
Agile Release & Iteration Planning
 
Lecture02
Lecture02Lecture02
Lecture02
 
Agile Release & Iteration Planning
Agile Release & Iteration PlanningAgile Release & Iteration Planning
Agile Release & Iteration Planning
 
Daily Money Management in a Changing Economy
Daily Money Management in a Changing EconomyDaily Money Management in a Changing Economy
Daily Money Management in a Changing Economy
 
Iii. principles of_capital_budgeting
Iii. principles of_capital_budgetingIii. principles of_capital_budgeting
Iii. principles of_capital_budgeting
 
Specifics of Managing Large, Complex Projects
Specifics of Managing Large, Complex ProjectsSpecifics of Managing Large, Complex Projects
Specifics of Managing Large, Complex Projects
 
IMVU: “But Does It Scale?” from Startup Lessons Learned Conference
IMVU: “But Does It Scale?” from Startup Lessons Learned ConferenceIMVU: “But Does It Scale?” from Startup Lessons Learned Conference
IMVU: “But Does It Scale?” from Startup Lessons Learned Conference
 
Developing a Scalable and Long-Lived System at METRO
Developing a Scalable and Long-Lived System at METRODeveloping a Scalable and Long-Lived System at METRO
Developing a Scalable and Long-Lived System at METRO
 
capital budgeting process investment rules.pptx
capital budgeting process investment rules.pptxcapital budgeting process investment rules.pptx
capital budgeting process investment rules.pptx
 
Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...
Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...
Gil Irizarry, Constant Contact presentation from MassTLC seminar on taking yo...
 
Managing Technical Debt
Managing Technical DebtManaging Technical Debt
Managing Technical Debt
 
Corporate Finance.ppt
Corporate Finance.pptCorporate Finance.ppt
Corporate Finance.ppt
 
Going agile with scrum
Going agile with scrumGoing agile with scrum
Going agile with scrum
 
Running successful agile projects
Running successful agile projectsRunning successful agile projects
Running successful agile projects
 

Más de VersionOne

AgileLIVE Webinar: Adding UX Value to Agile Development
AgileLIVE Webinar: Adding UX Value to Agile DevelopmentAgileLIVE Webinar: Adding UX Value to Agile Development
AgileLIVE Webinar: Adding UX Value to Agile Development
VersionOne
 
AgileLIVE Webinar: Agile Leadership for the Enterprise
AgileLIVE Webinar: Agile Leadership for the EnterpriseAgileLIVE Webinar: Agile Leadership for the Enterprise
AgileLIVE Webinar: Agile Leadership for the Enterprise
VersionOne
 
Agile and Auditors
Agile and AuditorsAgile and Auditors
Agile and Auditors
VersionOne
 

Más de VersionOne (20)

AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 2
AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 2AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 2
AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 2
 
AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 1
AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 1AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 1
AgileLIVE Webinar: Build a DevOps Culture & Infrastructure for Success Part 1
 
AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...
AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...
AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...
 
AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...
AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...
AgileLIVE: Scaling Agile Faster, Easier, Smarter with SAFe and VersionOne - P...
 
12 Benefits of Adopting Agile
12 Benefits of Adopting Agile 12 Benefits of Adopting Agile
12 Benefits of Adopting Agile
 
What's the State of Agile Software Development?
What's the State of Agile Software Development?What's the State of Agile Software Development?
What's the State of Agile Software Development?
 
AgileLIVE: Continuous Product Learning - Part 2
AgileLIVE: Continuous Product Learning - Part 2AgileLIVE: Continuous Product Learning - Part 2
AgileLIVE: Continuous Product Learning - Part 2
 
AgileLIVE: Continuous Product Learning - Part 1
AgileLIVE: Continuous Product Learning - Part 1AgileLIVE: Continuous Product Learning - Part 1
AgileLIVE: Continuous Product Learning - Part 1
 
VersionOne Gartner PPM Presentation 2014: Journey to Value - The PPM/Agile In...
VersionOne Gartner PPM Presentation 2014: Journey to Value - The PPM/Agile In...VersionOne Gartner PPM Presentation 2014: Journey to Value - The PPM/Agile In...
VersionOne Gartner PPM Presentation 2014: Journey to Value - The PPM/Agile In...
 
Why VersionOne is Wicked Awesome
Why VersionOne is Wicked AwesomeWhy VersionOne is Wicked Awesome
Why VersionOne is Wicked Awesome
 
AgileLIVE™ Webinar Series "Agile Success = Team Success: Tuning the Agile Tea...
AgileLIVE™ Webinar Series "Agile Success = Team Success: Tuning the Agile Tea...AgileLIVE™ Webinar Series "Agile Success = Team Success: Tuning the Agile Tea...
AgileLIVE™ Webinar Series "Agile Success = Team Success: Tuning the Agile Tea...
 
AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 2
AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 2AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 2
AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 2
 
AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 1
AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 1AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 1
AgileLIVE: Scaling Agile to the Program & Portfolio Levels - Part 1
 
AgileLIVE Webinar: Adding UX Value to Agile Development
AgileLIVE Webinar: Adding UX Value to Agile DevelopmentAgileLIVE Webinar: Adding UX Value to Agile Development
AgileLIVE Webinar: Adding UX Value to Agile Development
 
AgileLIVE Webinar: Agile Leadership for the Enterprise
AgileLIVE Webinar: Agile Leadership for the EnterpriseAgileLIVE Webinar: Agile Leadership for the Enterprise
AgileLIVE Webinar: Agile Leadership for the Enterprise
 
AgileLIVE - Collaboration that Scales - Part 2
AgileLIVE - Collaboration that Scales - Part 2AgileLIVE - Collaboration that Scales - Part 2
AgileLIVE - Collaboration that Scales - Part 2
 
AgileLIVE - Collaboration that Scales - Part 1
AgileLIVE - Collaboration that Scales - Part 1AgileLIVE - Collaboration that Scales - Part 1
AgileLIVE - Collaboration that Scales - Part 1
 
Agile Project Management: "How I Learned to Stop Worrying and Love Agile”
Agile Project Management: "How I Learned to Stop Worrying and Love Agile”Agile Project Management: "How I Learned to Stop Worrying and Love Agile”
Agile Project Management: "How I Learned to Stop Worrying and Love Agile”
 
Agile and Auditors
Agile and AuditorsAgile and Auditors
Agile and Auditors
 
AgileLIVE Part II
AgileLIVE Part IIAgileLIVE Part II
AgileLIVE Part II
 

Último

CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...
CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...
CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...
priyasharma62062
 
VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...
VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...
VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...
dipikadinghjn ( Why You Choose Us? ) Escorts
 
call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
amitlee9823
 
From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...
From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...
From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...
From Luxury Escort : 9352852248 Make on-demand Arrangements Near yOU
 
( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...
( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...
( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...
dipikadinghjn ( Why You Choose Us? ) Escorts
 
VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...
VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...
VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...
dipikadinghjn ( Why You Choose Us? ) Escorts
 

Último (20)

7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options
 
Call Girls Service Pune ₹7.5k Pick Up & Drop With Cash Payment 9352852248 Cal...
Call Girls Service Pune ₹7.5k Pick Up & Drop With Cash Payment 9352852248 Cal...Call Girls Service Pune ₹7.5k Pick Up & Drop With Cash Payment 9352852248 Cal...
Call Girls Service Pune ₹7.5k Pick Up & Drop With Cash Payment 9352852248 Cal...
 
CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...
CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...
CBD Belapur Expensive Housewife Call Girls Number-📞📞9833754194 No 1 Vipp HIgh...
 
(Sexy Sheela) Call Girl Mumbai Call Now 👉9920725232👈 Mumbai Escorts 24x7
(Sexy Sheela) Call Girl Mumbai Call Now 👉9920725232👈 Mumbai Escorts 24x7(Sexy Sheela) Call Girl Mumbai Call Now 👉9920725232👈 Mumbai Escorts 24x7
(Sexy Sheela) Call Girl Mumbai Call Now 👉9920725232👈 Mumbai Escorts 24x7
 
VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...
VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...
VIP Independent Call Girls in Taloja 🌹 9920725232 ( Call Me ) Mumbai Escorts ...
 
Vasai-Virar Fantastic Call Girls-9833754194-Call Girls MUmbai
Vasai-Virar Fantastic Call Girls-9833754194-Call Girls MUmbaiVasai-Virar Fantastic Call Girls-9833754194-Call Girls MUmbai
Vasai-Virar Fantastic Call Girls-9833754194-Call Girls MUmbai
 
call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
call girls in Sant Nagar (DELHI) 🔝 >༒9953056974 🔝 genuine Escort Service 🔝✔️✔️
 
Kopar Khairane Russian Call Girls Number-9833754194-Navi Mumbai Fantastic Unl...
Kopar Khairane Russian Call Girls Number-9833754194-Navi Mumbai Fantastic Unl...Kopar Khairane Russian Call Girls Number-9833754194-Navi Mumbai Fantastic Unl...
Kopar Khairane Russian Call Girls Number-9833754194-Navi Mumbai Fantastic Unl...
 
Technology industry / Finnish economic outlook
Technology industry / Finnish economic outlookTechnology industry / Finnish economic outlook
Technology industry / Finnish economic outlook
 
Business Principles, Tools, and Techniques in Participating in Various Types...
Business Principles, Tools, and Techniques  in Participating in Various Types...Business Principles, Tools, and Techniques  in Participating in Various Types...
Business Principles, Tools, and Techniques in Participating in Various Types...
 
20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...
20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...
20240419-SMC-submission-Annual-Superannuation-Performance-Test-–-design-optio...
 
(INDIRA) Call Girl Srinagar Call Now 8617697112 Srinagar Escorts 24x7
(INDIRA) Call Girl Srinagar Call Now 8617697112 Srinagar Escorts 24x7(INDIRA) Call Girl Srinagar Call Now 8617697112 Srinagar Escorts 24x7
(INDIRA) Call Girl Srinagar Call Now 8617697112 Srinagar Escorts 24x7
 
Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
Call Girls Banaswadi Just Call 👗 7737669865 👗 Top Class Call Girl Service Ban...
 
From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...
From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...
From Luxury Escort Service Kamathipura : 9352852248 Make on-demand Arrangemen...
 
( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...
( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...
( Jasmin ) Top VIP Escorts Service Dindigul 💧 7737669865 💧 by Dindigul Call G...
 
VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...
VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...
VIP Call Girl in Mumbai Central 💧 9920725232 ( Call Me ) Get A New Crush Ever...
 
Kharghar Blowjob Housewife Call Girls NUmber-9833754194-CBD Belapur Internati...
Kharghar Blowjob Housewife Call Girls NUmber-9833754194-CBD Belapur Internati...Kharghar Blowjob Housewife Call Girls NUmber-9833754194-CBD Belapur Internati...
Kharghar Blowjob Housewife Call Girls NUmber-9833754194-CBD Belapur Internati...
 
Navi Mumbai Cooperetive Housewife Call Girls-9833754194-Natural Panvel Enjoye...
Navi Mumbai Cooperetive Housewife Call Girls-9833754194-Natural Panvel Enjoye...Navi Mumbai Cooperetive Housewife Call Girls-9833754194-Natural Panvel Enjoye...
Navi Mumbai Cooperetive Housewife Call Girls-9833754194-Natural Panvel Enjoye...
 
W.D. Gann Theory Complete Information.pdf
W.D. Gann Theory Complete Information.pdfW.D. Gann Theory Complete Information.pdf
W.D. Gann Theory Complete Information.pdf
 
Lion One Corporate Presentation May 2024
Lion One Corporate Presentation May 2024Lion One Corporate Presentation May 2024
Lion One Corporate Presentation May 2024
 

Managing Technical Debt

  • 1. © 2011 VersionOne 1 Managing Technical Debt
  • 2. © 2011 VersionOne 2 Let’s Talk
  • 3. © 2011 VersionOne 3 What is Technical Debt • Design Compromises • Choosing to accept something as “done” before its time
  • 4. © 2011 VersionOne 4 Technical debt is not always represented by Defects public void populateList(String food) { Food SelectedFood = new Food(); if(food.equalsIgnoreCase("vegetable")) { SelectedFood = new Vegetables(); } else if(food.contains("Legume")) { SelectedFood = new Legume(); } list.setAdapter(mSchedule); }
  • 5. © 2011 VersionOne 5 But it usually results in them
  • 6. © 2011 VersionOne 6 Is technical debt always bad? • Just as in finance, sometimes taking on a certain level of debt can be considered an investment. – This needs to be a decision that is made proactively, not reactively
  • 7. © 2011 VersionOne 7 Is a debt free project even possible? • Mentality of Sufficiency – Perfect is the natural enemy of Good
  • 8. © 2011 VersionOne 8 When might debt be ok? • New architecture – Perhaps we want to do our migration to the new architecture one step at a time. Until we have completed the migration we are choosing debt • First to Market – Sometimes, the monetary effect of being first to market is worth incurring some debt
  • 9. © 2011 VersionOne 9 Some common ways to incur debt • Time pressure – We don’t have enough time to finish, unless we cut some corners • Competitive pressure – If we can at least show this feature, we will beat the competitor to market
  • 10. © 2011 VersionOne 10 How might we avoid taking on too much debt?
  • 11. © 2011 VersionOne 11 Test Driven Development
  • 12. © 2011 VersionOne 12 Acknowledging the interest rate • There is a cost to waiting • Understand what that cost is and call it out • Remember that interest compounds
  • 13. © 2011 VersionOne 13 Paying off inherited debt (legacy code) • Start small, creating tests around any work we do within the legacy code base • We own this debt just as much any debt we choose to take on.
  • 14. © 2011 VersionOne 14 Refactoring – paying a little at a time • All debt has a minimum payment, or “debt service” • We can pay our debt service through improving the design whenever we are in our code, without changing the behavior – Find a place that could use some improvement – Wrap the change in tests – Make the change – Run the tests • Its ok to pay a little extra, but don’t go overboard
  • 15. © 2011 VersionOne 15 Some strategies for spending within your means • Keep your stories small • Only sign up for what you can comfortably accomplish • Stick to your guns, only agree to debt that you can be comforatable with
  • 16. © 2011 VersionOne 16 Don’t take on more than you can pay
  • 17. © 2011 VersionOne 17 Limited WIP and Kanban • By constraining how much work we take on at one time we can focus on quality • Pull oriented processes mean less incentive to “cram something in”
  • 18. © 2011 VersionOne 18 Iterative Development and Velocity • As we identify a cadence and velocity, we see how much we really can sign on for • Tight feedback loops give us room to inspect and adapt
  • 19. © 2011 VersionOne 19 Pay the Biggest interest items first • Make debt service on all debt • As you fix the more expensive items, you are freeing up resources for the less expensive items later
  • 20. © 2011 VersionOne 20 Debt Restructuring • Sometimes, but *very* seldom, we have to declare bankruptcy – Major Rearchitecture • A better approach is to create a restructuring plan • A set of payments (backlog items or defects) that are scheduled at regular intervals, and with higher priority or Class of Service than new features
  • 21. © 2011 VersionOne 21 Alternative ways to consider debt • Choose a metaphor that resonates • Not everyone is comfortable with the money theme
  • 22. © 2011 VersionOne 22 Speedboat • Our product is a speedboat, heading for an exotic harbor • Our debt is a set of anchors – Each anchor has a weight associated with the amount of work to be done – Each anchor is a different depth, loosely analogous to how long it will take to pull the anchor up
  • 23. © 2011 VersionOne 23 Some basic tips
  • 24. © 2011 VersionOne 24 Recognize your debt • Don’t sweep it under the rug • “It goes without saying” doesn’t
  • 25. © 2011 VersionOne 25 “Borrow” only when absolutely necessary • Don’t let It become a habit • By thinking of it as a necessary evil, we can make it something that is an exception instead of a rule
  • 26. © 2011 VersionOne 26 Track debt • Note the “interest rate” • Calculate the costs at periodic intervals
  • 27. © 2011 VersionOne 27 Plan to pay your debt, just like you plan for new features
  • 28. © 2011 VersionOne 28 Don’t beat yourself up • We all borrow • Sometimes we let our borrowing get away from us • Recriminations do NOTHING to get the debt paid off
  • 29. © 2011 VersionOne 29 Remember, you can pay me now, or you can pay me later…