
Using Logging Seams for Legacy Code Unit Testing
Using logging seams you can easily create unobtrusive unit tests around legacy classes, without needing to edit class logic as well as avoiding behavior changes.
Tracking change and innovation in the enterprise software development community

Using logging seams you can easily create unobtrusive unit tests around legacy classes, without needing to edit class logic as well as avoiding behavior changes.

Here's a three-pronged attack to use on the legacy code that everyone eventually inherits: Build, Automate, Test. Use this BAT to create a safety net to ensure your code continues to work the way you want it to. Richardson shows how this helps quickly identify and eliminate unintended side effects. See how your day-to-day work compares, and see if you need to approach your work differently.
A Technical Debt Workshop was recently held to improve our industry's understanding of and approach to "technical debt", resulting in some interesting ideas. Among them, changing our perception of the problem to focus on "assets" rather than "debt", an idea now receiving quite a bit of attention by people such as Michael Feathers and Brian Marick.
In his latest blog post, Michael Feathers argued that object oriented programming languages offer some built-in features that facilitate testing and are therefore more recovery friendly than functional languages. Proponents of functional languages expressed strong disagreement with this statement, which provoked a very passionate debate in the blog community.
Alberto Savoia has written a series of four articles describing "characterization testing" - the process of writing unit tests to understand and work with legacy code.
One can't always start from scratch with Agile - sometimes it's used to salvage troubled projects, but Emanuel Gaillot notes that "What's tough about XP is, the more you need it to get your project in a better shape, the harder it is to start doing it." Can a team really afford to switch in the middle of a troubled project? Gaillot recently shared his approach to gradual XP implementation.