SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
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!

Más contenido relacionado

Destacado

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
 

Destacado (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
 

Similar a 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
 

Similar a 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
 

Último

Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdftbatkhuu1
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Dave Litwiller
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsCash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsApsara Of India
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaShree Krishna Exports
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableDipal Arora
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyEthan lee
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communicationskarancommunications
 

Último (20)

Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdf
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call GirlsCash Payment 9602870969 Escort Service in Udaipur Call Girls
Cash Payment 9602870969 Escort Service in Udaipur Call Girls
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in India
 
Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517
Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517
Nepali Escort Girl Kakori \ 9548273370 Indian Call Girls Service Lucknow ₹,9517
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case studyThe Coffee Bean & Tea Leaf(CBTL), Business strategy case study
The Coffee Bean & Tea Leaf(CBTL), Business strategy case study
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communications
 

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