2. Who am I?
Old man yells at the Cloud (engineers)
@behemphi
â Former DBA (MySQL, Postgres, Oracle)
â Former Developer (PHP, Python, Java)
â Former Evangelist (Stackengine Jesus!)
â Former Director of Operations, Infra, Devops,
Cloud Engineering
â Current Engineering Manager
â Sometime community contributor
Tackle is the onramp to cloud marketplaces. Those
are like app stores for the cloud. If you arenât selling
there you should ask me about it. I was amazed by
the market opportunities!
3. Outline
So you know WTF is going on âŠ
â Tech debt is a metaphor,
â Letâs reason about it like a CFO
â Flow is a metaphor
â Letâs reason about it as the
currency of a dev team or
engineering organization
â Use Debt to fund better ïŹow
â Pay down debt responsibly
â Know the terms of your debt
4. Debt is a Tool
A tool is neither good nor bad until it is put to use
Stand up if -
â You have a mortgage on a home
â Sit down if you donât know the interest rate
and length of the note.
Stand up if -
â You have a loan on a car
â Sit down if you donât know the interest rate
and length of the note.
Stand up if -
â You have one or more credit cards
â Sit down if you donât know the interest rate
on the card(s).
5. Terms of a Debt
Asks the question - Is this debt worth the price?
â Cost of Credit
â Typical Mortgage - borrow $240k
at 7.759% over 30 years
â $379k is the cost of credit
â This is a BET that the home
will appreciate at least this
much over 30 years.
â Stand up if youâve ever considered cost
of credit or terms for the shortcuts you
took in your last project.
6. Psssst ⊠all yâall sittinâ down?
You might be doing it wrong âŠ
7. Consumer Debt - Can be good
Real examples from my personal ïŹnance
I recently borrowed $30k for a car b/c the
cost of credit was 2%. Iâll make more on
investments during the length of the loan.
Car - Depreciating Asset
Borrowed $160k in 2012 on 15 years. Owe about
$70k today. Home worth $540k. Debt allowed me
to purchase this asset. Cost of credit $39k
Home #1 - Appreciating Asset
Pay it oïŹ every month. Costs built into the
price of goods, so points are a way to recoup
this.
Credit Card - Short term debt
Borrowed $540k in 2021. Owe about $520k
today. Home appreciated 15%. Debt allowed
purchase of dream much cheaper.
Home #2 - Market Opportunity
8. Metrics of Debt
Cost of
Credit
Unlike consumer debt,
we donât have solid ways
to measure what we are
getting ourselves into âŠ
We also donât have
scoring (Transunion, et
al) to tell us if we can
aïŹord more debt.
In simple terms, if I
borrow 100 tests not
written today and that
saves me 10 days of
work now âŠ
what are the costs in
time one year from
now?
You got one with
every loan. This is the
structure of the debt.
Is there an origination
fee? Late payment
penalty? Fixed interest
or variable? Balloon
payment?
What is gained by
taking on the debt?
â Immediate
term?
â Long term?
Term
sheet
ROI
9. Letâs build a Term Sheet for Tech Debt
A good debt should increase ïŹow now but only marginally
impact it later
â Flow - For now letâs think of âïŹowâ as
coin-of-the-realm for a team.
â ROI - Gets us that new feature critical to
business success
â Cost of Credit - After the feature is
delivered, how much of our existing ïŹow
must now be tasked to debt service
(extra maintenance eïŹort)?
â Term Sheet - How do we make this
evident to the business?
10. But everything is âcritical to the businessâ
Of course it is, because you allow them to believe it is free
â Because we donât measure and reason
about âïŹowâ, the short cuts we take have
no cost to the business.
â So when we say âtech debtâ they hear,
âfree, except for the griping by
engineering.â
â Donât wait for someone else to value your
teamâs time and eïŹort.
11. Business scenario
Business opportunity
Choosing Debt
A major reseller proposes that if we can oïŹer a
speciïŹc capability they will enter into a $4m biz
agreement with us.
We have to get this capability to market in 3
months due to certain marketing and revenue
cycles with the reseller.
We decide to do 20% (rather than 60%) test
coverage while using dead easy tech (MySQL)
rather than what we anticipate to be more
appropriate tech (Kafka + Elasticsearch)
The Essential ConïŹict
12. Negotiating the Nature of the Debt
Lets talk testing âŠ
We decided to do 20% (rather than 60%) test coverage
Assume that to get to 60% on initial development it was 1000 hours of work.
â Assume itâs 1500 hours after the fact.
â Assume 2 Sev1 and 4 Sev2 incidents resulting from lack of coverage.
â Assume an average of 2 escaped issues per sprint
Can getting to 60% coverage (or better) in three months while keeping up with current
maintenance burden and new project work even happen?
Time as
Opportunity Cost
1500 hr + 600 hr + 240 hr = 2200 hr
Roadmap shifts 3 weeks later.
Treasure
$60k + $120k + $30k = $210,000
Opportunity
$4,000,000
13. Example Term Sheet
Scenario Time as
Opportunity Cost
1500 hr + 600 hr + 240 hr = 2200 hr
Roadmap shifts 4 weeks later.
â 500 hr @ $120/hr = ($60,000)
â Cost of SEV1/SEV2 is $20k and 100 hrs
â 6 @ $20k = ($120,000)
â 6 @ 100 hrs = 600 hr
â Cost of escaped issue = 10 hours @ $120/hr = $1200
â Assume next project is projected for 12 weeks.
â = 240 hr
â = ($30,000)
â 1500* hr + 600hr + 240 hr = 2200 hr
â Team of 4 => 1.1 person taken with debt service
â 28% reduction in ïŹow while we pay the debt
â This is (~4 week) shift in the roadmap
Treasure
$60k + $120k + $30k = $210,000
Opportunity
$4,000,000
14.
15. Q&A - 2 or 3 questions
Have I established that Tech Debt is a tool that is neither good nor bad?
16. ButâŠ<throws-up-hands>REALITY!</throws-up-hands>
We are already drowning in debt
â How much?
â What is the impact on your ïŹow?
â How much does it cost?
â What is the opportunity cost?
â Did you take on that debt intentionally
or is it a function of your not paying
attention?
WOAH, there buddy! That got dark fast!
17. Harsh
We donât know how much debt service we have.
â We arenât drowning in debt, we are drowning
in
â debt service
â ignorance
â If you donât know you have debt how can you
know you are making the payments (service)
â It is our lack of making implicit assumptions of
debt explicit that causes it to accumulate.
â We actually were not paying attention in any
way that matters.
â Our teams suïŹer because of this.
18. Remember - Example Term Sheet?
Letâs pull out the assumptions in this - Time as
Opportunity Cost
1500 hr + 600 hr + 240 hr = 2200 hr
Roadmap shifts 4 weeks later.
â 500 hr @ $120/hr = ($60,000)
â Cost of SEV1/SEV2 is $20k and 100 hrs
â 6 @ $20k = ($120,000)
â 6 @ 100 hrs = 600 hr
â Cost of escaped issue = 10 hours @ $120/hr = $1200
â Assume next project is projected for 12 weeks.
â = 240 hr
â = ($30,000)
â 1500* hr + 600hr + 240 hr = 2200 hr
â Team of 4 => 1.1 person taken with debt service
â 28% reduction in ïŹow while we pay the debt
â This is (~4 week) shift in the roadmap
Treasure
$60k + $120k + $30k = $210,000
Opportunity
$4,000,000
19. Assumptions About the Info we have on hand
â 500 hr @ $120/hr = ($60,000)
â Cost of SEV1/SEV2 is $20k and 100 hrs
â 6 @ $20k = ($120,000)
â 6 @ 100 hrs = 600 hr
â Cost of escaped issue = 10 hours @ $120/hr = $1200
â Assume next project is projected for 12
weeks.
â = 240 hr
â = ($30,000)
â 1500* hr + 600hr + 240 hr = 2200 hr
â Team of 4 => 1.1 person taken with debt
service
â 28% reduction in ïŹow while we pay the debt
â This is (~4 week) shift in the roadmap
â We know how long it will take to write tests
â Velocity
â SpeciïŹcally velocity of test writing
â We are able to reliably estimate the cost of
an incident
â We know the cost of a bug in terms of time
per bug on average.
â We have the next project up well deïŹned
enough to say 12 weeks
â We have a reasonably accurate way to turn
story points in to time.
20. Stand up if you know two or more of these
things about your team.
Predicting maybe a dozen folks at most will rise.
Those are the people who should be speaking at next years Longhorn PHP and the
Austin PHP, Cloud Austin and Austin Automation Prof Meetups !
21. This problem is entirely within our ability
to inïŹuence!
In other words, stop complaining about tech debt and start managing it.
22. YASS - Yet another standing survey.
How many of you believe your team is not going as fast as it _should_
OR
You are getting this message from your leadership?
23. Indicators of impending bankruptcy
If you cannot keep up with debt service then 7, 11, 13 âŠ
â Me and my co-founder could create a
feature on a plane ride, now âŠ
â Mgr: âWe just gave you 2 new engineers,
why are you not delivering faster?â
â JuniorEng: âWhy did the service break
when I added a log message?â
â StaïŹ Eng: âOur deployment frequency
continues to drop.â
â DevOp: âOur change failure rate
continues to growâ
24. Include this question in your sprint retros
Reject perfection. Embrace experimentation. Progress
isnât Linear - Rissa yesterday
âWhat is the most important short cut we took this
sprint? Why?â
â Create an actionable ticket(s) to pay down
this debt.
â Ensure the ticket is groomed/sized.
â Tag tickets like this with
`tech-debt-payments`.
â Build a report on this backlog that you can
watch (maybe accumulated story points)
Agile Manifesto - âAt regular intervals, the team
reïŹects on how to become more eïŹective, then tunes
and adjusts its behavior accordingly.â
25. Measure Velocity
Reject perfection. Embrace experimentation. Progress
isnât Linear - Rissa yesterday
â Get in your ticketing system and measure
velocity.
â Points, ticket count, doesnât matter
â Show your work (b/c it is wrong, I promise -
Rissa again, avoid perfectionism)
â Call for review.
â Go back many months/sprints
â Do you see a pattern?
Agile Manifesto - âAgile processes promote
sustainable development. The sponsors, developers,
and users should be able to maintain a constant pace
indeïŹnitely.â
26. Invent a way to turn velocity into time
Reject perfection. Embrace experimentation.
Good enough - Devtime = (P/2)(1.2 + 0.1R)
â P = number of story points
â R = number of research tasks representing
something we donât know
â 2 - tunable - single point story takes about
half a day for one dev
â 1.2 - tunable - 20% safety for
unknown-unknowns
â 0.1 - tunable - 10% bump to delivery date for
each unknown b/c they usually turn into
more work.
27. Practice quantifying debts from your retro.
Reject perfection. Embrace experimentation
â Add some debt service tickets to your project
and measure how it moves the date.
â Realize it moves the whole roadmap.
â Communicate this to your leadership and
product team and see what they say.
â Improve your message
â Try again.
Agile Manifesto - âSimplicity--the art of maximizing
the amount of work not done--is essential.â
28. Include this question in your sprint retros
Evolve from super villain to super hero.
âWhat bugs/incidents were caused that we can tie
to these debt service ticket?â
â Build a spreadsheet (you are talking to biz
people, speak _their_ language)
â Determine the cost of each issue.
â Communicate this to your leadership and
product team and see what they say.
â Improve your message
â Try again.
Agile Manifesto - âBusiness people and developers must
work together daily throughout the project.â
29. Q&A - 2 or 3 questions
Do you see a way to make small changes, frequently to improve your understanding of
debt service and go on to improve your leadershipsâ understanding of the same?
31. Slow is smooth, smooth is fast.
Single piece ïŹow - Lean manufacturing
Small changes done frequently - DevOps
Slow down to speed up.
32. The story of the story that took too long.
A common tail of woe, despair and agony on teams.
â Do you ïŹnd your team has large tasks
that sit for many days or even weeks in
progress?
â During grooming do you stop and break
down the 8 point story?
â Did the story take way too long b/c
the person working the problem
kept discovering unknowns?
â Mike Lehan from yesterday - âWe are too
eager to start codingâ
33. WIP - The Silent Killer
Inventory is cash not working for you.
â â WIP Perspective
â The more work in process your team
has the slower it goes. This is math.
â Inventory Perspective
â All the written code building up in VCS
is cash not working for the business.
â Think about what is in git right now
that is not yet in production
34. Breaking Work Down
Stop trying to code right away and invest in understanding
what _to_ code. - Mike Lehan yesterday
â When a story is large and we don't break it
down
â We miss the identiïŹable unknowns.
â We miss opportunities to deliver small
value to production sooner
â We give estimates that are wildly
optimistic with full conïŹdence.
â We miss places where it is easy to take on
technical debt as deadline pressure
mounts.
â We are forced to take âpayday loanâ types of
debts because WE failed to break large
stories down with maniacal focus.
35. Make Work Visible
Itâs what the cool kids do.
â If the work is not visible, then you do not
know what work is being skipped.
â If the work is not visible you donât know
where your team is taking on debt.
You are doing this to yourself!
STOP!
Maybe practice a bit of that self care Rissa
mentioned yesterday?
36. Slow is smooth, smooth is fast.
Single piece ïŹow - Lean manufacturing
Small changes done frequently - DevOps
Slow down to speed up.
37. A simple Heurstic for Grooming and Retros
Software is invisible. It is hard to see WIP and Inventory.
â In grooming simply declare that if a story is
greater than n points, it should be broken
down until it is 1 and 2 point tasks and some
research tasks (things you learned you didnât
know!)
â In retro if a story took too long, stop and
break it down based on what you now know.
Use what you learn to get better at
grooming.
â Donât keep making the same mistake!
38. By slowing down and breaking down work âŠ
Lean says throughput (ïŹow) and predictability increase âŠ
â â When batch sizes are small.
â A ticket in a sprint is a batch
â A sprint is a batch
â A deployment is a batch
â Break down your tickets
â But also consider if your sprint size
could actually change too!
â Consider the power of identifying where
you can dial âbatch sizeâ and it is all in
your control.
39. What? Need more Convincing?
Application of logic âŠ
â When it is one ticket it is common that only
one engineer is working on it. Where it 5
smaller tickets others could work in parallel
â Result - Improved ïŹow in the team
â When only one engineer can work a large
task managers think, "Oh look, I have idle
engineers," and allow more work into your
team.
â Result - Decreased ïŹow in the team
40. Slow is smooth, smooth is fast.
Single piece ïŹow - Lean manufacturing
Small changes done frequently - DevOps
Slow down to speed up.
41. Tie it together
Flow
Maniacally
track ïŹow
in your
team.
Identify tech
debt intake
areas with
better work
break down.
Measure tech
debt time, toil
and treasure.
Report to
your biz
stakeholders.
Detect Measure
42. With what youâve learned these last days
Go forth and make exactly one imperfect step towards ïŹnding the sources of your debt
Develop a simple - if imperfect - measure of your teamâs current debt service
Make one change to exert control on the debt you have