All blogs / Software / engineering practice
Understand Legacy Code
Change Messy Software Without Breaking It
- Posts
- 74 from 22 Jan 2020 to 18 Mar 2026
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://understandlegacycode.com/rss.xml
2026 1
2025 1
2024 2
2023 8
2022 4
2021 19
- Improve your refactoring and testing skills with the Expense Report kata
- 3 must-watch talks on Legacy Code
- The key points of The Programmer's Brain
- Testability, Empathy, and Safe Refactorings
- Can AI-based test generation help you test Legacy Code?
- Refactoring vs. Defactoring
- What unit test tool should I bring to my JavaScript team?
- DevOps, Living Documentation, and Hexagonal Architecture
- 4 tips to refactor a complex legacy app without automation tools
- Design Patterns, Empathy, and Reading Complex Code
- Should we stick to old patterns or sacrifice consistency?
- What's the difference between Regression Tests, Characterization Tests, and Approval Tests?
- Keeping dependencies up-to-date
- Technical Debt, Rewrites, and Refactoring
- Is it OK to change code for the sake of testing?
- How to tell your client how bad their codebase is?
- Safely restructure your codebase with Dependency Graphs
- The key points of Re-Engineering Legacy Software
- Does refactoring Legacy Code pay off in your career?
2020 39
- Refactoring, Unit Tests, and Symmathesy
- The key points of Beyond Legacy Code
- When is it the best time to refactor?
- Work faster and safer on untested code with Overcommitting
- The best way to start testing untested code
- What you can do when code is really hard to review
- The key points of The Legacy Code Programmer's Toolbox
- Approval Tests, TCR, and Menders
- When should you stop refactoring Legacy Code?
- 4 developers working their way through Legacy Code
- Where should you put the documentation?
- Start cleaning your Legacy codebase with The Daily Refactoring Hour
- Identify who to ask for help with Knowledge Maps
- Quickly improve code readability with Proximity Refactorings
- The key points of Software Design X-Rays
- 7 techniques to regain control of your Legacy codebase
- If you mock, are you even testing?
- Convince managers to address Tech Debt with Enclosure Diagrams
- Demine your codebase in 30min with Exploratory Refactoring
- 7 practices for a successful code handover
- Reveal the structure of long methods with an online Word Counter
- A quick way to add tests when code has database or HTTP calls
- Bring Legacy Code under tests by handling global variables
- Earn future maintainers esteem by writing simple ADRs
- Is it fine to use "AND" in a function name?
- 5 talks on Legacy Code: The Legacy of SoCraTes, 1st edition
- Focus refactoring on what matters with Hotspots Analysis
- Don't make Clean Code harder to maintain, use the Rule of Three
- Are functions that simply call another function a bad design choice?
- What is wrong with boolean parameters?
- 5 coding exercises to practice refactoring Legacy Code
- Dive into an unfamiliar codebase from its edges
- The key points of Working Effectively with Legacy Code
- 5 arguments to make managers care about technical debt
- The Ship of Theseus to NOT rewrite a legacy system from scratch
- Is it up to the newer developer to pay back others' technical debt?
- Use the Mikado Method to do safe changes in a complex codebase
- 3 steps to add tests on existing code when you have short deadlines
- What is Legacy Code? Is it code without tests?