K>Как вы для себя решаете эти проблемы?
С помощью рефакторинга. Как тут уже писали, нужно постепенно покрывать код тестами и рефакторить. Правда забыли добавить что легаси код часто бывает невозможно покрыть тестами,так как он плохо написан. Тут уже возникает проблема, которая сродни квантовой физике, измерение изменяет состояние. Чтобы написать тест, нужно сначала немного порефакторить и переписать. Тут могут помочь всевозможные функциональные тесты, но даже с ними — процесс весьма непростой. Есть неплохая книжка на эту тему —
http://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052