SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
TECHNICAL DEBT
  ... And What to Do About It!
THE SPEAKER

Kane Mar,
Scrumology.com

OutSofting.com
  Scrum Training

  Scrum Coaching
DO YOU KNOW THESE
     PROBLEMS?
Your team cannot change the system quick enough to
meet changing business needs

Your code is so complex only a few people in the
company are allowed to make changes

Your spend more time fixing defects introduced by
new functionality

You have recently re-platformed to newer technology
WHY SHOULD YOU
         CARE?
Be able to meet
changing business
needs

Reduce Total Cost of
Ownership

Build higher quality
products

Keep customers happy
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?

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
HOW DOES TECHNICAL
   DEBT HAPPEN?
By not enforcing high
quality standards

Cutting corners to
achieve a higher
velocity to meet
timelines

As the velocity of
system goes down, even
more corners are cut
COST OF MAINTENANCE

                                      Product Burndown
                    100

                     90

                     80
  Product Backlog



                     70

                     60

                     50

                     40

                     30

                     20

                     10

                      0
                          0   1   2   3   4       5       6   7   8   9

                                              Iteration
COST OF MAINTENANCE

                                  Cost of Maintenance
   Maintenance Cost




                      0   1   2     3    4   5    6     7   8   9

                                        Release
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 ... the legacy system is not in a
know state

There is highly compartmentalized 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
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
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”
AVOID TECHNICAL DEBT

Implement the Agile
Technical practices:

  Continuous
  Integration

  Test Driven
  Development

  Refactoring

  Pair Programming
STRATEGIES FOR PAYING
   TECHNICAL DEBT
Two strategies to
consider:

  Highest interest rate
  first approach

  Lowest balance first
  approach
PAYING OFF TECHNICAL
        DEBT
Described by Michael Feathers in “Working
Effectively with Legacy code”

  Start by introducing Continuous Integration

  Write Automated 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, but:

  This does not address the defects that the customer
  views as most important

  You may run out of money before you complete
  the framework, and

  You are not delivering new business value
IN CLOSING ...

By focusing on reducing technical debt, we can:

  Better meet changing business needs

  reduce Total Cost of Ownership

  Build higher quality products

  Keep our customers happy
THANK YOU!
REFERENCES
http://www.infoq.com/presentations/agile-quality-canary-
coalmine

http://martinfowler.com/articles/continuousIntegration.html

“Working Effectively with Legacy code,” by Michael
Feathers

“Test Driven Development: By Example”, by Kent
Beck
PHOTOS CREDITS


   http://www.flicker.com/photos/yujin_it
                                                                                               http://www.flickr.com/photos/majamom/
                                                 http://www.flickr.com/photos/slayer23/




http://www.flickr.com/photos/44442915@N00/                                                      http://www.flickr.com/photos/eivindw/
                                            http://www.flickr.com/photos/library_of_congress/




   http://www.flickr.com/photos/walkn/         http://www.flickr.com/photos/29143375@N05/        http://www.flicker.com/photos/vernhart/

Mais conteúdo relacionado

Destaque (8)

Imatges introducció
Imatges introduccióImatges introducció
Imatges introducció
 
SS file
SS fileSS file
SS file
 
Maapu Vechutaayan Aapu #VVel http://q.4rd.ca/aaacwS
Maapu Vechutaayan Aapu #VVel http://q.4rd.ca/aaacwSMaapu Vechutaayan Aapu #VVel http://q.4rd.ca/aaacwS
Maapu Vechutaayan Aapu #VVel http://q.4rd.ca/aaacwS
 
Como se mide la calidad de la proteína
Como se mide la calidad de la proteína Como se mide la calidad de la proteína
Como se mide la calidad de la proteína
 
"Manos a la Obra"
"Manos a la Obra""Manos a la Obra"
"Manos a la Obra"
 
Prologue TDL 2014
Prologue TDL 2014Prologue TDL 2014
Prologue TDL 2014
 
1st ave business
1st ave business1st ave business
1st ave business
 
Теорія обмежень (TOC), застосування в медицині
Теорія обмежень (TOC), застосування в медицині Теорія обмежень (TOC), застосування в медицині
Теорія обмежень (TOC), застосування в медицині
 

Semelhante a Reduce Technical Debt and Meet Changing Needs

QCon Beijing - April 2010
QCon Beijing - April 2010QCon Beijing - April 2010
QCon Beijing - April 2010Kane Mar
 
Brisbane Scrum Users Group.2009 Feb25
Brisbane Scrum Users Group.2009 Feb25Brisbane Scrum Users Group.2009 Feb25
Brisbane Scrum Users Group.2009 Feb25Kane Mar
 
Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Worksoft
 
Agile Eng Practices Agilesparks
Agile Eng Practices AgilesparksAgile Eng Practices Agilesparks
Agile Eng Practices AgilesparksYuval Yeret
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"Daniel Bryant
 
OpenText Live: Modeling your business processes to new ways of working
OpenText Live: Modeling your business processes to new ways of workingOpenText Live: Modeling your business processes to new ways of working
OpenText Live: Modeling your business processes to new ways of workingOpenText Portfolio
 
5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based Testing5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based TestingTurnKey Solutions
 
Business Plan Sample By Alan Ray
Business Plan Sample By Alan RayBusiness Plan Sample By Alan Ray
Business Plan Sample By Alan RayAlan Ray
 
Automation World: Testing and Evaluation Improve Product Quality for Manufact...
Automation World: Testing and Evaluation Improve Product Quality for Manufact...Automation World: Testing and Evaluation Improve Product Quality for Manufact...
Automation World: Testing and Evaluation Improve Product Quality for Manufact...Michael Muldoon
 
IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...
IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...
IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...IRJET Journal
 
SVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ BoxSVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ BoxPeter White
 
Eliminating Critical Quality Defects at a Component Manufacturer
Eliminating Critical Quality Defects at a Component ManufacturerEliminating Critical Quality Defects at a Component Manufacturer
Eliminating Critical Quality Defects at a Component ManufacturerAnirban Mazumdar
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447Steve Poole
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debtFadi Stephan
 

Semelhante a Reduce Technical Debt and Meet Changing Needs (20)

QCon Beijing - April 2010
QCon Beijing - April 2010QCon Beijing - April 2010
QCon Beijing - April 2010
 
Brisbane Scrum Users Group.2009 Feb25
Brisbane Scrum Users Group.2009 Feb25Brisbane Scrum Users Group.2009 Feb25
Brisbane Scrum Users Group.2009 Feb25
 
Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.Shift Left Quality Assurance: How to do it. Why it matters.
Shift Left Quality Assurance: How to do it. Why it matters.
 
Service assurance with predictive analytics
Service assurance with predictive analyticsService assurance with predictive analytics
Service assurance with predictive analytics
 
Agile Eng Practices Agilesparks
Agile Eng Practices AgilesparksAgile Eng Practices Agilesparks
Agile Eng Practices Agilesparks
 
Puppet on a string
Puppet on a stringPuppet on a string
Puppet on a string
 
JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"JavaOne 2016 "Java, Microservices, Cloud and Containers"
JavaOne 2016 "Java, Microservices, Cloud and Containers"
 
OpenText Live: Modeling your business processes to new ways of working
OpenText Live: Modeling your business processes to new ways of workingOpenText Live: Modeling your business processes to new ways of working
OpenText Live: Modeling your business processes to new ways of working
 
5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based Testing5 Steps to Get Precise SAP Impact-Based Testing
5 Steps to Get Precise SAP Impact-Based Testing
 
Business Plan Sample By Alan Ray
Business Plan Sample By Alan RayBusiness Plan Sample By Alan Ray
Business Plan Sample By Alan Ray
 
The Business Value of Data Modeling
The Business Value of Data ModelingThe Business Value of Data Modeling
The Business Value of Data Modeling
 
PQ document
PQ documentPQ document
PQ document
 
Tackling technical debt
Tackling technical debtTackling technical debt
Tackling technical debt
 
Automation World: Testing and Evaluation Improve Product Quality for Manufact...
Automation World: Testing and Evaluation Improve Product Quality for Manufact...Automation World: Testing and Evaluation Improve Product Quality for Manufact...
Automation World: Testing and Evaluation Improve Product Quality for Manufact...
 
IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...
IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...
IRJET- Improving Quality and Productivity in Switchgear Tank Welding through ...
 
SVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ BoxSVCC 2011 - 0 - 60: QA Automation @ Box
SVCC 2011 - 0 - 60: QA Automation @ Box
 
FMEA-Intro.ppt
FMEA-Intro.pptFMEA-Intro.ppt
FMEA-Intro.ppt
 
Eliminating Critical Quality Defects at a Component Manufacturer
Eliminating Critical Quality Defects at a Component ManufacturerEliminating Critical Quality Defects at a Component Manufacturer
Eliminating Critical Quality Defects at a Component Manufacturer
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
 

Mais de d0nn9n

腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)d0nn9n
 
腾讯大讲堂:55 企业法律风险防范
腾讯大讲堂:55 企业法律风险防范腾讯大讲堂:55 企业法律风险防范
腾讯大讲堂:55 企业法律风险防范d0nn9n
 
腾讯大讲堂:56 qzone安全之路
腾讯大讲堂:56 qzone安全之路腾讯大讲堂:56 qzone安全之路
腾讯大讲堂:56 qzone安全之路d0nn9n
 
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里d0nn9n
 
腾讯大讲堂:57 超级qq的千万之路
腾讯大讲堂:57 超级qq的千万之路 腾讯大讲堂:57 超级qq的千万之路
腾讯大讲堂:57 超级qq的千万之路 d0nn9n
 
蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈d0nn9n
 
赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展d0nn9n
 
Yanggang wps
Yanggang wpsYanggang wps
Yanggang wpsd0nn9n
 
熊节 - 软件工厂的精益之路
熊节 - 软件工厂的精益之路熊节 - 软件工厂的精益之路
熊节 - 软件工厂的精益之路d0nn9n
 
谢恩伟 - 微软在云端
谢恩伟 - 微软在云端谢恩伟 - 微软在云端
谢恩伟 - 微软在云端d0nn9n
 
去哪儿平台技术
去哪儿平台技术去哪儿平台技术
去哪儿平台技术d0nn9n
 
吴磊 - Silverlight企业级RIA
吴磊 - Silverlight企业级RIA吴磊 - Silverlight企业级RIA
吴磊 - Silverlight企业级RIAd0nn9n
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrumd0nn9n
 
Tim - FSharp
Tim - FSharpTim - FSharp
Tim - FSharpd0nn9n
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracled0nn9n
 
Paulking groovy
Paulking groovyPaulking groovy
Paulking groovyd0nn9n
 
Paulking dlp
Paulking dlpPaulking dlp
Paulking dlpd0nn9n
 
Patrick jcp
Patrick jcpPatrick jcp
Patrick jcpd0nn9n
 
Nick twitter
Nick twitterNick twitter
Nick twitterd0nn9n
 
Marc facebook
Marc facebookMarc facebook
Marc facebookd0nn9n
 

Mais de d0nn9n (20)

腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
腾讯大讲堂:62 拇指下的精彩(手机qq交互设计经验分享)
 
腾讯大讲堂:55 企业法律风险防范
腾讯大讲堂:55 企业法律风险防范腾讯大讲堂:55 企业法律风险防范
腾讯大讲堂:55 企业法律风险防范
 
腾讯大讲堂:56 qzone安全之路
腾讯大讲堂:56 qzone安全之路腾讯大讲堂:56 qzone安全之路
腾讯大讲堂:56 qzone安全之路
 
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
腾讯大讲堂:59 数据蕴含商机,挖掘决胜千里
 
腾讯大讲堂:57 超级qq的千万之路
腾讯大讲堂:57 超级qq的千万之路 腾讯大讲堂:57 超级qq的千万之路
腾讯大讲堂:57 超级qq的千万之路
 
蔡学镛 Rebol漫谈
蔡学镛   Rebol漫谈蔡学镛   Rebol漫谈
蔡学镛 Rebol漫谈
 
赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展赵泽欣 - 淘宝网前端应用与发展
赵泽欣 - 淘宝网前端应用与发展
 
Yanggang wps
Yanggang wpsYanggang wps
Yanggang wps
 
熊节 - 软件工厂的精益之路
熊节 - 软件工厂的精益之路熊节 - 软件工厂的精益之路
熊节 - 软件工厂的精益之路
 
谢恩伟 - 微软在云端
谢恩伟 - 微软在云端谢恩伟 - 微软在云端
谢恩伟 - 微软在云端
 
去哪儿平台技术
去哪儿平台技术去哪儿平台技术
去哪儿平台技术
 
吴磊 - Silverlight企业级RIA
吴磊 - Silverlight企业级RIA吴磊 - Silverlight企业级RIA
吴磊 - Silverlight企业级RIA
 
Tom - Scrum
Tom - ScrumTom - Scrum
Tom - Scrum
 
Tim - FSharp
Tim - FSharpTim - FSharp
Tim - FSharp
 
Tiger oracle
Tiger oracleTiger oracle
Tiger oracle
 
Paulking groovy
Paulking groovyPaulking groovy
Paulking groovy
 
Paulking dlp
Paulking dlpPaulking dlp
Paulking dlp
 
Patrick jcp
Patrick jcpPatrick jcp
Patrick jcp
 
Nick twitter
Nick twitterNick twitter
Nick twitter
 
Marc facebook
Marc facebookMarc facebook
Marc facebook
 

Último

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Último (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

Reduce Technical Debt and Meet Changing Needs

  • 1. TECHNICAL DEBT ... And What to Do About It!
  • 3. DO YOU KNOW THESE PROBLEMS? Your team cannot change the system quick enough to meet changing business needs Your code is so complex only a few people in the company are allowed to make changes Your spend more time fixing defects introduced by new functionality You have recently re-platformed to newer technology
  • 4. WHY SHOULD YOU CARE? Be able to meet changing business needs Reduce Total Cost of Ownership Build higher quality products Keep customers happy
  • 5.
  • 6. 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
  • 7. 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
  • 8. HOW DOES TECHNICAL DEBT HAPPEN? By not enforcing high quality standards Cutting corners to achieve a higher velocity to meet timelines As the velocity of system goes down, even more corners are cut
  • 9. COST OF MAINTENANCE Product Burndown 100 90 80 Product Backlog 70 60 50 40 30 20 10 0 0 1 2 3 4 5 6 7 8 9 Iteration
  • 10. COST OF MAINTENANCE Cost of Maintenance Maintenance Cost 0 1 2 3 4 5 6 7 8 9 Release
  • 11.
  • 12. 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 ... the legacy system is not in a know state There is highly compartmentalized knowledge regarding the core/legacy system, and it may be supported by only one or two people in the company (over specialization)
  • 13. SIGNS OF TECHNICAL DEBT 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
  • 14.
  • 15. 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”
  • 16. AVOID TECHNICAL DEBT Implement the Agile Technical practices: Continuous Integration Test Driven Development Refactoring Pair Programming
  • 17. STRATEGIES FOR PAYING TECHNICAL DEBT Two strategies to consider: Highest interest rate first approach Lowest balance first approach
  • 18. PAYING OFF TECHNICAL DEBT Described by Michael Feathers in “Working Effectively with Legacy code” Start by introducing Continuous Integration Write Automated Tests around customer reported defects Over a period of time a testing framework will be built up around the most brittle code
  • 19.
  • 20. AND AVOID THIS ANTI- PATTERN There is a temptation to try and write a comprehensive testing framework around the entire product, but: This does not address the defects that the customer views as most important You may run out of money before you complete the framework, and You are not delivering new business value
  • 21. IN CLOSING ... By focusing on reducing technical debt, we can: Better meet changing business needs reduce Total Cost of Ownership Build higher quality products Keep our customers happy
  • 24. PHOTOS CREDITS http://www.flicker.com/photos/yujin_it http://www.flickr.com/photos/majamom/ http://www.flickr.com/photos/slayer23/ http://www.flickr.com/photos/44442915@N00/ http://www.flickr.com/photos/eivindw/ http://www.flickr.com/photos/library_of_congress/ http://www.flickr.com/photos/walkn/ http://www.flickr.com/photos/29143375@N05/ http://www.flicker.com/photos/vernhart/