fear involved in making changes to large code bases is fear of introducing subtle bugs; fear of changing things inadvertently. Without test, you just don’t know whether things are getting better or worse. » — Michael Feathers
to refactor This is the « boy scout rule » 01. 03. When you found a bug, first write a test that triggers it, then fix it. Developing a new feature and refactoring doesn’t mix well! 02.
The « We’ll fix it later » syndrome 01. 02. The same cause always produces the same effect Instead provide a learning time, so you stop writing legacy code 03.
pattern How to tackle it? You’ll need to coordinate your actions at the system level 01. 02. Beware of functional debt 03. Optimise your new system for replacement!
X-Rays (Thornhill) • Working Effectively with Legacy Code (Feather) • Refactoring (Fowler) Going further Thanks to Michael C. Feather, Adam Thornhill, Cyrille Martraire, Thomas Pierrain, Martin Fowler, Jean-Baptiste Dusseaut, Ola Ellnestam, Daniel Brolund, Adrian Bolboaca