technical & product debt management

41
Technical & Product Debt Management By Dr. Sergey Sundukovskiy

Upload: sergey-sundukovskiy

Post on 15-Feb-2017

488 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Technical & Product Debt Management

Technical & Product Debt ManagementBy Dr. Sergey Sundukovskiy

Page 2: Technical & Product Debt Management

Introduction

Sergey Sundukovskiy, Ph.D.Head of Engineering - Technology Innovation at Capital OneCurrent: Capital One, Google, 500 Startups Previous: Launchpad LA, PushPoint, LivnGiv

Page 3: Technical & Product Debt Management

“… A design or construction approach that is expedient in the short term but that creates a technical context in which the same work will cost more to do later than it would cost to do now (including increased cost over time).”

3

Debt

Page 4: Technical & Product Debt Management

Everything You Want to Do “Later” Is DEBT• Let’s Document Later• Let’s Test Later• Let’s Architect Later• Let’s Refactor Later

4

Debt

Page 5: Technical & Product Debt Management

Technical Debt Results

Product

Debt

Things SLOW DOWN

Page 6: Technical & Product Debt Management

• All Debt Is Bad• No Debt Is Great • Taking On Debt Always Gets You There Faster

6

Debt Misconceptions

Page 7: Technical & Product Debt Management

Technical Debt Story

I Have Not Seen Organs Like These

Page 8: Technical & Product Debt Management

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

8

Common Story

Page 9: Technical & Product Debt Management

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

9

Common Story

Page 10: Technical & Product Debt Management

Support Cost is a Euphemism for Debt

Support(15%)

Innovation(85%)

Support(50%)

Innovation(50%)

Support(85%)

Innovation

(15%)

Year 1

Year 2

Year 3

Support to Innovation Ratio

Page 11: Technical & Product Debt Management

Leveraging DebtContinued

Page 12: Technical & Product Debt Management

• 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

Leveraging Debt

Page 13: Technical & Product Debt Management

• Non-Leveragable Debt• Debt Due to Ignorance• Debt Due to Laziness

Unacceptable Debt

Page 14: Technical & Product Debt Management

Technical Debt Survey

Page 15: Technical & Product Debt Management

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

Page 16: Technical & Product Debt Management

How Did We Let It Happen?

One Logical Step at a Time

Page 17: Technical & Product Debt Management

Broken Window Theory

One Broken Window Leads to Ruin

Page 18: Technical & Product Debt Management

Broken Window Theory

Do Sweat the Small Stuff

Small VandalismUrban Decay

CRIME

Page 19: Technical & Product Debt Management

Debt Tipping Point

Product Death

Year 2

Year 1

Tipping Point

Page 20: Technical & Product Debt Management

Debt Creeps Up on You

Yup, It is Kind of Like That

No Turning Back Now!

The Snowball Effect

SPLAT!

Page 21: Technical & Product Debt Management

Debt Management

Regular, Slow and Steady Does It

Page 22: Technical & Product Debt Management

Technical Debt ManagementTechnology Debt Management and Debt Avoidance

• Build on Top of IaaS/PaaS• Build on Top of Starter Product/Starter Framework• Implement Unit/Integration/Functional Testing• Conduct Code Review• Implement CI/CD/CD• Establish Short Sprints (Agile) or No Sprints (Kanban)• Non-Monolithic Design

Page 23: Technical & Product Debt Management

Product Debt

Yup, That’s Feature Creep

Page 24: Technical & Product Debt Management

Featuritis Curve

Number of Features

Use

r H

appi

ness Happy User Peak

“I rule!”

“Cool!”

“I’m so glad they added this.”

“Nice, but I wish I could do more…”

“Guess I better look at the manual…”

“Hey, where the f*** did they put that?!”

“Now I can’t even do the ONE SIMPLE THING I bought this for…”

“I suck!”

Page 25: Technical & Product Debt Management

Features Usage

Page 26: Technical & Product Debt Management

What is Product Debt?

Product Debt = Product Complexity = User Confusion

Page 27: Technical & Product Debt Management

Multiplicative Complexity

N(N-1)/2 – Undirected Graph N(N-1) – Directed Graph

Page 28: Technical & Product Debt Management

Ease of Use

Main Feature = Easy to Use

Page 29: Technical & Product Debt Management

Irreducible Complexity

Simplest Mousetrap

Page 30: Technical & Product Debt Management

Product Feature AttributesIntelligent Design and Evolutionary Concepts

• Aim For Adjacent Possible

Irreducible Complexity• Can’t Take Anything Away• Can’t Be Simpler

Simplest for What It Does• Simple Path to Intent

Page 31: Technical & Product Debt Management

31

Path to Intent

Straightforward Path to Intent

Page 32: Technical & Product Debt Management

Feature PaymentsFeature Currency

• Confusion “Payment” for Features

What Do They Mean?• “This Is Confusing”

Ideal Feature• Minimal Confusion• Minimal Multiplicative Complexity

Page 33: Technical & Product Debt Management

33

Features

Conf

usio

n

Ideal Balance

Realistic Balance

Feature Payments

Page 34: Technical & Product Debt Management

• Do Not Complicate Things• Do Not Make Users Think• Do Not Make Users Work• Do Not Defy User’s Expectations• Do Not Confuse Yourself With Users• Do Not Assume You Know Everything

34

Product Debt Don’ts

Page 35: Technical & Product Debt Management

35

Always Be Testing

Page 36: Technical & Product Debt Management

36

Painted Door

Painted Door vs. Real Door

Page 37: Technical & Product Debt Management

Product Debt Management and Debt Avoidance• 30% of the Sprint Should Be Devoted to Feature Removal• Test Before You Implement• Collect User Feedback• Measure and Correlate Churn• Assess Complexity and Confusion

37

Product Debt Management

Page 38: Technical & Product Debt Management

Not The Same Thing

Management

Mitigation

Page 39: Technical & Product Debt Management

39

Selling Debt Mitigation

Page 40: Technical & Product Debt Management

Debt Mitigation 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

40

Debt Mitigation Advice

Page 41: Technical & Product Debt Management

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

If You Must Sell It• Tell CEO/CTO story• Use aircraft maintenance strategy

41

Debt Mitigation AdviceContinued