SlideShare a Scribd company logo
Balancing
Technical Debt
and Clean Code
@dave1010
Dave Hulbert
@wearebase
@phpdorset
@dave1010
Dave Hulbert
istockphoto.com
Balancing Technical Debt and Clean Code
tensionnot.com
shutterstock.com
Good things
●
Delivering fast
●
Clean code
Bad things
●
Technical debt
●
Delivering slow
Code of Conduct
Carry out your professional
responsibilities with due care and
diligence in accordance with the
Relevant Authority’s requirements
whilst exercising your
professional judgement at all
times
Balancing Technical Debt and Clean Code
How to develop
quickly
Developers
●
Skilled, Passionate, Healthy,
Focused, Disciplined
●
Conferences, user groups, meet ups
●
Read books, blogs, code
●
Write code, Open Source
contributions
Projects
●
Good requirements
●
Good specifications
●
Fast feedback
How to develop
quickly
(in the short term)
●
Less testing
●
Less planning
●
Less communication
●
Don't improve tools /
processes
●
Overtime
●
Outsource
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Technical Debt
Shipping code
before it's ready
Shipping code
without enough
architecture
Visible Invisible
Good
Bad
thetruthaboutcars.com
Visible Invisible
Good Features
Bad
uberhumor.com
flickr.com/dangelophoto1
Visible Invisible
Good Features
Bad Defects
wikimedia.org
Visible Invisible
Good Features Architecture
Bad Defects
amazon.com
mirror.co.uk
Visible Invisible
Good Features Architecture
Bad Defects Technical debt
Balancing Technical Debt and Clean Code
Technical Debt
thisismoney.co.uk
Good idea
●
You think you'll be better off
in the future
●
The risk (interest) is
manageable
Balancing Technical Debt and Clean Code
Interest
●
More user support needed
●
Manual tasks
●
Complete rewrite in future
Consequences
●
Less time on new features
●
Higher cost of new features
●
Harder to estimate new
features
bbc.co.uk
Balancing Technical Debt and Clean Code
Complexity
Tests
●
Not comprehensive
●
Incorrect
●
Slow
We need to recognize that our job
isn't about producing more code in
less time, it's about creating
software that is stable, performant,
maintainable and understandable
(to you or someone else, a few
months or years down the road).
Matthew Gertner
Invest in
architecture
Invest in
code
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
Balancing Technical Debt and Clean Code
TDD
●
Run every bit of code that you
write, ASAP
Write a test when
you fix a bug
Balancing Technical Debt and Clean Code
Domain-Driven
Design
●
Model the domain completely
in classes that don't touch the
UI, database or framework
Balancing Technical Debt and Clean Code
How do you keep
technical debt to a
minimum?
Refactoring
wikimedia.org
Refactoring
●
Restructuring without
changing behaviour
●
Makes it easier to read,
understand, test, change, add
new features to
Balancing Technical Debt and Clean Code
Refactoring
●
Inject dependencies
●
Eliminate dependencies
●
Create interfaces to type hint to
●
Extract functions
●
Rename
●
Reduce cyclomatic complexity
●
http://refactoring.com/catalog/
Estimating
●
Estimates for new features
need to include refactoring
– (if you don't want to increase
technical debt)
– Refactoring doesn't add perceived
value so it's hard to sell
Debt is expensive
●
Paying technical debt with
interest takes more time than
continual refactoring
bonkersworld.net
Break the rules
●
Help you deliver faster in the
short term
●
Long term strategy
●
Disposable prototype
●
Just don't need to write clean
code
Balancing Technical Debt and Clean Code
Sprint vs Marathon
Sprint (example) Marathon (example)
Peripheral component (logs) Central component (DB)
Trivial (make a CSV) Complex (search algorithm)
Few consequences of bugs (game) Important (nuclear reactor)
Isolated (contact form) Reused (authentication)
Abandonable (migration script) Continued updates
One developer Big team
Time & money to pay technical debt
later
Long term delivery
Investment in code
is a balance
Thanks!
bitly.com/tech-debt-
feedback
@dave1010
Dave Hulbert

More Related Content

PPTX
PM, Scrum and TFS - Ivan Marković
PPTX
Behavioral tests with behat for qa
PDF
Managing Technical Debt
PDF
The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Avi...
PDF
There and back again, Our journey with QA Reports and metrics
PDF
Software testing presentation
PPT
Agile Austin - Peer Code Review An Agile Process
PDF
Technical debt strategy
PM, Scrum and TFS - Ivan Marković
Behavioral tests with behat for qa
Managing Technical Debt
The Immor(t)ality of Legacy Projects - Dalia Simons, Wix - DevOpsDays Tel Avi...
There and back again, Our journey with QA Reports and metrics
Software testing presentation
Agile Austin - Peer Code Review An Agile Process
Technical debt strategy

What's hot (20)

PDF
Making Your Product Manager Productive by Clinton Wolfe
PDF
Success of Blackfire and Continuos PHP performance monitoring at trivago
PDF
Constinuous Integration
PPT
Внедрение Agile в проектах инвестиционного банкинга
PDF
Никита Галкин "Technical backlog: инструкция к применению"
PDF
Security Implications for a DevOps Transformation
PDF
Software development. xp, agile, etc.
PPT
Lean-Agile SharePoint Development
PDF
The benefit of sneezing code into an editor vs clean code
PPTX
Behaviour Driven BizTalk Development
PDF
Continuously delivering value
PPTX
Introduction to Scrum
PPT
Agile SharePoint Development With Scrum
PDF
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
PPTX
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
DOCX
Happy ever afters with ci workflow
PDF
Cloud agnostic continuous quality assurance
ODP
Introduction to BDD
PPTX
Continuous Delivery in Practice (extended)
PPTX
Software management for tech startups
Making Your Product Manager Productive by Clinton Wolfe
Success of Blackfire and Continuos PHP performance monitoring at trivago
Constinuous Integration
Внедрение Agile в проектах инвестиционного банкинга
Никита Галкин "Technical backlog: инструкция к применению"
Security Implications for a DevOps Transformation
Software development. xp, agile, etc.
Lean-Agile SharePoint Development
The benefit of sneezing code into an editor vs clean code
Behaviour Driven BizTalk Development
Continuously delivering value
Introduction to Scrum
Agile SharePoint Development With Scrum
TechTalk 2021: Peningkatan Performa Software Delivery dengan CI/CD
Design patterns for efficient DevOps processes - Rebecca Fitzhugh - DevOpsDay...
Happy ever afters with ci workflow
Cloud agnostic continuous quality assurance
Introduction to BDD
Continuous Delivery in Practice (extended)
Software management for tech startups
Ad

Similar to Balancing Technical Debt and Clean Code (20)

PDF
Why change code that works - On Technical Debt and Refactoring
PDF
Technical debt management strategies
PDF
Managing technical debt
PDF
How to justify technical debt mitigations in Software Engineering
PDF
technical debt management strategies
PPTX
Technical Debt
PPTX
Technical debt a Business Perspective
PPTX
Technical Debt
PDF
Technical Debt (Qcon San Francisco 2011)
PPTX
Technical debt
PDF
From Technical Debt to Technical Health
PDF
Managing Software Debt Workshop at Intel
PDF
Technical Debt Management
PDF
Working with Technical Debt
PPTX
Technical debt
PDF
Lessons learned in surviving to Technical Debt
PPTX
Understanding and Managing Technical Debt
PDF
Technical Debt - The Code Monster in the Closet
PDF
What scrum masters and product owners should know about software quality and ...
PPTX
Technical Debt.pptx
Why change code that works - On Technical Debt and Refactoring
Technical debt management strategies
Managing technical debt
How to justify technical debt mitigations in Software Engineering
technical debt management strategies
Technical Debt
Technical debt a Business Perspective
Technical Debt
Technical Debt (Qcon San Francisco 2011)
Technical debt
From Technical Debt to Technical Health
Managing Software Debt Workshop at Intel
Technical Debt Management
Working with Technical Debt
Technical debt
Lessons learned in surviving to Technical Debt
Understanding and Managing Technical Debt
Technical Debt - The Code Monster in the Closet
What scrum masters and product owners should know about software quality and ...
Technical Debt.pptx
Ad

More from Dave Hulbert (7)

PPTX
Redevelop 2019 - Debugging our biases and intuition in software development
PDF
Human brains are stupid
PDF
Practical intro to PhpSpec
ODP
PhpSpec: practical introduction
PDF
Silex and Twig (PHP Dorset talk)
PDF
Bitcoin The cryptographic currency. Talk at BCBOMO6
PPT
Base Homework
Redevelop 2019 - Debugging our biases and intuition in software development
Human brains are stupid
Practical intro to PhpSpec
PhpSpec: practical introduction
Silex and Twig (PHP Dorset talk)
Bitcoin The cryptographic currency. Talk at BCBOMO6
Base Homework

Recently uploaded (20)

PPTX
L1 - Introduction to python Backend.pptx
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
history of c programming in notes for students .pptx
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
ISO 45001 Occupational Health and Safety Management System
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
System and Network Administration Chapter 2
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Transform Your Business with a Software ERP System
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PPT
Introduction Database Management System for Course Database
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
L1 - Introduction to python Backend.pptx
Online Work Permit System for Fast Permit Processing
history of c programming in notes for students .pptx
How to Migrate SBCGlobal Email to Yahoo Easily
CHAPTER 2 - PM Management and IT Context
Wondershare Filmora 15 Crack With Activation Key [2025
ISO 45001 Occupational Health and Safety Management System
Odoo POS Development Services by CandidRoot Solutions
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
System and Network Administration Chapter 2
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PTS Company Brochure 2025 (1).pdf.......
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Transform Your Business with a Software ERP System
Upgrade and Innovation Strategies for SAP ERP Customers
Understanding Forklifts - TECH EHS Solution
VVF-Customer-Presentation2025-Ver1.9.pptx
Introduction Database Management System for Course Database
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx

Balancing Technical Debt and Clean Code