The case for
technical
excellence
Kevlin Henney
@KevlinHenney
@kevlin@mastodon.social
@kevlin.bsky.social
threads.net/@kevlin.henney
instagram.com/kevlin.henney
about.me/kevlin
linkedin.com/in/kevlin
kevlinhenney.medium.com
kevlin@curbralan.com
agile, adjective
▪ able to move quickly and easily
Concise Oxford English Dictionary
agile, noun
▪ quick movement
The goal pursued by many organisations ‘doing’ agile
agile, noun
▪ busyness
The result of many organisations ‘doing’ agile
agile, noun
▪ prioritising business goals over
technical excellence
The practice of many organisations ‘doing’ agile
agile, noun
▪ undermining business goals by
ignoring technical excellence
The result of many organisations ‘doing’ agile
Continuous attention
to technical excellence
and good design
enhances agility.
feature work
⊕
technical work
feature work
is
technical work
features are
made of
software
business value
business value
for whom?
business value
time frame?
prioritise by
business value
prioritise by
business value
estimate
Architecture represents the
significant design decisions that
shape a system, where significant
is measured by cost of change.
Grady Booch
What effect does ignoring quality
have on feature development?
a. It has no effect
b. It reduces the cost
c. It increases the cost
What effect does ignoring quality
have in the short-term?
a. It has no effect
b. It reduces the cost
c. It increases the cost
What effect does ignoring quality
have in the long-term?
a. It has no effect
b. It reduces the cost
c. It increases the cost
technical
debt
technical
neglect
As an evolving program is continually
changed, its complexity, reflecting
deteriorating structure, increases unless
work is done to maintain or reduce it.
Meir M Lehman
“Programs, Life Cycles, and Laws of Software Evolution”
maintenance
metaphor
The figure of speech in which a name or
descriptive term is transferred to some
object different from, but analogous to,
that to which it is properly applicable.
µεταϕορα
The figure of speech in which a name or
descriptive term is transfer
Metaphor is pervasive in
everyday life, not just in
language but in thought
and action.
The essence of metaphor
is understanding and
experiencing one kind of
thing in terms of another.
TIME IS MONEY
ARGUMENT IS WAR
ARGUMENTS ARE BUILDINGS
HAPPY IS UP; SAD IS DOWN
LOVE IS A JOURNEY
The aphysical and
invisible domain of
software is more about
metaphor than matter.
To be considered good, a metaphor
has to offer a number of points of
useful correspondence with what is
being described.
Kevlin Henney
“On Exactitude in Technical Debt”
oreilly.com/radar/on-exactitude-in-technical-debt
Another quality of a good metaphor
is that it should not have too many
obvious points of conflict.
Kevlin Henney
“On Exactitude in Technical Debt”
oreilly.com/radar/on-exactitude-in-technical-debt
The third quality of a metaphor that
makes it effective is familiarity to its
audience.
Kevlin Henney
“On Exactitude in Technical Debt”
oreilly.com/radar/on-exactitude-in-technical-debt
Technical Debt is a wonderful metaphor
developed by Ward Cunningham.
In this metaphor, doing things the quick
and dirty way sets us up with a technical
debt, which is similar to a financial debt.
Martin Fowler
martinfowler.com/bliki/TechnicalDebt.html (2003)
Martin Fowler
martinfowler.com/bliki/TechnicalDebt.html (2003)
Technical Debt is a wonderful metaphor
developed by Ward Cunningham.
In this metaphor, doing things the quick
and dirty way sets us up with a technical
debt, which is similar to a financial debt.
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.
Ward Cunningham
c2.com/doc/oopsla92.html
Ward Cunningham
c2.com/doc/oopsla92.html
The danger occurs when the debt is not
repaid. Every minute spent on not-quite-
right code counts as interest on that debt.
Although we know that by definition no metaphor
is perfect, there are two common ways in which
the metaphor is misapplied: assuming technical
debt is necessarily something bad; equating
technical debt with a financial debt value.
Kevlin Henney
“On Exactitude in Technical Debt”
oreilly.com/radar/on-exactitude-in-technical-debt
technical
debt
unmanaged
technical
debt
Technical debt is not the cost of repaying
the debt: it is the cost of owning the debt.
These are not the same.
Kevlin Henney
“On Exactitude in Technical Debt”
oreilly.com/radar/on-exactitude-in-technical-debt
That is the message of the technical debt metaphor:
it is not simply a measure of the specific work needed
to repay the debt; it is the additional time and effort
added to all past, present, and future work that comes
from having the debt in the first place.
Kevlin Henney
“On Exactitude in Technical Debt”
oreilly.com/radar/on-exactitude-in-technical-debt
twitter.com/yvonnezlam/status/1376628481878990852
maintenance
action
inaction
neglect
Want of attention to what ought
to be done; the fact of leaving
something undone or unattended
to; negligence.
John Seddon
Freedom from Command & Control — A better way to make work work
Value demand represents the demands customers
make for the things they want, things that are of
value to them. Failure demand is created by the
organisation not working properly.
Failure demand is demand caused by a failure to
do something or do something right.
The best architectures,
requirements, and
designs emerge from
self-organizing teams.

The Case for Technical Excellence