SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
Technical Debt and What to
                  do about it.


 Kane Mar
 Certified Scrum Trainer and
 Coach (CST and CSC)

 http://KaneMar.com

 Kane.Mar@gmail.com
About Me, About You
What is Technical Debt




The concept of software complexity as debt was
originally coined by Ward Cunningham in an
experience report for OOPSLA ‘92 (*)

Reference: http://c2.com/doc/oopsla92.html
What is Technical Debt



During the planning or execution of a software
project, decisions are made to defer necessary work:
   It's too late in the LifeCycle? to upgrade to the new release of the
   compiler. We'll do it next time around.

   We're not completely conforming to the UserInterface guidelines.
   We'll get to it next time.

   We don't have time to uncruft (refactor, see RefactorMercilessly)
   the hyper-widget code. Punt until next time.
What is Technical Debt



A big pile of deferred work can gum up a project, yet
many of the items on the list don't appear on a
project team's radar, especially if the focus is
primarily on new product features. Yet removing
accumulated sludge needs to be accounted for in
planning!

Therefore: Make the debt visible. Keep an explicit list
Technical Debt
Quality and Velocity
                                       Correlation between declining quality and velocity
50.0

37.5                       % Maintenance
                           Velocity of New Development (PBI/$100k)
25.0

12.5

               0
                    1              2                    3                            4       5       6
                                                            Category Title



                                                     New Requirements Capability
               2000

               1500
Requirements




               1000

                   500

                     0
                          1               2                 3                    4       5       6
                                                                Category Title
The story of a burger ...
How does “Technical Debt”
                  occur?

By not enforcing high quality standards in the
definition of “done.”

Cutting corners to achieve a higher velocity and meet
impossible timelines leads to build up of low quality,
unmaintainable code.

Death spiral: As the maximum velocity of system goes
down, even more corners are cut to compensate until
the velocity approaches zero.
Signs of Technical Debt


The code is considered part of a core or legacy
system

There is either no testing, or minimal testing
surrounding the code

There is highly compartmentized knowledge regarding
the core/legacy system, and it may be supported by
only one or two people in the company (over
specialization)
Signs of Technical Debt



The legacy system is not in a know state

It takes as long to fix defects caused be adding new
functionality, as it does to add the new functionality

Re-platforming ... and then repeat the mistakes of the
past
What to do about Technical
                         Debt


 Avoid accumulating technical debt

 Pay it off over time (mortgage)
    “Working with legacy code” by Michael Feathers

 An anti-pattern worth mentioning
Avoid Technical Debt

Development teams must curb over-optimism in
assessing availability and capacity

Management redirects attention from applying
pressure to removing organizational impediments to
progress

Product Owners understand the iron triangle,
ownership of risks, and impact of cutting quality

ScrumMaster must prevent demonstration of any work
that is not “done”
Paying off Technical Debt


Described by Michael Feathers in “Working Effectively
with Legacy code”
   Start by introducing Continuous Integration

   Write Tests around customer reported defects

Over a period of time a testing framework will be
built up around the most brittle code
And Avoid this anti-pattern



 There is a temptation to try and write a
 comprehensive testing framework around the entire
 product
   Does not address the defects that the customer views as most
   important

   May run out of money before you complete the framework
Thank you!

Weitere ähnliche Inhalte

Andere mochten auch

QCon Beijing - April 2010
QCon Beijing - April 2010QCon Beijing - April 2010
QCon Beijing - April 2010Kane Mar
 
Europa Del Settecento
Europa Del SettecentoEuropa Del Settecento
Europa Del Settecentomapaa
 
Power Point Polmoni
Power Point PolmoniPower Point Polmoni
Power Point Polmonimapaa
 
Power Point Polmoni
Power Point PolmoniPower Point Polmoni
Power Point Polmonimapaa
 
La Guerra Del Nord
La Guerra Del NordLa Guerra Del Nord
La Guerra Del Nordmapaa
 
A short history of Agile software development
A short history of Agile software developmentA short history of Agile software development
A short history of Agile software developmentKane Mar
 
Why Scrum?
Why Scrum?Why Scrum?
Why Scrum?Kane Mar
 
Introduction To Agile Estimating and Planning
Introduction To Agile Estimating and PlanningIntroduction To Agile Estimating and Planning
Introduction To Agile Estimating and PlanningKane Mar
 
Scrum Gathering Shanghai - April 2010
Scrum Gathering Shanghai - April 2010Scrum Gathering Shanghai - April 2010
Scrum Gathering Shanghai - April 2010Kane Mar
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous DeploymentKane Mar
 
Europa Del Settecento
Europa Del SettecentoEuropa Del Settecento
Europa Del Settecentomapaa
 
Introducing Scrum to an Organization
Introducing Scrum to an OrganizationIntroducing Scrum to an Organization
Introducing Scrum to an OrganizationKane Mar
 
Fashion is art.
Fashion is art.Fashion is art.
Fashion is art.dbwilliams
 
Agile Team Games
Agile Team GamesAgile Team Games
Agile Team GamesKane Mar
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering PracticesKane Mar
 
Agile Games
Agile GamesAgile Games
Agile GamesKane Mar
 
Proteine
ProteineProteine
Proteinemapaa
 

Andere mochten auch (19)

Basketball
BasketballBasketball
Basketball
 
QCon Beijing - April 2010
QCon Beijing - April 2010QCon Beijing - April 2010
QCon Beijing - April 2010
 
Europa Del Settecento
Europa Del SettecentoEuropa Del Settecento
Europa Del Settecento
 
Power Point Polmoni
Power Point PolmoniPower Point Polmoni
Power Point Polmoni
 
Power Point Polmoni
Power Point PolmoniPower Point Polmoni
Power Point Polmoni
 
La Guerra Del Nord
La Guerra Del NordLa Guerra Del Nord
La Guerra Del Nord
 
Basketball
BasketballBasketball
Basketball
 
A short history of Agile software development
A short history of Agile software developmentA short history of Agile software development
A short history of Agile software development
 
Why Scrum?
Why Scrum?Why Scrum?
Why Scrum?
 
Introduction To Agile Estimating and Planning
Introduction To Agile Estimating and PlanningIntroduction To Agile Estimating and Planning
Introduction To Agile Estimating and Planning
 
Scrum Gathering Shanghai - April 2010
Scrum Gathering Shanghai - April 2010Scrum Gathering Shanghai - April 2010
Scrum Gathering Shanghai - April 2010
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Europa Del Settecento
Europa Del SettecentoEuropa Del Settecento
Europa Del Settecento
 
Introducing Scrum to an Organization
Introducing Scrum to an OrganizationIntroducing Scrum to an Organization
Introducing Scrum to an Organization
 
Fashion is art.
Fashion is art.Fashion is art.
Fashion is art.
 
Agile Team Games
Agile Team GamesAgile Team Games
Agile Team Games
 
Agile Engineering Practices
Agile Engineering PracticesAgile Engineering Practices
Agile Engineering Practices
 
Agile Games
Agile GamesAgile Games
Agile Games
 
Proteine
ProteineProteine
Proteine
 

Ähnlich wie Brisbane Scrum Users Group.2009 Feb25

Kane debt
Kane debtKane debt
Kane debtd0nn9n
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debtFadi Stephan
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...StreamNative
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...StreamNative
 
Pragmatic Architecture in .NET
Pragmatic Architecture in .NETPragmatic Architecture in .NET
Pragmatic Architecture in .NEThousecor
 
Servicing Financial Services Applications
Servicing Financial Services ApplicationsServicing Financial Services Applications
Servicing Financial Services ApplicationsShashi Kiran
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing SoftwareSteven Smith
 
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 20091 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009Moshe Kaplan
 
Data Vault 2.0 Demystified: East Coast Tour
Data Vault 2.0 Demystified: East Coast TourData Vault 2.0 Demystified: East Coast Tour
Data Vault 2.0 Demystified: East Coast TourWhereScape
 
How your very large databases can work in the cloud computing world?
How your very large databases can work in the cloud computing world?How your very large databases can work in the cloud computing world?
How your very large databases can work in the cloud computing world?Moshe Kaplan
 
What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...STX Next
 
Measure and Increase Developer Productivity with Help of Serverless AWS Commu...
Measure and Increase Developer Productivity with Help of Serverless AWS Commu...Measure and Increase Developer Productivity with Help of Serverless AWS Commu...
Measure and Increase Developer Productivity with Help of Serverless AWS Commu...Vadym Kazulkin
 
CloudCamp London 3 - SymetrIQ - Phil Huber
CloudCamp London 3 - SymetrIQ -  Phil HuberCloudCamp London 3 - SymetrIQ -  Phil Huber
CloudCamp London 3 - SymetrIQ - Phil HuberChris Purrington
 
Base Logic Inc Solution Offering
Base Logic Inc Solution OfferingBase Logic Inc Solution Offering
Base Logic Inc Solution OfferingMick Knutson
 
Performance Optimization: Incorporating Database and Code Optimzitation Into ...
Performance Optimization: Incorporating Database and Code Optimzitation Into ...Performance Optimization: Incorporating Database and Code Optimzitation Into ...
Performance Optimization: Incorporating Database and Code Optimzitation Into ...Michael Findling
 
Barrick simulation with mimic presentation
Barrick simulation with mimic presentationBarrick simulation with mimic presentation
Barrick simulation with mimic presentationMYNAH Technologies
 
VMworld 2013: SDDC IT Operations Transformation: Multi-customer Lessons Learned
VMworld 2013: SDDC IT Operations Transformation:  Multi-customer Lessons LearnedVMworld 2013: SDDC IT Operations Transformation:  Multi-customer Lessons Learned
VMworld 2013: SDDC IT Operations Transformation: Multi-customer Lessons LearnedVMworld
 
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPMAMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPMMatt Wright
 

Ähnlich wie Brisbane Scrum Users Group.2009 Feb25 (20)

Kane debt
Kane debtKane debt
Kane debt
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
 
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
Building an Asynchronous Application Framework with Python and Pulsar - Pulsa...
 
Pragmatic Architecture in .NET
Pragmatic Architecture in .NETPragmatic Architecture in .NET
Pragmatic Architecture in .NET
 
Puppet on a string
Puppet on a stringPuppet on a string
Puppet on a string
 
Servicing Financial Services Applications
Servicing Financial Services ApplicationsServicing Financial Services Applications
Servicing Financial Services Applications
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 20091 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
1 Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009
 
Data Vault 2.0 Demystified: East Coast Tour
Data Vault 2.0 Demystified: East Coast TourData Vault 2.0 Demystified: East Coast Tour
Data Vault 2.0 Demystified: East Coast Tour
 
How your very large databases can work in the cloud computing world?
How your very large databases can work in the cloud computing world?How your very large databases can work in the cloud computing world?
How your very large databases can work in the cloud computing world?
 
What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...What scrum masters and product owners should know about software quality and ...
What scrum masters and product owners should know about software quality and ...
 
Measure and Increase Developer Productivity with Help of Serverless AWS Commu...
Measure and Increase Developer Productivity with Help of Serverless AWS Commu...Measure and Increase Developer Productivity with Help of Serverless AWS Commu...
Measure and Increase Developer Productivity with Help of Serverless AWS Commu...
 
CloudCamp London 3 - SymetrIQ - Phil Huber
CloudCamp London 3 - SymetrIQ -  Phil HuberCloudCamp London 3 - SymetrIQ -  Phil Huber
CloudCamp London 3 - SymetrIQ - Phil Huber
 
Base Logic Inc Solution Offering
Base Logic Inc Solution OfferingBase Logic Inc Solution Offering
Base Logic Inc Solution Offering
 
Performance Optimization: Incorporating Database and Code Optimzitation Into ...
Performance Optimization: Incorporating Database and Code Optimzitation Into ...Performance Optimization: Incorporating Database and Code Optimzitation Into ...
Performance Optimization: Incorporating Database and Code Optimzitation Into ...
 
Barrick simulation with mimic presentation
Barrick simulation with mimic presentationBarrick simulation with mimic presentation
Barrick simulation with mimic presentation
 
VMworld 2013: SDDC IT Operations Transformation: Multi-customer Lessons Learned
VMworld 2013: SDDC IT Operations Transformation:  Multi-customer Lessons LearnedVMworld 2013: SDDC IT Operations Transformation:  Multi-customer Lessons Learned
VMworld 2013: SDDC IT Operations Transformation: Multi-customer Lessons Learned
 
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPMAMIS 25: DevOps Best Practice for Oracle SOA and BPM
AMIS 25: DevOps Best Practice for Oracle SOA and BPM
 
Introduction to Chaos Engineering
Introduction to Chaos EngineeringIntroduction to Chaos Engineering
Introduction to Chaos Engineering
 

Kürzlich hochgeladen

Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMVoces Mineras
 
Market Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMarket Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMintel Group
 
IoT Insurance Observatory: summary 2024
IoT Insurance Observatory:  summary 2024IoT Insurance Observatory:  summary 2024
IoT Insurance Observatory: summary 2024Matteo Carbone
 
India Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample ReportIndia Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample ReportMintel Group
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCRashishs7044
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy Verified Accounts
 
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCRashishs7044
 
Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Riya Pathan
 
Kenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith PereraKenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith Pereraictsugar
 
8447779800, Low rate Call girls in Uttam Nagar Delhi NCR
8447779800, Low rate Call girls in Uttam Nagar Delhi NCR8447779800, Low rate Call girls in Uttam Nagar Delhi NCR
8447779800, Low rate Call girls in Uttam Nagar Delhi NCRashishs7044
 
Marketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent ChirchirMarketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent Chirchirictsugar
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Servicecallgirls2057
 
Future Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionFuture Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionMintel Group
 
Case study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailCase study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailAriel592675
 
8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCR8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCRashishs7044
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menzaictsugar
 
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfIntro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfpollardmorgan
 
Investment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy CheruiyotInvestment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy Cheruiyotictsugar
 
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCRashishs7044
 

Kürzlich hochgeladen (20)

Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQM
 
Market Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 EditionMarket Sizes Sample Report - 2024 Edition
Market Sizes Sample Report - 2024 Edition
 
IoT Insurance Observatory: summary 2024
IoT Insurance Observatory:  summary 2024IoT Insurance Observatory:  summary 2024
IoT Insurance Observatory: summary 2024
 
India Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample ReportIndia Consumer 2024 Redacted Sample Report
India Consumer 2024 Redacted Sample Report
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR
 
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCREnjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail Accounts
 
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
 
Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737Independent Call Girls Andheri Nightlaila 9967584737
Independent Call Girls Andheri Nightlaila 9967584737
 
Kenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith PereraKenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith Perera
 
8447779800, Low rate Call girls in Uttam Nagar Delhi NCR
8447779800, Low rate Call girls in Uttam Nagar Delhi NCR8447779800, Low rate Call girls in Uttam Nagar Delhi NCR
8447779800, Low rate Call girls in Uttam Nagar Delhi NCR
 
Marketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent ChirchirMarketplace and Quality Assurance Presentation - Vincent Chirchir
Marketplace and Quality Assurance Presentation - Vincent Chirchir
 
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort ServiceCall US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
Call US-88OO1O2216 Call Girls In Mahipalpur Female Escort Service
 
Future Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted VersionFuture Of Sample Report 2024 | Redacted Version
Future Of Sample Report 2024 | Redacted Version
 
Case study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detailCase study on tata clothing brand zudio in detail
Case study on tata clothing brand zudio in detail
 
8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCR8447779800, Low rate Call girls in Rohini Delhi NCR
8447779800, Low rate Call girls in Rohini Delhi NCR
 
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu MenzaYouth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
Youth Involvement in an Innovative Coconut Value Chain by Mwalimu Menza
 
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdfIntro to BCG's Carbon Emissions Benchmark_vF.pdf
Intro to BCG's Carbon Emissions Benchmark_vF.pdf
 
Investment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy CheruiyotInvestment in The Coconut Industry by Nancy Cheruiyot
Investment in The Coconut Industry by Nancy Cheruiyot
 
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
8447779800, Low rate Call girls in Kotla Mubarakpur Delhi NCR
 

Brisbane Scrum Users Group.2009 Feb25

  • 1. Technical Debt and What to do about it. Kane Mar Certified Scrum Trainer and Coach (CST and CSC) http://KaneMar.com Kane.Mar@gmail.com
  • 3. What is Technical Debt The concept of software complexity as debt was originally coined by Ward Cunningham in an experience report for OOPSLA ‘92 (*) Reference: http://c2.com/doc/oopsla92.html
  • 4. What is Technical Debt During the planning or execution of a software project, decisions are made to defer necessary work: It's too late in the LifeCycle? to upgrade to the new release of the compiler. We'll do it next time around. We're not completely conforming to the UserInterface guidelines. We'll get to it next time. We don't have time to uncruft (refactor, see RefactorMercilessly) the hyper-widget code. Punt until next time.
  • 5. What is Technical Debt A big pile of deferred work can gum up a project, yet many of the items on the list don't appear on a project team's radar, especially if the focus is primarily on new product features. Yet removing accumulated sludge needs to be accounted for in planning! Therefore: Make the debt visible. Keep an explicit list Technical Debt
  • 6. Quality and Velocity Correlation between declining quality and velocity 50.0 37.5 % Maintenance Velocity of New Development (PBI/$100k) 25.0 12.5 0 1 2 3 4 5 6 Category Title New Requirements Capability 2000 1500 Requirements 1000 500 0 1 2 3 4 5 6 Category Title
  • 7. The story of a burger ...
  • 8. How does “Technical Debt” occur? By not enforcing high quality standards in the definition of “done.” Cutting corners to achieve a higher velocity and meet impossible timelines leads to build up of low quality, unmaintainable code. Death spiral: As the maximum velocity of system goes down, even more corners are cut to compensate until the velocity approaches zero.
  • 9. Signs of Technical Debt The code is considered part of a core or legacy system There is either no testing, or minimal testing surrounding the code There is highly compartmentized knowledge regarding the core/legacy system, and it may be supported by only one or two people in the company (over specialization)
  • 10. Signs of Technical Debt The legacy system is not in a know state It takes as long to fix defects caused be adding new functionality, as it does to add the new functionality Re-platforming ... and then repeat the mistakes of the past
  • 11. What to do about Technical Debt Avoid accumulating technical debt Pay it off over time (mortgage) “Working with legacy code” by Michael Feathers An anti-pattern worth mentioning
  • 12. Avoid Technical Debt Development teams must curb over-optimism in assessing availability and capacity Management redirects attention from applying pressure to removing organizational impediments to progress Product Owners understand the iron triangle, ownership of risks, and impact of cutting quality ScrumMaster must prevent demonstration of any work that is not “done”
  • 13. Paying off Technical Debt Described by Michael Feathers in “Working Effectively with Legacy code” Start by introducing Continuous Integration Write Tests around customer reported defects Over a period of time a testing framework will be built up around the most brittle code
  • 14. And Avoid this anti-pattern There is a temptation to try and write a comprehensive testing framework around the entire product Does not address the defects that the customer views as most important May run out of money before you complete the framework