Paying Down Technical Debt

Once you are skilled with refactoring and design patterns, you are ready to make the mindset shift to TDD. Typically, though, most organizations have one more impediment to actually fully implementing a test-first approach: there's a lot of code that was written the "old" way.

To truly realize technical excellence, you need techniques to manage the risk and cost associated with this code and, ultimately, to transform it into healthy, high-performing software.
This session can last either one or two days and is focused on establishing and cementing a few trued-and-true techniques for converting legacy code into code you can sustain.

This session involves light conversation and a heavy mixture of code katas (instructor-led pratice sessions following a rigid path) and hands-on exercises.

Day 1

  • How being test-driven helps where writing tests first wouldn't.
  • Kata: Improving the design of legacy code.
  • Exercise: Testing untested code.
  • Exercise: Testing untestable code.
  • Exercise: Getting better design for better tests.

Day 2

  • What to do when you absolutely can't test some code.
  • Kata: Safely inserting behavior into legacy code.
  • Exercise: Refactoring to testability.
  • Testing bigger than you want to as a move of last-resort.

For more information contact max@abiding.software.