Technical Debt and Selling
Rearchitecture
1
SERGEY SUNDUKOVSKIY PH.D.
Introduction
2
Agenda
3
Technical Debt
4

Things slow down
Debt
5

Everything you want to do “Later” is DEBT
Let’s document later
 Let’s test later
 Let’s architect later
 Let’s refactor later


Debt Misconceptions
All debt is bad
 No debt is great
 Taking on debt always gets you there faster

Debt (Leverageable)
6
Leveraging Debt
7

Debt Leverage
Time to market – If taking on debt gets you to market
disproportionately faster
 Time to contact – If strategic contract is at stake debt might be
worth it
 Time to funding – If funding is at stake debt might be worth it
 Time to survival – Debt is irrelevant if there is no tomorrow


Unacceptable Debt
Non-leveragable debt
 Debt due to ignorance

Technical Debt Elements
8

Technical Debt Elements
Lack of Architectural Blueprint
 Lack of Unit Testing
 Lack of Integration Testing
 Lack of Code Reviews
 Lack of Starter Platform
 Lack of Starter Framework
 Lack of Technical Design
 Lack of Development Recipes

Selling Debt Management
9
Only If You Must
10

Debt Management Is Very Hard To Sell
Cause and effect is not immediately apparent
 ROI is very difficult to quantify
 Definition of done is hard to come up with
 Perpetual projects are not crowd pleasers
 Users are not even aware that backend of apps even exists. UX/UI
in user’s mind is the app itself

Only If You Must (cont.)
11

If You Can Help It, Do Not Sell It
Schedule feature holidays (every 5th release)
 Refactor as you go
 Make debt management as part of the process
 Give estimates considering debt management
 Invite outside experts


If You Must Sell It
Tell CEO/CTO story
 Use aircraft maintenance strategy

Debt Story
12

I have not seen organs like this
Common Story
13

CEOs Tale
We were very productive
 We kicked ass
 We became complacent
 I fired them all
 I hired a new team
 They are not productive either
 Must have chosen wrong
 I fired them all
 SAVE ME

Common Story
14

CTOs Tale
We were very productive through debt accumulation
 We kicked ass but burned out
 We slowed down due to increasing debt support
 We got fired
 New team got hired
 It does not know where skeletons are buried
 We got fired as well
 I have Not Seen Organs Like These

Support to Innovation Ratio
15

Year 1
Year 2
Year 3

Support
(15%)

Innovation
(85%)

Support
(50%)
Support
(85%)

Innovation
(50%)
Innovation
(15%)

Support cost is a euphemism for debt
Debt Creeps Up on You
16

Yup it is kind of like that
Broken Window Theory
17

One broken window leads to ruin
Broken Window Theory
18

Do sweat the small stuff
Due Diligence
19

Due Diligence is a an exercise of debt discovery
Case Study 1 (Sample Due Diligence)
20

No Middle Tier Frameworks
Code Entanglement
Lots of Dead Code
Poor Exception Handling
High Coupling
Low Encapsulation
Absence of Higher Order Services
Lack of Documented Architectural Blueprint
Case Study 1 (Sample Due Diligence)
21

What does this mean?
Increased Maintenance Cost
 Difficulty Extending
 Difficulty Hiring
 Developer Lock In
 Technical “Debt” That Needs To Be Repaid


Debt quantification


$200K
Case Study 1 (Recommendations)
22

Refactor dead code
Refactor code entanglement
Refactor logic segmentation
Introduce architectural blueprint
Introduce unit, integration and functional tests
Introduce persistence and decency injection frameworks
Implement CIA/CEO principles
Case Study 2 (Rearchitecture)
23

Sold It as a Project, Failed to Complete
Political “hot” potato
 No interim deliverable
 Very expensive
 Affected by business downturn


Technical Debt and Selling Rearchitecture

  • 1.
    Technical Debt andSelling Rearchitecture 1 SERGEY SUNDUKOVSKIY PH.D.
  • 2.
  • 3.
  • 4.
  • 5.
    Debt 5 Everything you wantto do “Later” is DEBT Let’s document later  Let’s test later  Let’s architect later  Let’s refactor later  Debt Misconceptions All debt is bad  No debt is great  Taking on debt always gets you there faster 
  • 6.
  • 7.
    Leveraging Debt 7 Debt Leverage Timeto market – If taking on debt gets you to market disproportionately faster  Time to contact – If strategic contract is at stake debt might be worth it  Time to funding – If funding is at stake debt might be worth it  Time to survival – Debt is irrelevant if there is no tomorrow  Unacceptable Debt Non-leveragable debt  Debt due to ignorance 
  • 8.
    Technical Debt Elements 8 TechnicalDebt Elements Lack of Architectural Blueprint  Lack of Unit Testing  Lack of Integration Testing  Lack of Code Reviews  Lack of Starter Platform  Lack of Starter Framework  Lack of Technical Design  Lack of Development Recipes 
  • 9.
  • 10.
    Only If YouMust 10 Debt Management Is Very Hard To Sell Cause and effect is not immediately apparent  ROI is very difficult to quantify  Definition of done is hard to come up with  Perpetual projects are not crowd pleasers  Users are not even aware that backend of apps even exists. UX/UI in user’s mind is the app itself 
  • 11.
    Only If YouMust (cont.) 11 If You Can Help It, Do Not Sell It Schedule feature holidays (every 5th release)  Refactor as you go  Make debt management as part of the process  Give estimates considering debt management  Invite outside experts  If You Must Sell It Tell CEO/CTO story  Use aircraft maintenance strategy 
  • 12.
    Debt Story 12 I havenot seen organs like this
  • 13.
    Common Story 13 CEOs Tale Wewere very productive  We kicked ass  We became complacent  I fired them all  I hired a new team  They are not productive either  Must have chosen wrong  I fired them all  SAVE ME 
  • 14.
    Common Story 14 CTOs Tale Wewere very productive through debt accumulation  We kicked ass but burned out  We slowed down due to increasing debt support  We got fired  New team got hired  It does not know where skeletons are buried  We got fired as well  I have Not Seen Organs Like These 
  • 15.
    Support to InnovationRatio 15 Year 1 Year 2 Year 3 Support (15%) Innovation (85%) Support (50%) Support (85%) Innovation (50%) Innovation (15%) Support cost is a euphemism for debt
  • 16.
    Debt Creeps Upon You 16 Yup it is kind of like that
  • 17.
    Broken Window Theory 17 Onebroken window leads to ruin
  • 18.
    Broken Window Theory 18 Dosweat the small stuff
  • 19.
    Due Diligence 19 Due Diligenceis a an exercise of debt discovery
  • 20.
    Case Study 1(Sample Due Diligence) 20 No Middle Tier Frameworks Code Entanglement Lots of Dead Code Poor Exception Handling High Coupling Low Encapsulation Absence of Higher Order Services Lack of Documented Architectural Blueprint
  • 21.
    Case Study 1(Sample Due Diligence) 21 What does this mean? Increased Maintenance Cost  Difficulty Extending  Difficulty Hiring  Developer Lock In  Technical “Debt” That Needs To Be Repaid  Debt quantification  $200K
  • 22.
    Case Study 1(Recommendations) 22 Refactor dead code Refactor code entanglement Refactor logic segmentation Introduce architectural blueprint Introduce unit, integration and functional tests Introduce persistence and decency injection frameworks Implement CIA/CEO principles
  • 23.
    Case Study 2(Rearchitecture) 23 Sold It as a Project, Failed to Complete Political “hot” potato  No interim deliverable  Very expensive  Affected by business downturn 