Slide 1

Slide 1 text

Dealing with Technical Debt

Slide 2

Slide 2 text

Katerina Trajchevska ● Co-founder of Adeva, a remote developers’ network. ● Software Engineer & Mozilla Tech Speaker ● Consultant with startups and Fortune 500 @ktrajchevska

Slide 3

Slide 3 text

Technical debt is the coding you must do tomorrow because you took a shortcut in order to deliver the software today.

Slide 4

Slide 4 text

Technical Debt Perfect Code Ship Fast

Slide 5

Slide 5 text

The average developer spends 42% of their time dealing with technical debt and maintenance issues.

Slide 6

Slide 6 text

Is Technical Debt Always Bad?

Slide 7

Slide 7 text

Planned technical debt can help you focus on delivering value.

Slide 8

Slide 8 text

Personal Experience: Integrating Github with Adeva’s Platform

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

The Problem: Spending too much time on code design for a tool we didn’t use.

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

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).

Slide 13

Slide 13 text

Common trade-off: Spending less time now will cause you to spend more time later.

Slide 14

Slide 14 text

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?

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

How to Manage Accumulated Technical Debt?

Slide 18

Slide 18 text

Small-sized Technical Debt

Slide 19

Slide 19 text

Always leave the campground (code) cleaner than you found it. - Uncle Bob

Slide 20

Slide 20 text

Do simple code improvements as part of existing tickets.

Slide 21

Slide 21 text

Medium-sized Technical Debt

Slide 22

Slide 22 text

Businesses prioritize work that delivers value to the customer.

Slide 23

Slide 23 text

Managers fail to recognize the connection between code quality and customer value.

Slide 24

Slide 24 text

The opportunity cost of bad code comes to $85 billion annually. - Stripe Research

Slide 25

Slide 25 text

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.

Slide 26

Slide 26 text

Large-sized Technical Debt

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

Slow progress is better than no progress.

Slide 29

Slide 29 text

How to avoid technical debt?

Slide 30

Slide 30 text

1. Communicate.

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

2. Consider the trade-offs when making design decisions.

Slide 33

Slide 33 text

3. Get in a mindset of considering long term impact of your decisions.

Slide 34

Slide 34 text

Organisations who actively manage tech debt ship 50% faster.

Slide 35

Slide 35 text

Thank you!