Slide 1

Slide 1 text

@oop_conference @huizendveld Beyond taming technical debt

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

@huizendveld @oop_conference 👩💻 = (☕, ⏳) => 📃

Slide 4

Slide 4 text

@huizendveld @oop_conference Change is the Only Constant

Slide 5

Slide 5 text

@huizendveld @oop_conference 👩💻 = (☕, ⏳) => 🐞

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

@huizendveld @oop_conference A shortcut makes sense if it enables you to generate more value than it costs

Slide 8

Slide 8 text

@huizendveld @oop_conference There is bad debt, But not all debt is bad

Slide 9

Slide 9 text

@huizendveld @oop_conference Good kind of technical debt ✓Intentional ⚖ ✓Enabling 🔋 ✓Controlled 👩🔬

Slide 10

Slide 10 text

@huizendveld @oop_conference @huizendveld Please tell me, according to you, What is technical debt? Dro p a me s s a g e in the c h at

Slide 11

Slide 11 text

@huizendveld @oop_conference “Shipping fi rst time code is like going into debt. A little debt speeds development so long as it is paid back promptly. The danger occurs when the debt is not repaid. Entire engineering organizations can be brought to a standstill under this debt.” 
 – Ward Cunningham

Slide 12

Slide 12 text

@huizendveld @oop_conference “The technical debt metaphor treats the cruft as a debt, whose interest payments are the extra e ff ort these changes require.” 
 – Martin Fowler

Slide 13

Slide 13 text

@huizendveld @oop_conference A gap between how things are, And how we like them to be In our systems, 
 Provided identical functionality

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

@huizendveld @oop_conference How engineers 
 spend their time Technical Debt 17,3 hour Work 23,8 hour According to a global survey performed by Stripe, Inc. amongst software engineers in 2018

Slide 16

Slide 16 text

@huizendveld @oop_conference @huizendveld Do you have Technical Debt? How much? Does it bother you? What keeps you from repaying it?

Slide 17

Slide 17 text

@huizendveld @oop_conference “My boss! We never get time or resources”

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

@huizendveld @oop_conference @huizendveld At your job, what is the piece of Technical Debt that inhibits progress the most? How would you convince your boss to allocate funds? Write it down 2 minutes

Slide 20

Slide 20 text

@huizendveld @oop_conference Technical debt is death by a 1.000 paper cuts

Slide 21

Slide 21 text

@huizendveld @oop_conference Long running projects to pay o ff Technical Debt are too much risk.

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Mathias Verraes

Slide 24

Slide 24 text

@huizendveld @oop_conference Slo w c h e c ko ut of co de o n M1 Mac 2021, Jun e , 15 Managed Technical Debt ✓What is the problem? 📝 ✓When was it fi rst encountered? 📅 ✓Proposed fi x 🛠 ✓Estimated slowdown 💸 ✓Estimated time to fi x ⏱

Slide 25

Slide 25 text

It needs to be impossible to ignore

Slide 26

Slide 26 text

Slo w c h e c ko ut of co de o n M1 Mac 2021, Jun e , 15

Slide 27

Slide 27 text

@huizendveld @oop_conference 💪

Slide 28

Slide 28 text

@huizendveld @oop_conference But we are in the middle of a sprint?!

Slide 29

Slide 29 text

@huizendveld @oop_conference Technical debt accumulation 0 25 50 75 100 125 150 175 200 April May June July August September October

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

@huizendveld @oop_conference 🐌

Slide 32

Slide 32 text

@huizendveld @oop_conference But we are in the middle of a sprint?! No e x c us es

Slide 33

Slide 33 text

@huizendveld @oop_conference @huizendveld A real world example Exa mp l es h a ve t o b e si m p l e

Slide 34

Slide 34 text

@huizendveld @oop_conference 🚀

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Sta tic S i te wit h o u t Con ten t M an a ge m ent Sy s t em 2021, Oc t o be r, 13

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

Sta tic S i te wit h o u t Con ten t M an a ge m ent Sy s t em 2021, Oc t o be r, 13

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

Sta tic S i te wit h o u t Con ten t M an a ge m ent Sy s t em 2021, Oc t o be r, 13

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

@huizendveld @oop_conference Take the smallest step imaginable to improve the situation

Slide 45

Slide 45 text

@huizendveld @oop_conference “Make the change easy, then make the easy change” 
 – Kent Beck

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

@huizendveld @oop_conference Decide upfront about the time box, and honor it

Slide 49

Slide 49 text

@huizendveld @oop_conference Checklist ✔︎ ✓ How would I know I have addressed the issue? ✓ Do I have tests? ✓ What is the risk and impact of messing up? ✓ What is the smallest step?

Slide 50

Slide 50 text

@huizendveld @oop_conference ✅

Slide 51

Slide 51 text

No content

Slide 52

Slide 52 text

@huizendveld @oop_conference Technical Debt ≠ Legacy System

Slide 53

Slide 53 text

@huizendveld @oop_conference A Legacy System may have a lot of Technical Debt, but that is something else

Slide 54

Slide 54 text

@huizendveld @oop_conference Common Pitfalls

Slide 55

Slide 55 text

No content

Slide 56

Slide 56 text

@oop_conference @huizendveld I know the question that is all on your minds

Slide 57

Slide 57 text

No content

Slide 58

Slide 58 text

@huizendveld @oop_conference How to measure success? ✓Unplanned work 🤯 ✓Time to market ⏲ ✓Mean time to bug resolution 🐞 ✓Team happiness 😁

Slide 59

Slide 59 text

@huizendveld @oop_conference Rules of Thumb 👍 (Part I) ✓If you can fi x it within 5 minutes, then you should ✓Model > Technical Hack > Automate Fix > Checklist Fix ✓If you spend more time than your original estimate, make a checklist and move on ✓Don’t fi x it when it can be fi xed by machines (e.g. code style)

Slide 60

Slide 60 text

@huizendveld @oop_conference Rules of Thumb 👍 (Part II) ✓No Debt means liquidity, liquidity means optionality ✓Only people with skin in the game are allowed to pay o ff debt ✓If it is messy, make it look messy ✓Leverage loss aversion ✓Leave alone stable areas

Slide 61

Slide 61 text

@oop_conference @huizendveld Looking back

Slide 62

Slide 62 text

@huizendveld @oop_conference Conclusions ✓You already have Technical Debt, it’s just not as visible 🫣 ✓It takes discipline to collect and frequently review items 🏋 ✓Determination to act is when you hit that 3rd strike 💪 ✓Keep the process lightweight, to allow anyone to start 📝 ✓Show in a visible area: Ignore at your own peril 👀

Slide 63

Slide 63 text

@huizendveld @oop_conference Change is the Only Constant

Slide 64

Slide 64 text

No content

Slide 65

Slide 65 text

@huizendveld @oop_conference Special thanks to @mathiasverraes for the approach and @ziobrando for the ma ff i a analogy

Slide 66

Slide 66 text

Eager to learn more? Feel free to reach out :-) 
 [email protected] @huizendveld Anthony Fokkerweg 3 - 1059 CM Amsterdam - The Netherlands

Slide 67

Slide 67 text

@oop_conference @huizendveld Bonus: Stretching the Metaphor

Slide 68

Slide 68 text

@huizendveld @oop_conference 📦 Packaging Technical Debt as Stories

Slide 69

Slide 69 text

@huizendveld @oop_conference ⚖ Technical Debt on the Balance Sheet