SlideShare a Scribd company logo
Managing
Technical Debt
In Your Software Team
Chad Windnagle
T O P I C I N T R O D U C T I O N
I was released
in1990.
Legacy
Application
T E A M P L A Y E R
D E F I N I N G
T E C H N I C A L D E B T
D E B T
M E T A P H O R
@WardCunningham
M I N D S E T
A C T U A L T E C H N I C A L D E B T
Duplicate
Code
Inconsistent
Code
Parsing
Errors
Slow
Code
Inflexible
Code
Dead
Code
W H A T C A U S E S
T E C H N I C A L D E B T ?
A C C E P T A B L E D E B T :
T E C H N I C A L L O A N
A C C E P T A B L E D E B T :
P R O O F O F L I F E
U N A C C E P T A B L E D E B T :
C A R E L E S S D E V E L O P E R S
U N A C C E P T A B L E D E B T :
C A R E L E S S M A N A G E M E N T
T H E D E B T Q U A D R A N T
D E B T Q U A D R A N T
@MartinFowler
D E B T Q U A D R A N T
Reckless Prudent
Inadvertent
Deliberate
12
8
6
3
4
1
3
6
Technical Debt Accrued
P A U S E
N O P R O B L E M C A N B E
S O L V E D B Y T H E S A M E
K I N D O F T H I N K I N G
T H A T C R E A T E D I T .
A L B E R T E I N S T E I N , T H E O R Y O F
S P E C I A L R E L A T I V I T Y .
I G N O R E D T E C H N I C A L
D E B T I S A P R O B L E M
S L O W I N G D E V E L O P M E N T
V E L O C I T Y
V E L O C I T Y
0
3
6
9
12
developer 1 developer 2 developer 3 developer 4
Technical Debt Feature Development
Sprint Velocity: 44 (11 x 4)
Debt Points: 11
Feature Points: 33
V E L O C I T Y
0
3
6
9
12
developer 1 developer 2 developer 3 developer 4
Technical Debt Feature Development
Sprint Velocity: 44 (11 x 4)
Debt Points: 25
Feature Points: 19
L A C K O F T E A M G R O W T H
B R O K E N W I N D O W S
B R O K E N W I N D O W S
D E V E L O P E R B U R N O U T
T E A M C O N F L I C T
I N T E R - D E P A R T M E N T
C O N F L I C T
T U R N O V E R / A T T R I T I O N
L O C A T I N G
T E C H N I C A L D E B T
Strict Mode
Logging
IDE Code
Quality
Code Analysis
Utilities
Code Quality
Gatekeepers
Talk To
Developers
S T R A T E G I E S F O R D E B T
M A N A G E M E N T
R E B U I L D O R R E F A C T O R ?
R E F A C T O R I N G
E F F E C T I V E L Y
R E B U I L D I N G
S U C C E S S F U L L Y
I N C R E A S I N G V E L O C I T Y
C O N C L U S I O N

More Related Content

What's hot

Competency-Based LMS
Competency-Based LMSCompetency-Based LMS
Competency-Based LMS
Fidelis
 
Competency-Based Learning and Learning Relationship Management #LRM
Competency-Based Learning and Learning Relationship Management #LRMCompetency-Based Learning and Learning Relationship Management #LRM
Competency-Based Learning and Learning Relationship Management #LRM
Gunnar Counselman
 
IBS prevalence and etiology
IBS prevalence and etiologyIBS prevalence and etiology
IBS prevalence and etiology
Palak Agrawal
 
Toby Scott Startup City
Toby Scott Startup CityToby Scott Startup City
Toby Scott Startup City
The Studio, Dublin City Council
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
Richard McIntyre
 
People Centred Design & Working Agile
People Centred Design & Working AgilePeople Centred Design & Working Agile
People Centred Design & Working Agile
David Haddow
 
European Rotors - Rotorcraft and VTOL Symposium
European Rotors - Rotorcraft and VTOL SymposiumEuropean Rotors - Rotorcraft and VTOL Symposium
European Rotors - Rotorcraft and VTOL Symposium
Leonardo
 
Startup na sua Empresa
Startup na sua EmpresaStartup na sua Empresa
Startup na sua Empresa
Lucas Montano
 
TDD Using the SOLID Principles
TDD Using the SOLID PrinciplesTDD Using the SOLID Principles
TDD Using the SOLID Principles
Jenna Pederson
 
Auto, Maschine, Buch
Auto, Maschine, BuchAuto, Maschine, Buch
Auto, Maschine, Buch
Jens Himmelreich
 
Construir productos y transformación digital mezclando tecnología y educación...
Construir productos y transformación digital mezclando tecnología y educación...Construir productos y transformación digital mezclando tecnología y educación...
Construir productos y transformación digital mezclando tecnología y educación...
Rosa Cano
 
Azinova - Company Profile
Azinova - Company ProfileAzinova - Company Profile
Azinova - Company Profile
Azinova Technologies
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
Suman Karumuri
 
Rosa Cano_openexpo2018_sin_texto
Rosa Cano_openexpo2018_sin_textoRosa Cano_openexpo2018_sin_texto
Rosa Cano_openexpo2018_sin_texto
Rosa Cano
 
Pintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @PinterestPintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @Pinterest
Suman Karumuri
 
Keynote: Retos de un continuo crecimiento profesional en Drupal
Keynote: Retos de un continuo crecimiento profesional en DrupalKeynote: Retos de un continuo crecimiento profesional en Drupal
Keynote: Retos de un continuo crecimiento profesional en Drupal
Veronica Karen Vedia Flores
 
Ville Hulkko - Artificial Intelligence as a service
Ville Hulkko - Artificial Intelligence as a serviceVille Hulkko - Artificial Intelligence as a service
Ville Hulkko - Artificial Intelligence as a service
Eficode
 
Apresentacao ICPM
Apresentacao  ICPMApresentacao  ICPM
Apresentacao ICPM
Fabienne Pimenta
 
Workforce passport program - session 13 CV writing
Workforce passport program -  session 13 CV writingWorkforce passport program -  session 13 CV writing
Workforce passport program - session 13 CV writing
tamer elmoghazy
 
notepad++
notepad++notepad++
notepad++
rishikesh dubey
 

What's hot (20)

Competency-Based LMS
Competency-Based LMSCompetency-Based LMS
Competency-Based LMS
 
Competency-Based Learning and Learning Relationship Management #LRM
Competency-Based Learning and Learning Relationship Management #LRMCompetency-Based Learning and Learning Relationship Management #LRM
Competency-Based Learning and Learning Relationship Management #LRM
 
IBS prevalence and etiology
IBS prevalence and etiologyIBS prevalence and etiology
IBS prevalence and etiology
 
Toby Scott Startup City
Toby Scott Startup CityToby Scott Startup City
Toby Scott Startup City
 
Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?Semantic BDD with ShouldIT?
Semantic BDD with ShouldIT?
 
People Centred Design & Working Agile
People Centred Design & Working AgilePeople Centred Design & Working Agile
People Centred Design & Working Agile
 
European Rotors - Rotorcraft and VTOL Symposium
European Rotors - Rotorcraft and VTOL SymposiumEuropean Rotors - Rotorcraft and VTOL Symposium
European Rotors - Rotorcraft and VTOL Symposium
 
Startup na sua Empresa
Startup na sua EmpresaStartup na sua Empresa
Startup na sua Empresa
 
TDD Using the SOLID Principles
TDD Using the SOLID PrinciplesTDD Using the SOLID Principles
TDD Using the SOLID Principles
 
Auto, Maschine, Buch
Auto, Maschine, BuchAuto, Maschine, Buch
Auto, Maschine, Buch
 
Construir productos y transformación digital mezclando tecnología y educación...
Construir productos y transformación digital mezclando tecnología y educación...Construir productos y transformación digital mezclando tecnología y educación...
Construir productos y transformación digital mezclando tecnología y educación...
 
Azinova - Company Profile
Azinova - Company ProfileAzinova - Company Profile
Azinova - Company Profile
 
Pintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@PinterestPintrace: Distributed tracing@Pinterest
Pintrace: Distributed tracing@Pinterest
 
Rosa Cano_openexpo2018_sin_texto
Rosa Cano_openexpo2018_sin_textoRosa Cano_openexpo2018_sin_texto
Rosa Cano_openexpo2018_sin_texto
 
Pintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @PinterestPintrace: Distributed tracing @Pinterest
Pintrace: Distributed tracing @Pinterest
 
Keynote: Retos de un continuo crecimiento profesional en Drupal
Keynote: Retos de un continuo crecimiento profesional en DrupalKeynote: Retos de un continuo crecimiento profesional en Drupal
Keynote: Retos de un continuo crecimiento profesional en Drupal
 
Ville Hulkko - Artificial Intelligence as a service
Ville Hulkko - Artificial Intelligence as a serviceVille Hulkko - Artificial Intelligence as a service
Ville Hulkko - Artificial Intelligence as a service
 
Apresentacao ICPM
Apresentacao  ICPMApresentacao  ICPM
Apresentacao ICPM
 
Workforce passport program - session 13 CV writing
Workforce passport program -  session 13 CV writingWorkforce passport program -  session 13 CV writing
Workforce passport program - session 13 CV writing
 
notepad++
notepad++notepad++
notepad++
 

Similar to Managing Technical Debt - WordCamp Orlando 2017

Nuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summitNuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summit
Greta Strolyte
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to Agile
Doc Norton
 
iBeacon 101 - Online Tuesday
iBeacon 101 - Online TuesdayiBeacon 101 - Online Tuesday
iBeacon 101 - Online Tuesday
Remco Bron
 
Cloud Identity Deployed
Cloud Identity DeployedCloud Identity Deployed
Cloud Identity Deployed
Pablo Valarezo
 
A ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
A ChatGPT Content Creation Master Class - Leah Faul, 15000 CubitsA ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
A ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
DigiMarCon - Digital Marketing, Media and Advertising Conferences & Exhibitions
 
Elements of User Experience for Mobile Apps
Elements of User Experience for Mobile AppsElements of User Experience for Mobile Apps
Elements of User Experience for Mobile Apps
Pek Pongpaet
 
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe ElliotArte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
TheArtMarket
 
Touch Drive - A touch-based multi-function controller for autonomous driving
Touch Drive - A touch-based multi-function controller for autonomous drivingTouch Drive - A touch-based multi-function controller for autonomous driving
Touch Drive - A touch-based multi-function controller for autonomous driving
Juntima Nawilaijaroen
 
Agile Workshop for Teams
Agile Workshop for TeamsAgile Workshop for Teams
Agile Workshop for Teams
TroyAnderson54
 
The Digital Transformation: A New World Order
The Digital Transformation: A New World OrderThe Digital Transformation: A New World Order
The Digital Transformation: A New World Order
AMA Iowa (American Marketing Association Iowa Chapter)
 
Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化
Christina Lin
 
Gain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS Summit
Gain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS SummitGain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS Summit
Gain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS Summit
Amazon Web Services
 
Location-Based Mobile Ordering
Location-Based Mobile OrderingLocation-Based Mobile Ordering
Location-Based Mobile Ordering
Nicholas Kent
 
Prez perf w espace_priggi
Prez perf w espace_priggiPrez perf w espace_priggi
Prez perf w espace_priggi
Pascal Riggi
 
Gain Maximum Visibility - DEM06 - Anaheim AWS Summit
Gain Maximum Visibility - DEM06 - Anaheim AWS SummitGain Maximum Visibility - DEM06 - Anaheim AWS Summit
Gain Maximum Visibility - DEM06 - Anaheim AWS Summit
Amazon Web Services
 
D DE S - copia.pptx
D DE S - copia.pptxD DE S - copia.pptx
D DE S - copia.pptx
YURIANIDANIGARCIA
 
Event Planning & Trends: Design, Technology & F&B
Event Planning & Trends: Design, Technology & F&BEvent Planning & Trends: Design, Technology & F&B
Event Planning & Trends: Design, Technology & F&B
Kristi Casey Sanders, CMP, CMM, DES, HMCC
 
Introducing the Unified Cloud - Sean Bruton
Introducing the Unified Cloud - Sean Bruton Introducing the Unified Cloud - Sean Bruton
Introducing the Unified Cloud - Sean Bruton
Hostway|HOSTING
 
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
Gabe Tartaglia	 - Engaging in a Connected World With the Power of AudioGabe Tartaglia	 - Engaging in a Connected World With the Power of Audio
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
Julia Grosman
 
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
Gabe Tartaglia -  Engaging in a Connected World With the Power of AudioGabe Tartaglia -  Engaging in a Connected World With the Power of Audio
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
Julia Grosman
 

Similar to Managing Technical Debt - WordCamp Orlando 2017 (20)

Nuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summitNuno Job - what's next for software - ANDdigital tech summit
Nuno Job - what's next for software - ANDdigital tech summit
 
Switching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to AgileSwitching horses midstream - From Waterfall to Agile
Switching horses midstream - From Waterfall to Agile
 
iBeacon 101 - Online Tuesday
iBeacon 101 - Online TuesdayiBeacon 101 - Online Tuesday
iBeacon 101 - Online Tuesday
 
Cloud Identity Deployed
Cloud Identity DeployedCloud Identity Deployed
Cloud Identity Deployed
 
A ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
A ChatGPT Content Creation Master Class - Leah Faul, 15000 CubitsA ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
A ChatGPT Content Creation Master Class - Leah Faul, 15000 Cubits
 
Elements of User Experience for Mobile Apps
Elements of User Experience for Mobile AppsElements of User Experience for Mobile Apps
Elements of User Experience for Mobile Apps
 
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe ElliotArte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
Arte Online Madrid 2017: "Tecnología web para el mundo del arte" por Joe Elliot
 
Touch Drive - A touch-based multi-function controller for autonomous driving
Touch Drive - A touch-based multi-function controller for autonomous drivingTouch Drive - A touch-based multi-function controller for autonomous driving
Touch Drive - A touch-based multi-function controller for autonomous driving
 
Agile Workshop for Teams
Agile Workshop for TeamsAgile Workshop for Teams
Agile Workshop for Teams
 
The Digital Transformation: A New World Order
The Digital Transformation: A New World OrderThe Digital Transformation: A New World Order
The Digital Transformation: A New World Order
 
Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化Taipei – 加速、整合、自動化
Taipei – 加速、整合、自動化
 
Gain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS Summit
Gain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS SummitGain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS Summit
Gain Maximum Visibility into Your Applications - DEM04 - Atlanta AWS Summit
 
Location-Based Mobile Ordering
Location-Based Mobile OrderingLocation-Based Mobile Ordering
Location-Based Mobile Ordering
 
Prez perf w espace_priggi
Prez perf w espace_priggiPrez perf w espace_priggi
Prez perf w espace_priggi
 
Gain Maximum Visibility - DEM06 - Anaheim AWS Summit
Gain Maximum Visibility - DEM06 - Anaheim AWS SummitGain Maximum Visibility - DEM06 - Anaheim AWS Summit
Gain Maximum Visibility - DEM06 - Anaheim AWS Summit
 
D DE S - copia.pptx
D DE S - copia.pptxD DE S - copia.pptx
D DE S - copia.pptx
 
Event Planning & Trends: Design, Technology & F&B
Event Planning & Trends: Design, Technology & F&BEvent Planning & Trends: Design, Technology & F&B
Event Planning & Trends: Design, Technology & F&B
 
Introducing the Unified Cloud - Sean Bruton
Introducing the Unified Cloud - Sean Bruton Introducing the Unified Cloud - Sean Bruton
Introducing the Unified Cloud - Sean Bruton
 
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
Gabe Tartaglia	 - Engaging in a Connected World With the Power of AudioGabe Tartaglia	 - Engaging in a Connected World With the Power of Audio
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
 
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
Gabe Tartaglia -  Engaging in a Connected World With the Power of AudioGabe Tartaglia -  Engaging in a Connected World With the Power of Audio
Gabe Tartaglia - Engaging in a Connected World With the Power of Audio
 

More from Chad Windnagle

Get queued
Get queuedGet queued
Get queued
Chad Windnagle
 
Good dev citizen
Good dev citizenGood dev citizen
Good dev citizen
Chad Windnagle
 
Joomla tempates talk
Joomla tempates talkJoomla tempates talk
Joomla tempates talk
Chad Windnagle
 
May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014
Chad Windnagle
 
Google Summer of Code Presentation - JWC12
Google Summer of Code Presentation - JWC12Google Summer of Code Presentation - JWC12
Google Summer of Code Presentation - JWC12
Chad Windnagle
 
Template overrides austin
Template overrides   austinTemplate overrides   austin
Template overrides austin
Chad Windnagle
 
Joomla Essential Extensions
Joomla Essential ExtensionsJoomla Essential Extensions
Joomla Essential Extensions
Chad Windnagle
 
Getting Involved in the Joomla Community
Getting Involved in the Joomla CommunityGetting Involved in the Joomla Community
Getting Involved in the Joomla Community
Chad Windnagle
 
Developing joomla 1.6 templates - Joomla!Day NYC December 2010
Developing joomla 1.6 templates - Joomla!Day NYC December 2010Developing joomla 1.6 templates - Joomla!Day NYC December 2010
Developing joomla 1.6 templates - Joomla!Day NYC December 2010
Chad Windnagle
 
Developing joomla 1.6 templates
Developing joomla 1.6 templatesDeveloping joomla 1.6 templates
Developing joomla 1.6 templates
Chad Windnagle
 

More from Chad Windnagle (10)

Get queued
Get queuedGet queued
Get queued
 
Good dev citizen
Good dev citizenGood dev citizen
Good dev citizen
 
Joomla tempates talk
Joomla tempates talkJoomla tempates talk
Joomla tempates talk
 
May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014May the core be with you - JandBeyond 2014
May the core be with you - JandBeyond 2014
 
Google Summer of Code Presentation - JWC12
Google Summer of Code Presentation - JWC12Google Summer of Code Presentation - JWC12
Google Summer of Code Presentation - JWC12
 
Template overrides austin
Template overrides   austinTemplate overrides   austin
Template overrides austin
 
Joomla Essential Extensions
Joomla Essential ExtensionsJoomla Essential Extensions
Joomla Essential Extensions
 
Getting Involved in the Joomla Community
Getting Involved in the Joomla CommunityGetting Involved in the Joomla Community
Getting Involved in the Joomla Community
 
Developing joomla 1.6 templates - Joomla!Day NYC December 2010
Developing joomla 1.6 templates - Joomla!Day NYC December 2010Developing joomla 1.6 templates - Joomla!Day NYC December 2010
Developing joomla 1.6 templates - Joomla!Day NYC December 2010
 
Developing joomla 1.6 templates
Developing joomla 1.6 templatesDeveloping joomla 1.6 templates
Developing joomla 1.6 templates
 

Recently uploaded

5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
ihlasbinance2003
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
camseq
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
Dr Ramhari Poudyal
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
jpsjournal1
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
NazakatAliKhoso2
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
bijceesjournal
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
insn4465
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
gerogepatton
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
mamunhossenbd75
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
Aditya Rajan Patra
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
JamalHussainArman
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
zubairahmad848137
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
Yasser Mahgoub
 

Recently uploaded (20)

5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
5214-1693458878915-Unit 6 2023 to 2024 academic year assignment (AutoRecovere...
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Modelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdfModelagem de um CSTR com reação endotermica.pdf
Modelagem de um CSTR com reação endotermica.pdf
 
Literature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptxLiterature Review Basics and Understanding Reference Management.pptx
Literature Review Basics and Understanding Reference Management.pptx
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECTCHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
CHINA’S GEO-ECONOMIC OUTREACH IN CENTRAL ASIAN COUNTRIES AND FUTURE PROSPECT
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 
Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...Comparative analysis between traditional aquaponics and reconstructed aquapon...
Comparative analysis between traditional aquaponics and reconstructed aquapon...
 
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
哪里办理(csu毕业证书)查尔斯特大学毕业证硕士学历原版一模一样
 
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODELDEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
DEEP LEARNING FOR SMART GRID INTRUSION DETECTION: A HYBRID CNN-LSTM-BASED MODEL
 
Heat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation pptHeat Resistant Concrete Presentation ppt
Heat Resistant Concrete Presentation ppt
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
Recycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part IIIRecycled Concrete Aggregate in Construction Part III
Recycled Concrete Aggregate in Construction Part III
 
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptxML Based Model for NIDS MSc Updated Presentation.v2.pptx
ML Based Model for NIDS MSc Updated Presentation.v2.pptx
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
2008 BUILDING CONSTRUCTION Illustrated - Ching Chapter 02 The Building.pdf
 

Managing Technical Debt - WordCamp Orlando 2017

  • 1. Managing Technical Debt In Your Software Team Chad Windnagle
  • 2. T O P I C I N T R O D U C T I O N
  • 3.
  • 4.
  • 7. T E A M P L A Y E R
  • 8. D E F I N I N G T E C H N I C A L D E B T
  • 9. D E B T M E T A P H O R @WardCunningham
  • 10. M I N D S E T
  • 11. A C T U A L T E C H N I C A L D E B T Duplicate Code Inconsistent Code Parsing Errors Slow Code Inflexible Code Dead Code
  • 12. W H A T C A U S E S T E C H N I C A L D E B T ?
  • 13. A C C E P T A B L E D E B T : T E C H N I C A L L O A N
  • 14. A C C E P T A B L E D E B T : P R O O F O F L I F E
  • 15. U N A C C E P T A B L E D E B T : C A R E L E S S D E V E L O P E R S
  • 16. U N A C C E P T A B L E D E B T : C A R E L E S S M A N A G E M E N T
  • 17. T H E D E B T Q U A D R A N T
  • 18. D E B T Q U A D R A N T @MartinFowler
  • 19. D E B T Q U A D R A N T Reckless Prudent Inadvertent Deliberate 12 8 6 3 4 1 3 6 Technical Debt Accrued
  • 20. P A U S E
  • 21. N O P R O B L E M C A N B E S O L V E D B Y T H E S A M E K I N D O F T H I N K I N G T H A T C R E A T E D I T . A L B E R T E I N S T E I N , T H E O R Y O F S P E C I A L R E L A T I V I T Y .
  • 22. I G N O R E D T E C H N I C A L D E B T I S A P R O B L E M
  • 23. S L O W I N G D E V E L O P M E N T V E L O C I T Y
  • 24. V E L O C I T Y 0 3 6 9 12 developer 1 developer 2 developer 3 developer 4 Technical Debt Feature Development Sprint Velocity: 44 (11 x 4) Debt Points: 11 Feature Points: 33
  • 25. V E L O C I T Y 0 3 6 9 12 developer 1 developer 2 developer 3 developer 4 Technical Debt Feature Development Sprint Velocity: 44 (11 x 4) Debt Points: 25 Feature Points: 19
  • 26. L A C K O F T E A M G R O W T H
  • 27. B R O K E N W I N D O W S
  • 28.
  • 29. B R O K E N W I N D O W S
  • 30. D E V E L O P E R B U R N O U T
  • 31. T E A M C O N F L I C T
  • 32. I N T E R - D E P A R T M E N T C O N F L I C T
  • 33. T U R N O V E R / A T T R I T I O N
  • 34. L O C A T I N G T E C H N I C A L D E B T Strict Mode Logging IDE Code Quality Code Analysis Utilities Code Quality Gatekeepers Talk To Developers
  • 35. S T R A T E G I E S F O R D E B T M A N A G E M E N T
  • 36. R E B U I L D O R R E F A C T O R ?
  • 37. R E F A C T O R I N G E F F E C T I V E L Y
  • 38. R E B U I L D I N G S U C C E S S F U L L Y
  • 39. I N C R E A S I N G V E L O C I T Y
  • 40. C O N C L U S I O N

Editor's Notes

  1. Key Points: thank you for coming please ask me questions at the _end_ Let’s start
  2. Key Points: Joined Advanced 2 years ago started maintaining a legacy application Written in perl code bases change over time.
  3. Key Points perl is _old_ as efff Perl was first released in 1987
  4. Key Points: The top song in 1987 was “I wanna dance with somebody” by Whitney Houston
  5. Key Points: I wasn’t born until 1990. All this to say - perl has been around for a while.
  6. Key Points: legacy applications tend to breed technical debt Legacy applications show their age You can look at a code base and see the evidence of change and growth and expansion of features different code styles different design patterns team members have changed the application vision and purpose has evolved ultimately what I wanted to do was learn how to deal with technical debt
  7. Key Points: I wanted to help my team deal with technical debt Its not just old systems running on something like COBOL who have technical debt, many organizations have this problem some organizations may not acknowledge that they have it
  8. Key Points Defining the term and what it means is important You can’t begin to solve the problem unless you understand it change this to define debt first, then talk about cunningham.
  9. Key Points The debt metaphor was coined by this guy - Ward Cunningham It was intended to be a metaphor for explaining the process of code refactoring in the software development life cycle He was trying to communicate the need to go back and change code that was already written and working, but because the team had improved their knowledge and understanding of the problem, they could rewrite the code to better address the problem they needed to solve. the metaphor works well because it allows us to talk about other aspects of finance and compare them to software development.
  10. Key Points it’s important to have a proper mindset when talking about technical debt. Technical debt can be the result of many different factors. Remember Cunningham? He explains further that the debt metaphor can be taken further with the idea of something like a loan. You can have a loan within a software project implement a solution faster than normal understand that you’ll have to go back and change it later it might be worthwhile to do this to get a feature to users faster Big point: its because of these idiosyncrasies that technical debt is complex - and therefore requires an open mind to fully understand and resolve.
  11. Key points make these pop in Its easy to theorize about technical debt - let’s look at actual examples Duplicate code Duplicate code is code that simply is copy and pasted throughout the system to do the same thing everywhere. If you’re having to copy and paste functionality throughout your code base, you should be finding a way to implement that in a single place and have it inherited to other sections of your codebase. Inconsistent Coding Practices If your team has failed to settle on, and enforce a code style with an automated code style tool then you will incur a small amount of technical debt in the form of visual debt. Code Warnings / Errors Many programming languages have levels of strictness when compiling and parsing the language. These minor errors will result in error warnings. Poorly Performing Code I rarely have written a program that runs fast in its first iteration. Most programs a developer writes start out sloppy without consideration of memory usage, cpu cycles. The problem is when developer stop here, instead of refactoring the code once they have it working to try to be as performant as possible Non-Modularized Code Modularized code is not object oriented code. While object oriented code should be modularized, That may not always be the case. And, not all procedural style code is automatically awful bad code that can’t be modular. This is all about following good software development practices. Dead Code Dead code happens when code is added to your code base, but then is no longer needed or has been replaced. Instead of deleting it, the developer simply comments out large blocks of code and leaves it there. This code goes on to scrolled past and confuse future developers for years to come.
  12. When I talked about mindset I mentioned it was important to understand when you have technical debt, it’s not always necessarily always bad debt. Ultimately what this means is that most projects have an acceptable amount of technical debt.
  13. Key Points Debt should be viewed as a tool. Abuse is possible. Use to your benefit Cunningham uses the debt metaphor to explain how you can do things faster but it must be “paid back” before too much time goes by. Example: An example of this might be a company that is pushing a new software product to market to get ahead of competitors. Sometimes it’s more valuable from a business perspective to produce lower quality code so that the company can enter a market. This should always be done with buy in from the development team and management that this is a strategy, and that there is an understanding that this technical loan needs to be re-payed for the maintainability of the codebase. Do not engage in technical debt unless you are fully aware of what you are doing and accept the cost of paying back the loan.
  14. Key Points Technical debt is evidence of your team doing its job Dev Team Leaders: defend your team’s technical debt to upper management Not all debt is the result if bad technical decisions If a lot of debt is building up, it may be because the team is not being given enough information to make good decisions
  15. Key Points Organizations should accept that the first implementation of a feature may not be the best implementation Providing value to users faster is usually of more value than not releasing new features while most developers do not add technical debt to your project intentionally, if your organization is not seeking to enforce good quality, laziness and complacency can begin to occur it is never acceptable for developers to output poor code simply because they are lazy, or refuse to adopt best practices if the organization leadership hasn’t indicated that they want to take out a technical loan, the development team should not assume that they have permission to output less than excellent quality code leadership over development teams should always encourage, and enforce, where possible, adherence to best practices. This can be done with: code reviews code styles unit tests
  16. Key Points the development teams might be doing the best with what they have if you saw the development team intentionally delivering bad quality or being lazy, you’d probably be upset and start trying to replace those people management can do better provide better specifications ahead of time before asking for features make sure requests are well defined and thought out ensure that you ask for reasonable deliverables and trust your team ensure that you are following your development team’s chosen project management philosophy
  17. Key Points as I’ve shown there are examples of acceptable debt and unacceptable debt
  18. Key points new person we have to meet: martin fowler martin fowler is a well known author, developer, and project management guru something like a risk cost analysis quadrant
  19. Key points mentioned four categories technical debt “size” I mentioned those four categories of debt, acceptable and unacceptable, and then the reasons behind them. Things like acknowledging cutting corners for the sake of getting a product to market or a feature to users. Or maybe management is mistreating the development team. This graph shows the potential technical debt “size” that can be accrued in those different categories. We have lots of debt accumulated by reckless teams basically being ignorant to what they are doing. This is the worst type of debt because you don’t even know you have it. Then you have debt that comes by way of acknowledging you’re creating it, but you’re doing so on purpose for a good reason. Still going to be a fair amount of debt but at least you’re aware of it, so you should be taking care to pay it down. Good developers servicing a legacy system, proof of life type of technical debt. This is our prudent but reckless category. there’s still gonna be some debt here as the business grows, requirements change, there is turnover, or a change in vision.
  20. Key Points Let’s just pause for a second I want to see if I’m doing my job do we feel like we have a good understanding of the complexities of technical debt do we have any questions
  21. Key Points fill this in - why do we have this quote?
  22. Key points you must not ignore technical debt once you’ve been alerted to its existence imagine you’ve accumulated thousands of dollars in credit card debt then you simply ignore it for years and years Eventually bad things start to happen debt collectors calling bankruptcy, court proceedings, IRS problems etc.. it gets bad it can ruin your life technical debt has the power to ruin and destroy many lives. let’s look at the ways that ignored technical debt can start to have a negative impact on your organization
  23. Key Points Velocity just like physics Scrum is a project management methodology. velocity measures the amount of work that a team can deliver in a regular work cycle. the rate at which the team can execute tasks if there is a high level of technical debt is much lower scrum, agile, waterfall, kanban scrum out of scope. velocity is a scrum term
  24. Key points this demonstrates the velocity a team has achieved during a normal week the team has a total velocity of 44. Each team member executes 11 “work points” each. Some of those work points go to technical debt, some go to feature development this team is mostly healthy. some technical debt features > service debt continually adding value to the company mention some of the technical debt code categories like duplicate code
  25. Key points The work points devoted to technical debt service is much higher. mention some of the technical debt code categories like duplicate code - this is where the debt might be this team is unhealthy - they are having to spend more time working through technical debt in a regular sprint than deliver features.
  26. Key Points slowed professional development spending too much time maintaining, not able to learn locked into doing what they know no time for professional development every feature is a heavy lift the organization is not able to benefit from new knowledge the developers are unable to progress professionally
  27. Key Points Broken windows not talking about these broken windows
  28. Key Points lol
  29. Key Points introduced by scientists in 1980s James Q. Wilson and George L. Kelling theory that a building with a broken window attracted more crime applied to codebases, code left un-corrected can be looked at as a broken window developers become complacent, and lazy wide spread “crimes” will be committed throughout the codebase.
  30. Key Points Developers enjoy the “work” of programming Code with high levels of debt destroys passion and professional development Developers get tired, worn out dealing with spaghetti code all the time - loss of interest Search for new employment
  31. Key Points projects take longer which can add stresses to the team team members will lash out at each other blame game can be played results in sour work culture
  32. Key Points Departments will blame each other Bad requirements or specifications by the requesting department poor implementation by the development team lack of testing a breakdown in communication productivity
  33. Key Points ultimately employees will leave retraining employees is expensive institutional knowledge is highly valuable technical debt leaks and seeps into every aspect of the organization. it does not stay contained to just the software team. it affects everyone.
  34. key points make these icons pop in one at a time Code bases are _huge_ Open Source Joomla CMS for example has a codebase of around 370,000 lines of code The private-sourced project I work on daily has around 200,000 lines of code Locating anything in that can be challenging Here’s some tips on how to better locate code with debt. enable strict mode your parser can help you identify code that is written poorly log the extraneous errors to a log file inspect the data, fix areas that generate a lot of bugs all the time or clearly need updating code will perform better! use static code analysis tools you can inspect code for copy / pasted sections you can inspect code for code style consistency (spaces, tabs, line breaks, code comments) Use an IDE an IDE will give you a lot of code inspection tools at your finger tips as you are writing it it will help you be consistent if you’re using a supported language, it can help you locate existing functions to reduce writing new ones. Code Quality Gate Keepers You can force your developers to follow coding standards by ensuring nothing that is committed violates your coding standards Some gate keepers will incorporate static code analysis to help you better navigate code and resolve problem areas. you can use tools like SonarQube, Github, JenkinsCI for continuous integration / delivery pipelines that help run automated test and code style suites on code. Talk to your developers! chances are they know exactly where the the bad areas are at. ask them what they would change and why get time estimates and add these fixes to your sprint
  35. Key Points now that know how to identify the debt we can talk about removing it there’s a few different approaches we can go about.
  36. Key points: The first decision to make is: is your application even worth saving? Should you even spend the time refactoring code? Most of the time: yes It should be very rare that you would want to rewrite from scratch for now lets assume that you want to go down the refactor route - we can talk about rewriting in a minute.
  37. Key Points: Start small. Don’t try to fix all your warnings in one commit. Create new, blessed versions of the code. Unit test the heck out of it follow all those best practices If you have unit tests for the old version, compare the results! if the code is low risk, go ahead and launch it. if the code is high risk, add the new code adjacent to the old code. Continue using the old version, but log the results of each in a log file compare the results, make sure they keep returning the same values deprecate the old version once you’re confident its working
  38. Key Points: rewriting is hard. super hard you should avoid it. Most rewrites fail. you’ll probably fail if you don’t proceed with caution. reasons to take pause: you might just make the same mistakes the old code is battle tested you’ll invariably miss some feature someone needed it will take forever you don’t have the resources New applications today are tomorrow’s legacy applications. Learn how to maintain something rather than throwing away and starting over. If you must rewrite: Select an approach like the StranglerApplication This acts as a layer of a new application on top of old one route requests to the new one feature by feature. keep rewriting and making improvements until the old system is essentially phased out of use because you’ve replaced it all with new golden code.
  39. Key points consider removing? you can increase velocity by removing debt that is encumbering you you can increase velocity by adding more team members
  40. Key Points: we don’t have it all figure out yet technical debt is a lot like tending a garden, it requires continual maintenance and upkeep if you let it get out of hand its really hard to control