Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Beyond Taming Technical Debt at OOP Digital 2023

Beyond Taming Technical Debt at OOP Digital 2023

Discipline, determination, a highly visible area, and a few sticky notes, are all you need to move beyond problems with technical debt.

Making great software is challenging

It doesn't matter how qualified a team is, it will never be able to produce perfect, flawless, entirely bug-free software.
While teams are discovering how to build the right software in the right way, the environment the team operates in changes.
This results in a constant reorientation of the product, and the corresponding software solution, which will cause gaps between how things work, and how they should work.

Unfortunately the market won't wait infinitely until teams have addressed these issues in the software, and organizations tend to run out of patience too.
That is why teams often have to move forward with designs and code that are... let's call them sub-optimal.
These gaps, they are technical debt: a loan against the future, where things will be fixed, at some point... Hopefully.

According to a global survey performed by Stripe, Inc. amongst software engineers in 2018, researchers found that engineers estimate to spend 17,3 hours per week on addressing technical debt.
That same research established that developers work about 41.1 hours per week. With that in mind, addressing technical debt constitutes well over a third of the time a typical engineer spends per week.
If engineers are spending that much time, how could they better utilize their attention?
Why do they seem unable to gain control over this metric and push it downwards?

While technical debt sounds nice and predictable: "you just have to pay interest", it really is like a loan with a mobster, and not with a bank.
It will show up unannounced at your doorstep at 3.30 in the morning, demanding that you pay up now!
How can you prevent being surprised by this goon?! And what can you do to leverage the benefits of borrowing against the future?
Because when the conditions are right, taking out a loan and paying it back Tomorrow might just help you ship a better product Today.

Imagine...

* A lightweight process to discover technical debt without a big investment up front

* A data-driven approach to identify the technical debt that needs attention right now

* A system that is easy to introduce, and simple to enforce

* Something that will guide engineers to articulate technical debt in terms of our roadmap

* Which will ultimately improve the flow of work in your organization

The Wall of Technical Debt™️

A few years ago Mathias Verraes coined the term "The Wall of Technical Debt". During this presentation Marijn Huizendveld will show you how to institute such a process for managed technical debt. Doing so will provide you with a safety net that allows you to make "naive" design choices every now and again to ship your ideas as fast as possible, without sacrificing sustainable delivery in the long run.

Marijn Huizendveld

February 08, 2023
Tweet

More Decks by Marijn Huizendveld

Other Decks in Programming

Transcript

  1. @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
  2. @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
  3. @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
  4. @huizendveld @oop_conference A gap between how things are, And how

    we like them to be In our systems, 
 Provided identical functionality
  5. @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
  6. @huizendveld @oop_conference @huizendveld Do you have Technical Debt? How much?

    Does it bother you? What keeps you from repaying it?
  7. @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
  8. @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 ⏱
  9. Slo w c h e c ko ut of co

    de o n M1 Mac 2021, Jun e , 15
  10. @huizendveld @oop_conference Technical debt accumulation 0 25 50 75 100

    125 150 175 200 April May June July August September October
  11. 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
  12. 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
  13. 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
  14. @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?
  15. @huizendveld @oop_conference A Legacy System may have a lot of

    Technical Debt, but that is something else
  16. @huizendveld @oop_conference How to measure success? ✓Unplanned work 🤯 ✓Time

    to market ⏲ ✓Mean time to bug resolution 🐞 ✓Team happiness 😁
  17. @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)
  18. @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
  19. @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 👀
  20. Eager to learn more? Feel free to reach out :-)

    [email protected] @huizendveld Anthony Fokkerweg 3 - 1059 CM Amsterdam - The Netherlands