Michael Feathers defines legacy code as "code without tests." There's a major qualitative difference when working on code without tests. Feathers' job is to move software teams from their current process to a test-driven development process. In this interview he also discusses functional programming and other important paradigms that developers should consider.
Michael Feathers is a senior consultant at Object Mentor. He travels
around the world working with software teams to help solve their biggest
problems. Seeing the challenges of many software teams instead of just
one gives Feathers a unique and broad perspective of the software
industry. His projects involve agile transitions and dealing with
large, untested codebases.