This document discusses strategies for working with legacy code that lacks tests, which is considered risky to change. It recommends using core refactorings to safely introduce tests and characterization tests to describe and protect existing behavior without changing it. Peeling away dependencies and slicing code into testable units also helps reduce risk when modifying untested code. The goal is to make legacy code less scary and easier to change over time by adding tests and refactoring carefully.