automated testing, technical debt, Tobias Kahn, UNCON2015

unConference 2015 Session: Paying the Piper – Reducing Technical Debt

By Tobias Kahn, @Tobitronkahn

Technical debt naturally accrues in any large codebase. This is
particularly true with development that deals with a high proportion of legacy
systems, or any team pressured to move more quickly than they would ideally
prefer, a.k.a. every development team.
The conversation ranged along a variety of strategies to reduce
tech debt, with consolidation emerging as a theme. Combining multiple APIs into
one, the use of micro services, decoupling dependencies in general. Viewing
maintainability as the most important aspect of engineering helps reduce tech
debt. In many cases legacy systems are only legacy because they weren’t
Getting buy-in from business is essential, and often difficult.
Technical debt can be a black box to non-technical people –there’s no good
parallel in other aspects of a business– and it’s difficult to get business
folks to understand technical debt. It’s essential to communicate finite
business benefits when making the case for time to reduce tech debt. “We’ll
spend two weeks to make the site faster and more stable” goes a lot further
than “the codebase is a mess we need to spend two weeks fixing it.” When
communication fails, developers find themselves needing to sneak tech debt reduction
into normal feature development. Rue La La does a feature freeze in Q4 to allow
devs to tackle technical debt, but this is very much the exception rather than
the rule.

The participants discussed the importance of testing
and why it so often falls by the wayside: time. Building out a test suite can
be daunting, and it’s important to take it one step at a time. While some
refactoring can be complex, requiring hours of focused time, writing a test
here and there can be squeezed into 30 minute time slots. Slow and steady wins
the race.

Upcoming Events


Related Articles