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

Beyond taming technical debt

Beyond taming technical debt

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

November 07, 2022
Tweet

More Decks by Marijn Huizendveld

Other Decks in Technology

Transcript

  1. @huizendveld #SkillsMatter “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
  2. @huizendveld #SkillsMatter “The technical debt metaphor treats the cruft as

    a debt, whose interest payments are the extra e ff ort these changes require.” 
 – Martin Fowler
  3. @huizendveld #SkillsMatter A gap between how things are, And how

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

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

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

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

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

    to market ⏲ ✓Mean time to bug resolution 🐞 ✓Team happiness 😁
  16. @huizendveld #SkillsMatter 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 than 3 times 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)
  17. @huizendveld #SkillsMatter 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
  18. @huizendveld #SkillsMatter 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 👀
  19. Eager to learn more? [email protected] marijn.huizendveld.com/appearances/ 
 Join me in

    London on November 22-24 to learn about DDD & Legacy Systems. Early-bird Tickets at £1550. Marijn Huizendveld B.V. Anthony Fokkerweg 3 - 1059 CM Amsterdam - The Netherlands