The main thing that distinguishes legacy code from non-legacy code is tests, or rather a
lack of tests. We can get a sense of this with a little thought experiment: how easy would
it be to modify your code base if it could bite back, if it could tell you when you made a
mistake? It would be pretty easy, wouldn’t it? Most of the fear involved in making
changes to large code bases is fear of introducing subtle bugs; fear of changing things
inadvertently. working effectively with legacy code
lack of tests. We can get a sense of this with a little thought experiment: how easy would
it be to modify your code base if it could bite back, if it could tell you when you made a
mistake? It would be pretty easy, wouldn’t it? Most of the fear involved in making
changes to large code bases is fear of introducing subtle bugs; fear of changing things
inadvertently. working effectively with legacy code