UNDERSTANDING
TECHNICAL DEBT
@andreagoulet
ANDREA GOULET
CO-FOUNDER & CEO, CORGIBYTES

@ANDREAGOULET
CORGIBYTES.COM
WHO HERE…
KNOWS WHAT TECH
DEBT IS?
@andreagoulet
WHO HERE…
WANTS TO PREVENT
TECH DEBT?
@andreagoulet
WHO HERE…
WANTS TO PAY DOWN
EXISTING TECH DEBT?
@andreagoulet
@andreagoulet
SOFTWARE

REMODELING
We make existing
software more stable,
scalable, and secure.
@andreagoulet
AND WE ABSOLUTELY LOVE IT!
WHAT IS
TECHNICAL DEBT?
@andreagoulet
@andreagoulet
“Shipping first-time code is like going into debt. A
little debt speeds development so long as it is paid
back promptly with a rewrite. Objects make the cost of
this transaction tolerable.
The danger occurs when the debt is not repaid. Every
minute spent on not-quite-right code counts as
interest on that debt. Entire engineering organizations
can be brought to a stand-still under the debt load of
an unconsolidated implementation, object-oriented or
otherwise.”
-WARD CUNNINGHAM, 1992
Source: https://www.techopedia.com/definition/27913/technical-debt
HOW DOES TECH DEBT
GET ACCRUED?
@andreagoulet
“WHAT’S LAYERING?”
“NOW WE KNOW HOW WE
SHOULD HAVE DONE IT.”
“WE MUST SHIP NOW
AND DEAL WITH THE
CONSEQUENCES.”
“WE DON’T HAVE TIME
FOR DESIGN.”
@andreagoulet
DELIBERATEINADVERTANT
MARTIN FOWLER’S TECH DEBT QUADRANT
RECKLESS PRUDENT
Source: https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
OTHER METAPHORS
@andreagoulet
@mscottford
TECHNICAL HEALTH - DECLAN WHEELAN
@mscottford
CLUTTER - “UNCLE” BOB MARTIN
@mscottford
FEATURES AS PARTIES
@mscottford
ENERGY EFFICIENCY
WHEN IS 

TECH DEBT BAD?
@andreagoulet
@andreagoulet
PRODUCT LIFE CYCLESALES
Introduction Growth Maturity Decline
TIME
@andreagoulet
“WE’RE AGILE. IT NEEDS TO BE A CIRCLE.”
M. Scott Ford, Corgibytes CTO
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
DECLINE
INTRODUCTION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
DECLINE
INTRODUCTION
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
DECLINE
INTRODUCTION
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
INTRODUCTION
?????????
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
INTRODUCTION
REMODELING
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
INTRODUCTION
REMODELING
MAKERS
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
INTRODUCTION
REMODELING
MAKERS LOVE:
• Prototypes
• MVPs
• Feature Building
• Experimentation
MAKERS
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
INTRODUCTION
REMODELING
MAKERS
????????
MAKERS LOVE:
• Prototypes
• MVPs
• Feature Building
• Experimentation
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
REMODELING
INTRODUCTION
MAKERS
MENDERS
MAKERS LOVE:
• Prototypes
• MVPs
• Feature Building
• Experimentation
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
REMODELING
INTRODUCTION
MENDERS LOVE:
• Bug Fixes
• Refactoring
• Performance
• Security
• Scalability
MAKERS
MENDERS
MAKERS LOVE:
• Prototypes
• MVPs
• Feature Building
• Experimentation
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
@andreagoulet
PRODUCT LIFE CYCLE
GROWTH
MATURITY
REMODELING
INTRODUCTION
MAKERS
MENDERS
10% OF DEVELOPERS
MAKERS LOVE:
• Prototypes
• MVPs
• Feature Building
• Experimentation
TECH DEBT

PREVENTS SCALE
TECH DEBT

PREVENTS INNOVATION
MENDERS LOVE:
• Bug Fixes
• Refactoring
• Performance
• Security
• Scalability
@andreagoulet
WAIT A MINUTE! 

YOU MEAN I’M NOT ALONE?
@andreagoulet
WELCOME
FELLOW MENDERS!
@andreagoulet
NEWSLETTER: HTTP://LEGACYCODE.ROCKS
SLACK: HTTP://SLACK.LEGACYCODE.ROCKS
PODCAST: ITUNES & STITCHER
PRACTICES THAT CAUSE
TECH TEBT
@andreagoulet
@andreagoulet
• DUPLICATION (Copy/Pasting Code)
• COMPLEXITY (Number of Paths)
• POOR COMMUNICATION (naming, 

commits, docs, pull requests, etc.)
• NO TEST COVERAGE (use BDD and 

TDD to prevent tech debt from forming)
• SILOS IN TEAM (Conway’s Law - everyone

on team should code and communicate)
TOOLS FOR ANALYZING
TECH DEBT
@andreagoulet
@andreagoulet
• STATIC ANALYSIS
• Code Climate (Ruby, Python)
• NDepend (C#/.NET)
• SonarQube (Many, including Java)
• BitHound (JavaScript)
• OTHERS
• SonaType (OpenSource Licenses)
• Gemnasium (dependencies)
• RuboCop (ruby style guide)
• CodeShip (Continuous Delivery, 

Integration & Deployment)
SHOULD I STOP FEATURE
DEVELOPMENT TO PAY
TECH DEBT DOWN?
@andreagoulet
Make continuous improvement
and code cleanup a habit and
you won’t need to stop feature
development to pay down
technical debt.
@andreagoulet
@mscottford
BOY SCOUT RULE - “UNCLE” BOB MARTIN
WHENEVER YOU
TOUCH YOUR CODE,
LEAVE IT BETTER
THAN YOU FOUND IT.
@andreagoulet
QUESTIONS?
UNDERSTANDING
TECHNICAL DEBT
@andreagoulet
ANDREA GOULET
CO-FOUNDER & CEO, CORGIBYTES

@ANDREAGOULET

CORGIBYTES.COM

Understanding Technical Debt: A Primer for Product Owners and Founders