In this chapter, we discussed how we define legacy code and the issues that legacy code can create. Legacy code can inhibit testing, but now you should know how to fight back against the legacy problem.
In Chapter 13, Unraveling a Mess, we'll explore a rather extreme example of the types of things you might encounter in a legacy system. We'll explore safe refactoring and how to best unravel a mess into well structured, testable code.