{"@attributes":{"version":"2.0"},"channel":{"title":"Understand Legacy Code","description":"Change Messy Software Without Breaking It","link":"https:\/\/understandlegacycode.com\/","language":"en-us","item":[{"title":"I built a visual tool for the Mikado Method","link":"https:\/\/understandlegacycode.com\/blog\/visual-tool-mikado-method\/","guid":"https:\/\/understandlegacycode.com\/blog\/visual-tool-mikado-method\/","description":"The Mikado Method helps you tackle big changes safely. But drawing graphs on paper doesn't scale. I couldn't find a satisfying tool\u2026 so I built one: Nikado.","pubDate":"Wed, 18 Mar 2026 00:00:00 GMT"},{"title":"The Legacy Code Survival Guide: Add Features Without Fear","link":"https:\/\/understandlegacycode.com\/blog\/legacy-code-survival-guide-talk\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-code-survival-guide-talk\/","description":"Steven Diamante gave a great presentation on Legacy Code at the Seattle Crafter meetup. Let's dive into it!","pubDate":"Tue, 07 Oct 2025 10:36:52 GMT"},{"title":"The key points of Refactoring at Scale","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-refactoring-at-scale\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-refactoring-at-scale\/","description":"Maude Lemaire wrote a great book rooted from her experience in the trenches, at Slack. Let's see how it may help you lead large-scale refactoring projects.","pubDate":"Thu, 25 Apr 2024 00:00:00 GMT"},{"title":"The key points of Refactoring","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-refactoring\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-refactoring\/","description":"This book is a catalog of the bread-and-butter moves that can improve your coding game. Let's see what makes it a reference for any professional developer.","pubDate":"Fri, 12 Jan 2024 00:00:00 GMT"},{"title":"The key points of Kill It with Fire","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-kill-it-with-fire\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-kill-it-with-fire\/","description":"Let's rewrite the whole thing on a modern stack! Or should we? Marianne Bellotti offers a lot of wisdom in her book. Here are some examples\u2026","pubDate":"Tue, 19 Dec 2023 00:00:00 GMT"},{"title":"How to efficiently practice refactoring katas","link":"https:\/\/understandlegacycode.com\/blog\/efficiently-practice-refactoring-katas\/","guid":"https:\/\/understandlegacycode.com\/blog\/efficiently-practice-refactoring-katas\/","description":"How to best learn out of refactoring exercises, depending on your level of experience.","pubDate":"Sun, 26 Nov 2023 06:16:00 GMT"},{"title":"It's like coding in the dark!","link":"https:\/\/understandlegacycode.com\/blog\/its-like-coding-in-the-dark\/","guid":"https:\/\/understandlegacycode.com\/blog\/its-like-coding-in-the-dark\/","description":"A look into Catherine Hicks' white paper \"It\u2019s Like Coding in the Dark: The need for learning cultures within coding teams\" (Catharsis Consulting).","pubDate":"Tue, 17 Oct 2023 15:24:00 GMT"},{"title":"Find how to (re)organize code with git","link":"https:\/\/understandlegacycode.com\/blog\/reorganize-code-with-git\/","guid":"https:\/\/understandlegacycode.com\/blog\/reorganize-code-with-git\/","description":"Does your codebase feel like a tote bag of \"shared\" and \"utils\" folder? Git may help you find a better structure.","pubDate":"Wed, 19 Apr 2023 21:24:00 GMT"},{"title":"Delete unused code (and how to retrieve it)","link":"https:\/\/understandlegacycode.com\/blog\/delete-unused-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/delete-unused-code\/","description":"Dead code adds noise to the codebase and should be deleted. Yet, deleted code feels harder to retrieve. Here's how to find such code easily with git!","pubDate":"Tue, 07 Mar 2023 20:00:00 GMT"},{"title":"Can AI help me refactor legacy code?","link":"https:\/\/understandlegacycode.com\/blog\/can-ai-refactor-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/can-ai-refactor-legacy-code\/","description":"Can assistants like ChatGPT refactor existing code without introducing bugs? Let's figure it out with an actual codebase.","pubDate":"Wed, 15 Feb 2023 15:10:00 GMT"},{"title":"Can AI help me write tests on legacy code?","link":"https:\/\/understandlegacycode.com\/blog\/can-ai-write-tests-on-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/can-ai-write-tests-on-legacy-code\/","description":"People are using tools like ChatGPT to write tests on existing code\u2026 But how reliable is this? Let's find out!","pubDate":"Wed, 08 Feb 2023 08:40:00 GMT"},{"title":"Fake it until you automate it","link":"https:\/\/understandlegacycode.com\/blog\/fake-it-until-you-automate-it\/","guid":"https:\/\/understandlegacycode.com\/blog\/fake-it-until-you-automate-it\/","description":"A pragmatic way for you to start automating deployments of a Legacy system.","pubDate":"Mon, 09 Jan 2023 00:00:00 GMT"},{"title":"Comparing 2 approaches of refactoring untested code","link":"https:\/\/understandlegacycode.com\/blog\/comparing-two-approaches-refactoring-untested-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/comparing-two-approaches-refactoring-untested-code\/","description":"You need to change code that's not tested. How do you know you didn't break something? Let's compare 2 ways of doing that!","pubDate":"Thu, 17 Nov 2022 09:00:00 GMT"},{"title":"Another way of refactoring untested code","link":"https:\/\/understandlegacycode.com\/blog\/another-way-of-refactoring-untested-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/another-way-of-refactoring-untested-code\/","description":"You need to change code that's not tested. How do you know you didn't break something? Here is ANOTHER concrete way to tackle the problem.","pubDate":"Tue, 11 Oct 2022 15:00:00 GMT"},{"title":"One way of refactoring untested code","link":"https:\/\/understandlegacycode.com\/blog\/one-way-of-refactoring-untested-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/one-way-of-refactoring-untested-code\/","description":"You need to change code that's not tested. How do you know you didn't break something? Here is one concrete way to tackle the problem.","pubDate":"Tue, 09 Aug 2022 15:00:00 GMT"},{"title":"7 advice to help you inherit a legacy codebase","link":"https:\/\/understandlegacycode.com\/blog\/7-advice-inherit-legacy-codebase\/","guid":"https:\/\/understandlegacycode.com\/blog\/7-advice-inherit-legacy-codebase\/","description":"My recap of the most common and useful advice one can give to tackle Legacy codebases.","pubDate":"Sun, 27 Feb 2022 09:35:00 GMT"},{"title":"Improve your refactoring and testing skills with the Expense Report kata","link":"https:\/\/understandlegacycode.com\/blog\/improve-refactoring-testing-expense-report-kata\/","guid":"https:\/\/understandlegacycode.com\/blog\/improve-refactoring-testing-expense-report-kata\/","description":"Watch Gregor Riegler refactor code with this coding exercise. Learn useful techniques from it.","pubDate":"Mon, 13 Dec 2021 00:00:00 GMT"},{"title":"3 must-watch talks on Legacy Code","link":"https:\/\/understandlegacycode.com\/blog\/3-must-watch-talks-on-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/3-must-watch-talks-on-legacy-code\/","description":"I have hosted more than 37 speakers to talk about Legacy Code tips and tricks. Here is my top 3 of the talks you should probably watch!","pubDate":"Sun, 12 Dec 2021 12:48:00 GMT"},{"title":"The key points of The Programmer's Brain","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-programmer-brain\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-programmer-brain\/","description":"This book analyses how your brain works and gives concrete advice to help you work with Legacy Code. Here's my summary of its salient points.","pubDate":"Sun, 12 Dec 2021 00:00:00 GMT"},{"title":"Testability, Empathy, and Safe Refactorings","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-8th-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-8th-edition\/","description":"4 great talks on Legacy Code that I had the pleasure to host. This edition particularly focuses on testing and refactoring.","pubDate":"Sat, 27 Nov 2021 07:00:00 GMT"},{"title":"Can AI-based test generation help you test Legacy Code?","link":"https:\/\/understandlegacycode.com\/blog\/ai-test-generation-for-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/ai-test-generation-for-legacy-code\/","description":"I experimented with tools that can generate tests for you, leveraging AI. Here is what I learned, along with some thoughts about testing unfamiliar code\u2026","pubDate":"Tue, 09 Nov 2021 08:40:00 GMT"},{"title":"Refactoring vs. Defactoring","link":"https:\/\/understandlegacycode.com\/blog\/refactoring-and-defactoring\/","guid":"https:\/\/understandlegacycode.com\/blog\/refactoring-and-defactoring\/","description":"Some thoughts about refactoring and the opposite operation: defactoring.","pubDate":"Tue, 26 Oct 2021 16:47:00 GMT"},{"title":"What unit test tool should I bring to my JavaScript team?","link":"https:\/\/understandlegacycode.com\/blog\/test-tool-javascript-team\/","guid":"https:\/\/understandlegacycode.com\/blog\/test-tool-javascript-team\/","description":"A reflection on coaching, facts, and pragmatism. Which testing framework would I recommend to devs who are not familiar with testing?","pubDate":"Tue, 05 Oct 2021 20:35:00 GMT"},{"title":"DevOps, Living Documentation, and Hexagonal Architecture","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-7th-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-7th-edition\/","description":"5 great talks on Legacy Code that I had the pleasure to host. This edition raises new topic such as documentation and legacy pipelines.","pubDate":"Sun, 26 Sep 2021 20:15:00 GMT"},{"title":"4 tips to refactor a complex legacy app without automation tools","link":"https:\/\/understandlegacycode.com\/blog\/4-tips-refactor-without-tools\/","guid":"https:\/\/understandlegacycode.com\/blog\/4-tips-refactor-without-tools\/","description":"How do you refactor a complex legacy application when you can't rely on automation tools?","pubDate":"Mon, 30 Aug 2021 22:00:00 GMT"},{"title":"Design Patterns, Empathy, and Reading Complex Code","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-6th-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-6th-edition\/","description":"4 great talks on Legacy Code that I had the pleasure to host. A focus on empathy and getting into complex codebases.","pubDate":"Tue, 24 Aug 2021 20:15:00 GMT"},{"title":"Should we stick to old patterns or sacrifice consistency?","link":"https:\/\/understandlegacycode.com\/blog\/consistency-or-progress\/","guid":"https:\/\/understandlegacycode.com\/blog\/consistency-or-progress\/","description":"Consistency is great! But over time, it's hard to keep a codebase consistent. Here's my approach to adopt changes without creating a mess.","pubDate":"Sun, 22 Aug 2021 09:15:00 GMT"},{"title":"What's the difference between Regression Tests, Characterization Tests, and Approval Tests?","link":"https:\/\/understandlegacycode.com\/blog\/characterization-tests-or-approval-tests\/","guid":"https:\/\/understandlegacycode.com\/blog\/characterization-tests-or-approval-tests\/","description":"You may have heard one or the others. Now you're confused: is there a difference? Nope! Let me explain\u2026","pubDate":"Wed, 11 Aug 2021 09:15:00 GMT"},{"title":"Keeping dependencies up-to-date","link":"https:\/\/understandlegacycode.com\/blog\/keeping-dependencies-up-to-date\/","guid":"https:\/\/understandlegacycode.com\/blog\/keeping-dependencies-up-to-date\/","description":"My recipe for recovering from outdated dependencies and keeping healthy habits","pubDate":"Tue, 29 Jun 2021 21:15:00 GMT"},{"title":"Technical Debt, Rewrites, and Refactoring","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-5th-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-5th-edition\/","description":"5 great talks on Legacy Code that I had the pleasure to host. Learn how to prioritize Tech Debt and rewrite systems incrementally.","pubDate":"Sat, 08 May 2021 10:15:00 GMT"},{"title":"Is it OK to change code for the sake of testing?","link":"https:\/\/understandlegacycode.com\/blog\/is-it-ok-to-change-code-for-testing-sake\/","guid":"https:\/\/understandlegacycode.com\/blog\/is-it-ok-to-change-code-for-testing-sake\/","description":"It seems necessary to start adding tests on this code\u2026 but what if it makes things worse?","pubDate":"Tue, 04 May 2021 20:15:52 GMT"},{"title":"How to tell your client how bad their codebase is?","link":"https:\/\/understandlegacycode.com\/blog\/tell-client-how-bad-codebase-is\/","guid":"https:\/\/understandlegacycode.com\/blog\/tell-client-how-bad-codebase-is\/","description":"When work looks trivial from the outside, but you know it will actually take much longer to do.","pubDate":"Tue, 16 Feb 2021 20:00:27 GMT"},{"title":"Safely restructure your codebase with Dependency Graphs","link":"https:\/\/understandlegacycode.com\/blog\/safely-restructure-codebase-with-dependency-graphs\/","guid":"https:\/\/understandlegacycode.com\/blog\/safely-restructure-codebase-with-dependency-graphs\/","description":"Even drawing them by hand can help you make sense of a tangled codebase! Let's see how they can help, and what tools you can use to generate these.","pubDate":"Tue, 19 Jan 2021 20:08:00 GMT"},{"title":"The key points of Re-Engineering Legacy Software","link":"https:\/\/understandlegacycode.com\/blog\/key-points-reengineering-legacy-software\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-reengineering-legacy-software\/","description":"Here's an interesting book on approaching Legacy Software. Here's my summary of its salient points.","pubDate":"Tue, 12 Jan 2021 20:10:52 GMT"},{"title":"Does refactoring Legacy Code pay off in your career?","link":"https:\/\/understandlegacycode.com\/blog\/does-working-on-legacy-code-pays-off\/","guid":"https:\/\/understandlegacycode.com\/blog\/does-working-on-legacy-code-pays-off\/","description":"Working on Legacy systems can be extremely beneficial to your career\u2026 If you can explain why it matters to the business!","pubDate":"Tue, 05 Jan 2021 20:21:57 GMT"},{"title":"Refactoring, Unit Tests, and Symmathesy","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-4th-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-4th-edition\/","description":"5 great talks on Legacy Code that I had the pleasure to host. Learn how to progressively migrate existing codebase towards a better state.","pubDate":"Mon, 14 Dec 2020 20:05:57 GMT"},{"title":"The key points of Beyond Legacy Code","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-beyond-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-beyond-legacy-code\/","description":"This book is filled with practical strategies to apply on Legacy systems. Here's my summary of its salient points.","pubDate":"Tue, 01 Dec 2020 20:23:52 GMT"},{"title":"When is it the best time to refactor?","link":"https:\/\/understandlegacycode.com\/blog\/when-is-the-best-time-to-refactor\/","guid":"https:\/\/understandlegacycode.com\/blog\/when-is-the-best-time-to-refactor\/","description":"Should you plan time for refactoring during Sprints? Refactor before you release new features? After? Here's my suggestion\u2026","pubDate":"Tue, 10 Nov 2020 20:07:28 GMT"},{"title":"Work faster and safer on untested code with Overcommitting","link":"https:\/\/understandlegacycode.com\/blog\/work-faster-safer-untested-code-overcommitting\/","guid":"https:\/\/understandlegacycode.com\/blog\/work-faster-safer-untested-code-overcommitting\/","description":"A technique you can resort to when you need to make risky changes.","pubDate":"Tue, 03 Nov 2020 05:47:00 GMT"},{"title":"The best way to start testing untested code","link":"https:\/\/understandlegacycode.com\/blog\/best-way-to-start-testing-untested-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/best-way-to-start-testing-untested-code\/","description":"Should you write E2E tests to cover more cases faster? Or is there a better approach?","pubDate":"Fri, 23 Oct 2020 06:14:00 GMT"},{"title":"What you can do when code is really hard to review","link":"https:\/\/understandlegacycode.com\/blog\/what-you-can-do-when-code-is-hard-to-review\/","guid":"https:\/\/understandlegacycode.com\/blog\/what-you-can-do-when-code-is-hard-to-review\/","description":"5 advice you can try when you feel paralyzed with a change that's too risky to merge, but too long to verify.","pubDate":"Tue, 20 Oct 2020 06:17:00 GMT"},{"title":"The key points of The Legacy Code Programmer's Toolbox","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-legacy-code-programmer-toolbox\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-legacy-code-programmer-toolbox\/","description":"This book is full of tips to get into an unfamiliar codebase. Here's my summary of its salient points.","pubDate":"Tue, 29 Sep 2020 08:23:52 GMT"},{"title":"Approval Tests, TCR, and Menders","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-3rd-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-3rd-edition\/","description":"5 great talks on Legacy Code that I had the pleasure to host. Learn how to test existing code and approach unfamiliar codebases.","pubDate":"Mon, 21 Sep 2020 12:15:57 GMT"},{"title":"When should you stop refactoring Legacy Code?","link":"https:\/\/understandlegacycode.com\/blog\/when-should-you-stop-refactoring-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/when-should-you-stop-refactoring-legacy-code\/","description":"A personal story to illustrate how good habits can save your day when things turn bad.","pubDate":"Tue, 15 Sep 2020 21:10:28 GMT"},{"title":"4 developers working their way through Legacy Code","link":"https:\/\/understandlegacycode.com\/blog\/4-videos-seasoned-developers-working-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/4-videos-seasoned-developers-working-legacy-code\/","description":"Practice working with code you've never seen before helps make it easier. Here's my selection of videos that will expose you to seasoned developers doing that!","pubDate":"Tue, 01 Sep 2020 21:13:12 GMT"},{"title":"Where should you put the documentation?","link":"https:\/\/understandlegacycode.com\/blog\/where-to-put-documentation\/","guid":"https:\/\/understandlegacycode.com\/blog\/where-to-put-documentation\/","description":"What you should be looking for to build a great and useful documentation.","pubDate":"Mon, 17 Aug 2020 21:19:28 GMT"},{"title":"Start cleaning your Legacy codebase with The Daily Refactoring Hour","link":"https:\/\/understandlegacycode.com\/blog\/start-cleaning-legacy-with-daily-refactoring-hour\/","guid":"https:\/\/understandlegacycode.com\/blog\/start-cleaning-legacy-with-daily-refactoring-hour\/","description":"Building the habit of small refactorings as you go will make a difference in the long run.","pubDate":"Mon, 20 Jul 2020 10:10:28 GMT"},{"title":"Identify who to ask for help with Knowledge Maps","link":"https:\/\/understandlegacycode.com\/blog\/identify-who-to-ask-with-knowledge-maps\/","guid":"https:\/\/understandlegacycode.com\/blog\/identify-who-to-ask-with-knowledge-maps\/","description":"Learn to draw a Knowledge Map of your codebase within minutes, and find out who owns what!","pubDate":"Thu, 09 Jul 2020 08:31:28 GMT"},{"title":"Quickly improve code readability with Proximity Refactorings","link":"https:\/\/understandlegacycode.com\/blog\/quickly-improve-code-readability-with-proximity-refactoring\/","guid":"https:\/\/understandlegacycode.com\/blog\/quickly-improve-code-readability-with-proximity-refactoring\/","description":"Here's a technique that leverages how your brain works to make any code easier to work with.","pubDate":"Sun, 05 Jul 2020 23:08:27 GMT"},{"title":"The key points of Software Design X-Rays","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-software-design-x-rays\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-software-design-x-rays\/","description":"This book is a gold mine. Yet, it's not a famous one. Here's my summary of its salient points that can help you deal with large codebases.","pubDate":"Tue, 30 Jun 2020 20:53:52 GMT"},{"title":"7 techniques to regain control of your Legacy codebase","link":"https:\/\/understandlegacycode.com\/blog\/7-techniques-to-regain-control-of-legacy\/","guid":"https:\/\/understandlegacycode.com\/blog\/7-techniques-to-regain-control-of-legacy\/","description":"Working with Legacy Code is no fun\u2026 unless you know how to approach it and get your changes done, safely.","pubDate":"Tue, 23 Jun 2020 22:05:52 GMT"},{"title":"If you mock, are you even testing?","link":"https:\/\/understandlegacycode.com\/blog\/if-you-mock-are-you-even-testing\/","guid":"https:\/\/understandlegacycode.com\/blog\/if-you-mock-are-you-even-testing\/","description":"Is this the real code? Is this just fantasy? Let's discuss the problem with unit testing Legacy Code and an approach you can take.","pubDate":"Mon, 15 Jun 2020 21:48:27 GMT"},{"title":"Convince managers to address Tech Debt with Enclosure Diagrams","link":"https:\/\/understandlegacycode.com\/blog\/convince-management-to-address-tech-debt-with-enclosure-diagrams\/","guid":"https:\/\/understandlegacycode.com\/blog\/convince-management-to-address-tech-debt-with-enclosure-diagrams\/","description":"How to come up with a plan that will resonate with non-technical people, in 7 concrete steps.","pubDate":"Mon, 08 Jun 2020 22:31:28 GMT"},{"title":"Demine your codebase in 30min with Exploratory Refactoring","link":"https:\/\/understandlegacycode.com\/blog\/demine-codebase-with-exploratory-refactoring\/","guid":"https:\/\/understandlegacycode.com\/blog\/demine-codebase-with-exploratory-refactoring\/","description":"When you're stuck trying to understand some code, it pays off to spend some time with a different approach.","pubDate":"Mon, 01 Jun 2020 22:07:28 GMT"},{"title":"7 practices for a successful code handover","link":"https:\/\/understandlegacycode.com\/blog\/7-practices-successful-handover\/","guid":"https:\/\/understandlegacycode.com\/blog\/7-practices-successful-handover\/","description":"Code handovers are critical moments in the lifetime of a project. Make the most out of it with these advice.","pubDate":"Tue, 26 May 2020 20:50:12 GMT"},{"title":"Reveal the structure of long methods with an online Word Counter","link":"https:\/\/understandlegacycode.com\/blog\/reveal-long-methods-structure-with-online-word-counter\/","guid":"https:\/\/understandlegacycode.com\/blog\/reveal-long-methods-structure-with-online-word-counter\/","description":"You don't need fancy tools to start making a dent on a scary method. Simply take a step back.","pubDate":"Mon, 18 May 2020 22:47:33 GMT"},{"title":"A quick way to add tests when code has database or HTTP calls","link":"https:\/\/understandlegacycode.com\/blog\/quick-way-to-add-tests-when-code-does-side-effects\/","guid":"https:\/\/understandlegacycode.com\/blog\/quick-way-to-add-tests-when-code-does-side-effects\/","description":"You need to fix a bug, but you can't spend a week on it? Here's a technique to isolate problematic side-effects and write tests within minutes.","pubDate":"Sat, 09 May 2020 21:47:33 GMT"},{"title":"Bring Legacy Code under tests by handling global variables","link":"https:\/\/understandlegacycode.com\/blog\/best-way-to-handle-global-variables\/","guid":"https:\/\/understandlegacycode.com\/blog\/best-way-to-handle-global-variables\/","description":"What's the best way to deal with these annoying global variables? Make them explicit.","pubDate":"Mon, 04 May 2020 22:42:00 GMT"},{"title":"Earn future maintainers esteem by writing simple ADRs","link":"https:\/\/understandlegacycode.com\/blog\/earn-maintainers-esteem-with-adrs\/","guid":"https:\/\/understandlegacycode.com\/blog\/earn-maintainers-esteem-with-adrs\/","description":"With Legacy Code, there is never any good documentation. Hopefully, there's a simple way for you to stop that trend.","pubDate":"Tue, 28 Apr 2020 20:53:12 GMT"},{"title":"Is it fine to use \"AND\" in a function name?","link":"https:\/\/understandlegacycode.com\/blog\/improving-legacy-function-names\/","guid":"https:\/\/understandlegacycode.com\/blog\/improving-legacy-function-names\/","description":"Finding a better name for a function is hard, especially when people have contradictory opinions on what a good name looks like\u2026","pubDate":"Sun, 19 Apr 2020 21:18:27 GMT"},{"title":"5 talks on Legacy Code: The Legacy of SoCraTes, 1st edition","link":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-1st-edition\/","guid":"https:\/\/understandlegacycode.com\/blog\/legacy-of-socrates-1st-edition\/","description":"Tips and advice on dealing with Legacy Code from 5 great speakers at this remote conference I organized for the community.","pubDate":"Sun, 12 Apr 2020 12:15:57 GMT"},{"title":"Focus refactoring on what matters with Hotspots Analysis","link":"https:\/\/understandlegacycode.com\/blog\/focus-refactoring-with-hotspots-analysis\/","guid":"https:\/\/understandlegacycode.com\/blog\/focus-refactoring-with-hotspots-analysis\/","description":"Here's a way to prioritize refactoring when you have to deal with a large, unmaintainable codebase.","pubDate":"Mon, 06 Apr 2020 18:18:27 GMT"},{"title":"Don't make Clean Code harder to maintain, use the Rule of Three","link":"https:\/\/understandlegacycode.com\/blog\/refactoring-rule-of-three\/","guid":"https:\/\/understandlegacycode.com\/blog\/refactoring-rule-of-three\/","description":"If you worry that following clean code practices create more code to maintain, here's a way out.","pubDate":"Mon, 30 Mar 2020 21:47:33 GMT"},{"title":"Are functions that simply call another function a bad design choice?","link":"https:\/\/understandlegacycode.com\/blog\/are-wrapper-functions-bad-design\/","guid":"https:\/\/understandlegacycode.com\/blog\/are-wrapper-functions-bad-design\/","description":"Let's see how you end up with these while trying to refactor Legacy Code and what you can do about that.","pubDate":"Sun, 22 Mar 2020 01:47:28 GMT"},{"title":"What is wrong with boolean parameters?","link":"https:\/\/understandlegacycode.com\/blog\/what-is-wrong-with-boolean-parameters\/","guid":"https:\/\/understandlegacycode.com\/blog\/what-is-wrong-with-boolean-parameters\/","description":"And 4 ways to fix their usage in Legacy Code.","pubDate":"Mon, 16 Mar 2020 01:47:28 GMT"},{"title":"5 coding exercises to practice refactoring Legacy Code","link":"https:\/\/understandlegacycode.com\/blog\/5-coding-exercises-to-practice-refactoring-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/5-coding-exercises-to-practice-refactoring-legacy-code\/","description":"Feeling overwhelmed by your legacy codebase? These katas will help you learn how to tackle it.","pubDate":"Mon, 09 Mar 2020 01:12:33 GMT"},{"title":"Dive into an unfamiliar codebase from its edges","link":"https:\/\/understandlegacycode.com\/blog\/dive-into-an-unfamiliar-codebase-from-its-edges\/","guid":"https:\/\/understandlegacycode.com\/blog\/dive-into-an-unfamiliar-codebase-from-its-edges\/","description":"Do you feel paralyzed, wondering how to approach a legacy codebase? Try to start from the system edges.","pubDate":"Tue, 03 Mar 2020 02:47:33 GMT"},{"title":"The key points of Working Effectively with Legacy Code","link":"https:\/\/understandlegacycode.com\/blog\/key-points-of-working-effectively-with-legacy-code\/","guid":"https:\/\/understandlegacycode.com\/blog\/key-points-of-working-effectively-with-legacy-code\/","description":"This book is a reference. Here's my summary of its salient points so you understand why it's so recommended.","pubDate":"Fri, 21 Feb 2020 02:05:52 GMT"},{"title":"5 arguments to make managers care about technical debt","link":"https:\/\/understandlegacycode.com\/blog\/5-arguments-to-make-managers-care-about-technical-debt\/","guid":"https:\/\/understandlegacycode.com\/blog\/5-arguments-to-make-managers-care-about-technical-debt\/","description":"If you think that management wouldn't let you refactor Legacy Code, use these 5 arguments to convince them.","pubDate":"Tue, 18 Feb 2020 02:00:02 GMT"},{"title":"The Ship of Theseus to NOT rewrite a legacy system from scratch","link":"https:\/\/understandlegacycode.com\/blog\/ship-of-theseus-avoid-rewrite-legacy-system\/","guid":"https:\/\/understandlegacycode.com\/blog\/ship-of-theseus-avoid-rewrite-legacy-system\/","description":"When an application becomes impossible to maintain, a rewrite is very tempting. But it could make things worse.","pubDate":"Mon, 10 Feb 2020 21:06:13 GMT"},{"title":"Is it up to the newer developer to pay back others' technical debt?","link":"https:\/\/understandlegacycode.com\/blog\/is-it-to-the-newer-developer-to-pay-back-others-technical-debt\/","guid":"https:\/\/understandlegacycode.com\/blog\/is-it-to-the-newer-developer-to-pay-back-others-technical-debt\/","description":"And what you can do about it if you find yourself in such situation.","pubDate":"Mon, 03 Feb 2020 03:23:12 GMT"},{"title":"Use the Mikado Method to do safe changes in a complex codebase","link":"https:\/\/understandlegacycode.com\/blog\/a-process-to-do-safe-changes-in-a-complex-codebase\/","guid":"https:\/\/understandlegacycode.com\/blog\/a-process-to-do-safe-changes-in-a-complex-codebase\/","description":"When a codebase is large and complex, it's risky to big changes. Here's a structured way to approach the problem.","pubDate":"Tue, 28 Jan 2020 12:18:27 GMT"},{"title":"3 steps to add tests on existing code when you have short deadlines","link":"https:\/\/understandlegacycode.com\/blog\/3-steps-to-add-tests-on-existing-code-when-you-have-short-deadlines\/","guid":"https:\/\/understandlegacycode.com\/blog\/3-steps-to-add-tests-on-existing-code-when-you-have-short-deadlines\/","description":"Here's a recipe you can follow when you want to add tests on Legacy Code, but you don't have much time to do so.","pubDate":"Fri, 24 Jan 2020 02:15:57 GMT"},{"title":"What is Legacy Code? Is it code without tests?","link":"https:\/\/understandlegacycode.com\/blog\/what-is-legacy-code-is-it-code-without-tests\/","guid":"https:\/\/understandlegacycode.com\/blog\/what-is-legacy-code-is-it-code-without-tests\/","description":"Here's a useful definition of \"Legacy Code\" you can refer to.","pubDate":"Wed, 22 Jan 2020 01:47:28 GMT"}]}}