The Curious Engineer

All blogs / Software / engineering practice

Understand Legacy Code

understandlegacycode.com

Change Messy Software Without Breaking It

Software / engineering practiceTesting / QA

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

  1. I built a visual tool for the Mikado Method

2025 1

  1. The Legacy Code Survival Guide: Add Features Without Fear

2024 2

  1. The key points of Refactoring at Scale
  2. The key points of Refactoring

2023 8

  1. The key points of Kill It with Fire
  2. How to efficiently practice refactoring katas
  3. It's like coding in the dark!
  4. Find how to (re)organize code with git
  5. Delete unused code (and how to retrieve it)
  6. Can AI help me refactor legacy code?
  7. Can AI help me write tests on legacy code?
  8. Fake it until you automate it

2022 4

  1. Comparing 2 approaches of refactoring untested code
  2. Another way of refactoring untested code
  3. One way of refactoring untested code
  4. 7 advice to help you inherit a legacy codebase

2021 19

  1. Improve your refactoring and testing skills with the Expense Report kata
  2. 3 must-watch talks on Legacy Code
  3. The key points of The Programmer's Brain
  4. Testability, Empathy, and Safe Refactorings
  5. Can AI-based test generation help you test Legacy Code?
  6. Refactoring vs. Defactoring
  7. What unit test tool should I bring to my JavaScript team?
  8. DevOps, Living Documentation, and Hexagonal Architecture
  9. 4 tips to refactor a complex legacy app without automation tools
  10. Design Patterns, Empathy, and Reading Complex Code
  11. Should we stick to old patterns or sacrifice consistency?
  12. What's the difference between Regression Tests, Characterization Tests, and Approval Tests?
  13. Keeping dependencies up-to-date
  14. Technical Debt, Rewrites, and Refactoring
  15. Is it OK to change code for the sake of testing?
  16. How to tell your client how bad their codebase is?
  17. Safely restructure your codebase with Dependency Graphs
  18. The key points of Re-Engineering Legacy Software
  19. Does refactoring Legacy Code pay off in your career?

2020 39

  1. Refactoring, Unit Tests, and Symmathesy
  2. The key points of Beyond Legacy Code
  3. When is it the best time to refactor?
  4. Work faster and safer on untested code with Overcommitting
  5. The best way to start testing untested code
  6. What you can do when code is really hard to review
  7. The key points of The Legacy Code Programmer's Toolbox
  8. Approval Tests, TCR, and Menders
  9. When should you stop refactoring Legacy Code?
  10. 4 developers working their way through Legacy Code
  11. Where should you put the documentation?
  12. Start cleaning your Legacy codebase with The Daily Refactoring Hour
  13. Identify who to ask for help with Knowledge Maps
  14. Quickly improve code readability with Proximity Refactorings
  15. The key points of Software Design X-Rays
  16. 7 techniques to regain control of your Legacy codebase
  17. If you mock, are you even testing?
  18. Convince managers to address Tech Debt with Enclosure Diagrams
  19. Demine your codebase in 30min with Exploratory Refactoring
  20. 7 practices for a successful code handover
  21. Reveal the structure of long methods with an online Word Counter
  22. A quick way to add tests when code has database or HTTP calls
  23. Bring Legacy Code under tests by handling global variables
  24. Earn future maintainers esteem by writing simple ADRs
  25. Is it fine to use "AND" in a function name?
  26. 5 talks on Legacy Code: The Legacy of SoCraTes, 1st edition
  27. Focus refactoring on what matters with Hotspots Analysis
  28. Don't make Clean Code harder to maintain, use the Rule of Three
  29. Are functions that simply call another function a bad design choice?
  30. What is wrong with boolean parameters?
  31. 5 coding exercises to practice refactoring Legacy Code
  32. Dive into an unfamiliar codebase from its edges
  33. The key points of Working Effectively with Legacy Code
  34. 5 arguments to make managers care about technical debt
  35. The Ship of Theseus to NOT rewrite a legacy system from scratch
  36. Is it up to the newer developer to pay back others' technical debt?
  37. Use the Mikado Method to do safe changes in a complex codebase
  38. 3 steps to add tests on existing code when you have short deadlines
  39. What is Legacy Code? Is it code without tests?