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

Dealing with Technical Debt

Dealing with Technical Debt

Dealing with Technical Debt - Laracon EU 2021.

6165f5bae67e249133eba24da4b93780?s=128

Katerina Trajchevska

January 18, 2021
Tweet

Transcript

  1. Dealing with Technical Debt

  2. Katerina Trajchevska • Co-founder of Adeva, a remote developers’ network.

    • Software Engineer & Mozilla Tech Speaker • Consultant with startups and Fortune 500 @ktrajchevska
  3. Technical debt is the coding you must do tomorrow because

    you took a shortcut in order to deliver the software today.
  4. Technical Debt Perfect Code Ship Fast

  5. The average developer spends 42% of their time dealing with

    technical debt and maintenance issues.
  6. Is Technical Debt Always Bad?

  7. Planned technical debt can help you focus on delivering value.

  8. Personal Experience: Integrating Github with Adeva’s Platform

  9. Task: Pull Github data to profile 1. Abstract all dependencies

    so the controller doesn’t care what happens under the hood. 2. Use a combination of Strategy and Factory patterns to handle different Git clients. 3. Create an interface for the Git classes. 4. Create an Adapter class that will return the proper response for each client.
  10. The Problem: Spending too much time on code design for

    a tool we didn’t use.
  11. None
  12. When is Tech Debt good? ー Working on an MVP

    that will probably need to be recoded after user feedback. ー Experimenting with new tools and features that don’t have clear long term value. ー New feature or bug fix should be delivered fast (with caution).
  13. Common trade-off: Spending less time now will cause you to

    spend more time later.
  14. Questions to ask ー Will leaving tech debt behind really

    make development faster? Or are you being lazy? ー Are there other features that depend on the same codebase? If so, will investing a bit more time now save you time down the road?
  15. When will Tech Debt come back at you? ー Planned

    technical debt is accumulated and never tackled. ー Unintentional technical debt creates cruft and makes development harder. ー Codebase becomes outdated as technology evolves.
  16. Signs of tech debt in your code ー Bugs, especially

    in regression testing. ー Duplicate code and copy/paste approach. ー Changing existing code for new features. ー Can’t understand what a function does. ー Slow performance, security issues, unreliable data results.
  17. How to Manage Accumulated Technical Debt?

  18. Small-sized Technical Debt

  19. Always leave the campground (code) cleaner than you found it.

    - Uncle Bob
  20. Do simple code improvements as part of existing tickets.

  21. Medium-sized Technical Debt

  22. Businesses prioritize work that delivers value to the customer.

  23. Managers fail to recognize the connection between code quality and

    customer value.
  24. The opportunity cost of bad code comes to $85 billion

    annually. - Stripe Research
  25. How to approach medium-sized debt? ー Empower engineers to report

    accumulated tech debt. ー Record intentional and reported debt. ー Plan to tackle at least one backlog item per sprint.
  26. Large-sized Technical Debt

  27. How to approach large-sized dept? ー Reporting as with medium-sized

    debt. ー Senior engineers should be involved in planning how to tackle large debt. ー Handled over several sprints. or
  28. Slow progress is better than no progress.

  29. How to avoid technical debt?

  30. 1. Communicate.

  31. None
  32. 2. Consider the trade-offs when making design decisions.

  33. 3. Get in a mindset of considering long term impact

    of your decisions.
  34. Organisations who actively manage tech debt ship 50% faster.

  35. Thank you!