Understand Legacy CodeChange Messy Software Without Breaking Ithttps://understandlegacycode.com/en-usI built a visual tool for the Mikado Methodhttps://understandlegacycode.com/blog/visual-tool-mikado-method/https://understandlegacycode.com/blog/visual-tool-mikado-method/The Mikado Method helps you tackle big changes safely. But drawing graphs on paper doesn't scale. I couldn't find a satisfying tool… so I built one: Nikado.Wed, 18 Mar 2026 00:00:00 GMTThe Mikado Method helps you tackle big changes safely. But drawing graphs on paper doesn't scale. I couldn't find a satisfying tool… so I built one: Nikado.The Legacy Code Survival Guide: Add Features Without Fearhttps://understandlegacycode.com/blog/legacy-code-survival-guide-talk/https://understandlegacycode.com/blog/legacy-code-survival-guide-talk/Steven Diamante gave a great presentation on Legacy Code at the Seattle Crafter meetup. Let's dive into it!Tue, 07 Oct 2025 10:36:52 GMTSteven Diamante gave a great presentation on Legacy Code at the Seattle Crafter meetup. Let's dive into it!The key points of Refactoring at Scalehttps://understandlegacycode.com/blog/key-points-of-refactoring-at-scale/https://understandlegacycode.com/blog/key-points-of-refactoring-at-scale/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.Thu, 25 Apr 2024 00:00:00 GMTMaude 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.The key points of Refactoringhttps://understandlegacycode.com/blog/key-points-of-refactoring/https://understandlegacycode.com/blog/key-points-of-refactoring/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.Fri, 12 Jan 2024 00:00:00 GMTThis 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.The key points of Kill It with Firehttps://understandlegacycode.com/blog/key-points-of-kill-it-with-fire/https://understandlegacycode.com/blog/key-points-of-kill-it-with-fire/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…Tue, 19 Dec 2023 00:00:00 GMTLet'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…How to efficiently practice refactoring katashttps://understandlegacycode.com/blog/efficiently-practice-refactoring-katas/https://understandlegacycode.com/blog/efficiently-practice-refactoring-katas/How to best learn out of refactoring exercises, depending on your level of experience.Sun, 26 Nov 2023 06:16:00 GMTHow to best learn out of refactoring exercises, depending on your level of experience.It's like coding in the dark!https://understandlegacycode.com/blog/its-like-coding-in-the-dark/https://understandlegacycode.com/blog/its-like-coding-in-the-dark/A look into Catherine Hicks' white paper "It’s Like Coding in the Dark: The need for learning cultures within coding teams" (Catharsis Consulting).Tue, 17 Oct 2023 15:24:00 GMTA look into Catherine Hicks' white paper "It’s Like Coding in the Dark: The need for learning cultures within coding teams" (Catharsis Consulting).Find how to (re)organize code with githttps://understandlegacycode.com/blog/reorganize-code-with-git/https://understandlegacycode.com/blog/reorganize-code-with-git/Does your codebase feel like a tote bag of "shared" and "utils" folder? Git may help you find a better structure.Wed, 19 Apr 2023 21:24:00 GMTDoes your codebase feel like a tote bag of "shared" and "utils" folder? Git may help you find a better structure.Delete unused code (and how to retrieve it)https://understandlegacycode.com/blog/delete-unused-code/https://understandlegacycode.com/blog/delete-unused-code/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!Tue, 07 Mar 2023 20:00:00 GMTDead 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!Can AI help me refactor legacy code?https://understandlegacycode.com/blog/can-ai-refactor-legacy-code/https://understandlegacycode.com/blog/can-ai-refactor-legacy-code/Can assistants like ChatGPT refactor existing code without introducing bugs? Let's figure it out with an actual codebase.Wed, 15 Feb 2023 15:10:00 GMTCan assistants like ChatGPT refactor existing code without introducing bugs? Let's figure it out with an actual codebase.Can AI help me write tests on legacy code?https://understandlegacycode.com/blog/can-ai-write-tests-on-legacy-code/https://understandlegacycode.com/blog/can-ai-write-tests-on-legacy-code/People are using tools like ChatGPT to write tests on existing code… But how reliable is this? Let's find out!Wed, 08 Feb 2023 08:40:00 GMTPeople are using tools like ChatGPT to write tests on existing code… But how reliable is this? Let's find out!Fake it until you automate ithttps://understandlegacycode.com/blog/fake-it-until-you-automate-it/https://understandlegacycode.com/blog/fake-it-until-you-automate-it/A pragmatic way for you to start automating deployments of a Legacy system.Mon, 09 Jan 2023 00:00:00 GMTA pragmatic way for you to start automating deployments of a Legacy system.Comparing 2 approaches of refactoring untested codehttps://understandlegacycode.com/blog/comparing-two-approaches-refactoring-untested-code/https://understandlegacycode.com/blog/comparing-two-approaches-refactoring-untested-code/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!Thu, 17 Nov 2022 09:00:00 GMTYou 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!Another way of refactoring untested codehttps://understandlegacycode.com/blog/another-way-of-refactoring-untested-code/https://understandlegacycode.com/blog/another-way-of-refactoring-untested-code/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.Tue, 11 Oct 2022 15:00:00 GMTYou 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.One way of refactoring untested codehttps://understandlegacycode.com/blog/one-way-of-refactoring-untested-code/https://understandlegacycode.com/blog/one-way-of-refactoring-untested-code/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.Tue, 09 Aug 2022 15:00:00 GMTYou 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.7 advice to help you inherit a legacy codebasehttps://understandlegacycode.com/blog/7-advice-inherit-legacy-codebase/https://understandlegacycode.com/blog/7-advice-inherit-legacy-codebase/My recap of the most common and useful advice one can give to tackle Legacy codebases.Sun, 27 Feb 2022 09:35:00 GMTMy recap of the most common and useful advice one can give to tackle Legacy codebases.Improve your refactoring and testing skills with the Expense Report katahttps://understandlegacycode.com/blog/improve-refactoring-testing-expense-report-kata/https://understandlegacycode.com/blog/improve-refactoring-testing-expense-report-kata/Watch Gregor Riegler refactor code with this coding exercise. Learn useful techniques from it.Mon, 13 Dec 2021 00:00:00 GMTWatch Gregor Riegler refactor code with this coding exercise. Learn useful techniques from it.3 must-watch talks on Legacy Codehttps://understandlegacycode.com/blog/3-must-watch-talks-on-legacy-code/https://understandlegacycode.com/blog/3-must-watch-talks-on-legacy-code/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!Sun, 12 Dec 2021 12:48:00 GMTI 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!The key points of The Programmer's Brainhttps://understandlegacycode.com/blog/key-points-of-programmer-brain/https://understandlegacycode.com/blog/key-points-of-programmer-brain/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.Sun, 12 Dec 2021 00:00:00 GMTThis 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.Testability, Empathy, and Safe Refactoringshttps://understandlegacycode.com/blog/legacy-of-socrates-8th-edition/https://understandlegacycode.com/blog/legacy-of-socrates-8th-edition/4 great talks on Legacy Code that I had the pleasure to host. This edition particularly focuses on testing and refactoring.Sat, 27 Nov 2021 07:00:00 GMT4 great talks on Legacy Code that I had the pleasure to host. This edition particularly focuses on testing and refactoring.Can AI-based test generation help you test Legacy Code?https://understandlegacycode.com/blog/ai-test-generation-for-legacy-code/https://understandlegacycode.com/blog/ai-test-generation-for-legacy-code/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…Tue, 09 Nov 2021 08:40:00 GMTI experimented with tools that can generate tests for you, leveraging AI. Here is what I learned, along with some thoughts about testing unfamiliar code…Refactoring vs. Defactoringhttps://understandlegacycode.com/blog/refactoring-and-defactoring/https://understandlegacycode.com/blog/refactoring-and-defactoring/Some thoughts about refactoring and the opposite operation: defactoring.Tue, 26 Oct 2021 16:47:00 GMTSome thoughts about refactoring and the opposite operation: defactoring.What unit test tool should I bring to my JavaScript team?https://understandlegacycode.com/blog/test-tool-javascript-team/https://understandlegacycode.com/blog/test-tool-javascript-team/A reflection on coaching, facts, and pragmatism. Which testing framework would I recommend to devs who are not familiar with testing?Tue, 05 Oct 2021 20:35:00 GMTA reflection on coaching, facts, and pragmatism. Which testing framework would I recommend to devs who are not familiar with testing?DevOps, Living Documentation, and Hexagonal Architecturehttps://understandlegacycode.com/blog/legacy-of-socrates-7th-edition/https://understandlegacycode.com/blog/legacy-of-socrates-7th-edition/5 great talks on Legacy Code that I had the pleasure to host. This edition raises new topic such as documentation and legacy pipelines.Sun, 26 Sep 2021 20:15:00 GMT5 great talks on Legacy Code that I had the pleasure to host. This edition raises new topic such as documentation and legacy pipelines.4 tips to refactor a complex legacy app without automation toolshttps://understandlegacycode.com/blog/4-tips-refactor-without-tools/https://understandlegacycode.com/blog/4-tips-refactor-without-tools/How do you refactor a complex legacy application when you can't rely on automation tools?Mon, 30 Aug 2021 22:00:00 GMTHow do you refactor a complex legacy application when you can't rely on automation tools?Design Patterns, Empathy, and Reading Complex Codehttps://understandlegacycode.com/blog/legacy-of-socrates-6th-edition/https://understandlegacycode.com/blog/legacy-of-socrates-6th-edition/4 great talks on Legacy Code that I had the pleasure to host. A focus on empathy and getting into complex codebases.Tue, 24 Aug 2021 20:15:00 GMT4 great talks on Legacy Code that I had the pleasure to host. A focus on empathy and getting into complex codebases.Should we stick to old patterns or sacrifice consistency?https://understandlegacycode.com/blog/consistency-or-progress/https://understandlegacycode.com/blog/consistency-or-progress/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.Sun, 22 Aug 2021 09:15:00 GMTConsistency is great! But over time, it's hard to keep a codebase consistent. Here's my approach to adopt changes without creating a mess.What's the difference between Regression Tests, Characterization Tests, and Approval Tests?https://understandlegacycode.com/blog/characterization-tests-or-approval-tests/https://understandlegacycode.com/blog/characterization-tests-or-approval-tests/You may have heard one or the others. Now you're confused: is there a difference? Nope! Let me explain…Wed, 11 Aug 2021 09:15:00 GMTYou may have heard one or the others. Now you're confused: is there a difference? Nope! Let me explain…Keeping dependencies up-to-datehttps://understandlegacycode.com/blog/keeping-dependencies-up-to-date/https://understandlegacycode.com/blog/keeping-dependencies-up-to-date/My recipe for recovering from outdated dependencies and keeping healthy habitsTue, 29 Jun 2021 21:15:00 GMTMy recipe for recovering from outdated dependencies and keeping healthy habitsTechnical Debt, Rewrites, and Refactoringhttps://understandlegacycode.com/blog/legacy-of-socrates-5th-edition/https://understandlegacycode.com/blog/legacy-of-socrates-5th-edition/5 great talks on Legacy Code that I had the pleasure to host. Learn how to prioritize Tech Debt and rewrite systems incrementally.Sat, 08 May 2021 10:15:00 GMT5 great talks on Legacy Code that I had the pleasure to host. Learn how to prioritize Tech Debt and rewrite systems incrementally.Is it OK to change code for the sake of testing?https://understandlegacycode.com/blog/is-it-ok-to-change-code-for-testing-sake/https://understandlegacycode.com/blog/is-it-ok-to-change-code-for-testing-sake/It seems necessary to start adding tests on this code… but what if it makes things worse?Tue, 04 May 2021 20:15:52 GMTIt seems necessary to start adding tests on this code… but what if it makes things worse?How to tell your client how bad their codebase is?https://understandlegacycode.com/blog/tell-client-how-bad-codebase-is/https://understandlegacycode.com/blog/tell-client-how-bad-codebase-is/When work looks trivial from the outside, but you know it will actually take much longer to do.Tue, 16 Feb 2021 20:00:27 GMTWhen work looks trivial from the outside, but you know it will actually take much longer to do.Safely restructure your codebase with Dependency Graphshttps://understandlegacycode.com/blog/safely-restructure-codebase-with-dependency-graphs/https://understandlegacycode.com/blog/safely-restructure-codebase-with-dependency-graphs/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.Tue, 19 Jan 2021 20:08:00 GMTEven 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.The key points of Re-Engineering Legacy Softwarehttps://understandlegacycode.com/blog/key-points-reengineering-legacy-software/https://understandlegacycode.com/blog/key-points-reengineering-legacy-software/Here's an interesting book on approaching Legacy Software. Here's my summary of its salient points.Tue, 12 Jan 2021 20:10:52 GMTHere's an interesting book on approaching Legacy Software. Here's my summary of its salient points.Does refactoring Legacy Code pay off in your career?https://understandlegacycode.com/blog/does-working-on-legacy-code-pays-off/https://understandlegacycode.com/blog/does-working-on-legacy-code-pays-off/Working on Legacy systems can be extremely beneficial to your career… If you can explain why it matters to the business!Tue, 05 Jan 2021 20:21:57 GMTWorking on Legacy systems can be extremely beneficial to your career… If you can explain why it matters to the business!Refactoring, Unit Tests, and Symmathesyhttps://understandlegacycode.com/blog/legacy-of-socrates-4th-edition/https://understandlegacycode.com/blog/legacy-of-socrates-4th-edition/5 great talks on Legacy Code that I had the pleasure to host. Learn how to progressively migrate existing codebase towards a better state.Mon, 14 Dec 2020 20:05:57 GMT5 great talks on Legacy Code that I had the pleasure to host. Learn how to progressively migrate existing codebase towards a better state.The key points of Beyond Legacy Codehttps://understandlegacycode.com/blog/key-points-of-beyond-legacy-code/https://understandlegacycode.com/blog/key-points-of-beyond-legacy-code/This book is filled with practical strategies to apply on Legacy systems. Here's my summary of its salient points.Tue, 01 Dec 2020 20:23:52 GMTThis book is filled with practical strategies to apply on Legacy systems. Here's my summary of its salient points.When is it the best time to refactor?https://understandlegacycode.com/blog/when-is-the-best-time-to-refactor/https://understandlegacycode.com/blog/when-is-the-best-time-to-refactor/Should you plan time for refactoring during Sprints? Refactor before you release new features? After? Here's my suggestion…Tue, 10 Nov 2020 20:07:28 GMTShould you plan time for refactoring during Sprints? Refactor before you release new features? After? Here's my suggestion…Work faster and safer on untested code with Overcommittinghttps://understandlegacycode.com/blog/work-faster-safer-untested-code-overcommitting/https://understandlegacycode.com/blog/work-faster-safer-untested-code-overcommitting/A technique you can resort to when you need to make risky changes.Tue, 03 Nov 2020 05:47:00 GMTA technique you can resort to when you need to make risky changes.The best way to start testing untested codehttps://understandlegacycode.com/blog/best-way-to-start-testing-untested-code/https://understandlegacycode.com/blog/best-way-to-start-testing-untested-code/Should you write E2E tests to cover more cases faster? Or is there a better approach?Fri, 23 Oct 2020 06:14:00 GMTShould you write E2E tests to cover more cases faster? Or is there a better approach?What you can do when code is really hard to reviewhttps://understandlegacycode.com/blog/what-you-can-do-when-code-is-hard-to-review/https://understandlegacycode.com/blog/what-you-can-do-when-code-is-hard-to-review/5 advice you can try when you feel paralyzed with a change that's too risky to merge, but too long to verify.Tue, 20 Oct 2020 06:17:00 GMT5 advice you can try when you feel paralyzed with a change that's too risky to merge, but too long to verify.The key points of The Legacy Code Programmer's Toolboxhttps://understandlegacycode.com/blog/key-points-of-legacy-code-programmer-toolbox/https://understandlegacycode.com/blog/key-points-of-legacy-code-programmer-toolbox/This book is full of tips to get into an unfamiliar codebase. Here's my summary of its salient points.Tue, 29 Sep 2020 08:23:52 GMTThis book is full of tips to get into an unfamiliar codebase. Here's my summary of its salient points.Approval Tests, TCR, and Mendershttps://understandlegacycode.com/blog/legacy-of-socrates-3rd-edition/https://understandlegacycode.com/blog/legacy-of-socrates-3rd-edition/5 great talks on Legacy Code that I had the pleasure to host. Learn how to test existing code and approach unfamiliar codebases.Mon, 21 Sep 2020 12:15:57 GMT5 great talks on Legacy Code that I had the pleasure to host. Learn how to test existing code and approach unfamiliar codebases.When should you stop refactoring Legacy Code?https://understandlegacycode.com/blog/when-should-you-stop-refactoring-legacy-code/https://understandlegacycode.com/blog/when-should-you-stop-refactoring-legacy-code/A personal story to illustrate how good habits can save your day when things turn bad.Tue, 15 Sep 2020 21:10:28 GMTA personal story to illustrate how good habits can save your day when things turn bad.4 developers working their way through Legacy Codehttps://understandlegacycode.com/blog/4-videos-seasoned-developers-working-legacy-code/https://understandlegacycode.com/blog/4-videos-seasoned-developers-working-legacy-code/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!Tue, 01 Sep 2020 21:13:12 GMTPractice 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!Where should you put the documentation?https://understandlegacycode.com/blog/where-to-put-documentation/https://understandlegacycode.com/blog/where-to-put-documentation/What you should be looking for to build a great and useful documentation.Mon, 17 Aug 2020 21:19:28 GMTWhat you should be looking for to build a great and useful documentation.Start cleaning your Legacy codebase with The Daily Refactoring Hourhttps://understandlegacycode.com/blog/start-cleaning-legacy-with-daily-refactoring-hour/https://understandlegacycode.com/blog/start-cleaning-legacy-with-daily-refactoring-hour/Building the habit of small refactorings as you go will make a difference in the long run.Mon, 20 Jul 2020 10:10:28 GMTBuilding the habit of small refactorings as you go will make a difference in the long run.Identify who to ask for help with Knowledge Mapshttps://understandlegacycode.com/blog/identify-who-to-ask-with-knowledge-maps/https://understandlegacycode.com/blog/identify-who-to-ask-with-knowledge-maps/Learn to draw a Knowledge Map of your codebase within minutes, and find out who owns what!Thu, 09 Jul 2020 08:31:28 GMTLearn to draw a Knowledge Map of your codebase within minutes, and find out who owns what!Quickly improve code readability with Proximity Refactoringshttps://understandlegacycode.com/blog/quickly-improve-code-readability-with-proximity-refactoring/https://understandlegacycode.com/blog/quickly-improve-code-readability-with-proximity-refactoring/Here's a technique that leverages how your brain works to make any code easier to work with.Sun, 05 Jul 2020 23:08:27 GMTHere's a technique that leverages how your brain works to make any code easier to work with.The key points of Software Design X-Rayshttps://understandlegacycode.com/blog/key-points-of-software-design-x-rays/https://understandlegacycode.com/blog/key-points-of-software-design-x-rays/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.Tue, 30 Jun 2020 20:53:52 GMTThis 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.7 techniques to regain control of your Legacy codebasehttps://understandlegacycode.com/blog/7-techniques-to-regain-control-of-legacy/https://understandlegacycode.com/blog/7-techniques-to-regain-control-of-legacy/Working with Legacy Code is no fun… unless you know how to approach it and get your changes done, safely.Tue, 23 Jun 2020 22:05:52 GMTWorking with Legacy Code is no fun… unless you know how to approach it and get your changes done, safely.If you mock, are you even testing?https://understandlegacycode.com/blog/if-you-mock-are-you-even-testing/https://understandlegacycode.com/blog/if-you-mock-are-you-even-testing/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.Mon, 15 Jun 2020 21:48:27 GMTIs this the real code? Is this just fantasy? Let's discuss the problem with unit testing Legacy Code and an approach you can take.Convince managers to address Tech Debt with Enclosure Diagramshttps://understandlegacycode.com/blog/convince-management-to-address-tech-debt-with-enclosure-diagrams/https://understandlegacycode.com/blog/convince-management-to-address-tech-debt-with-enclosure-diagrams/How to come up with a plan that will resonate with non-technical people, in 7 concrete steps.Mon, 08 Jun 2020 22:31:28 GMTHow to come up with a plan that will resonate with non-technical people, in 7 concrete steps.Demine your codebase in 30min with Exploratory Refactoringhttps://understandlegacycode.com/blog/demine-codebase-with-exploratory-refactoring/https://understandlegacycode.com/blog/demine-codebase-with-exploratory-refactoring/When you're stuck trying to understand some code, it pays off to spend some time with a different approach.Mon, 01 Jun 2020 22:07:28 GMTWhen you're stuck trying to understand some code, it pays off to spend some time with a different approach.7 practices for a successful code handoverhttps://understandlegacycode.com/blog/7-practices-successful-handover/https://understandlegacycode.com/blog/7-practices-successful-handover/Code handovers are critical moments in the lifetime of a project. Make the most out of it with these advice.Tue, 26 May 2020 20:50:12 GMTCode handovers are critical moments in the lifetime of a project. Make the most out of it with these advice.Reveal the structure of long methods with an online Word Counterhttps://understandlegacycode.com/blog/reveal-long-methods-structure-with-online-word-counter/https://understandlegacycode.com/blog/reveal-long-methods-structure-with-online-word-counter/You don't need fancy tools to start making a dent on a scary method. Simply take a step back.Mon, 18 May 2020 22:47:33 GMTYou don't need fancy tools to start making a dent on a scary method. Simply take a step back.A quick way to add tests when code has database or HTTP callshttps://understandlegacycode.com/blog/quick-way-to-add-tests-when-code-does-side-effects/https://understandlegacycode.com/blog/quick-way-to-add-tests-when-code-does-side-effects/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.Sat, 09 May 2020 21:47:33 GMTYou 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.Bring Legacy Code under tests by handling global variableshttps://understandlegacycode.com/blog/best-way-to-handle-global-variables/https://understandlegacycode.com/blog/best-way-to-handle-global-variables/What's the best way to deal with these annoying global variables? Make them explicit.Mon, 04 May 2020 22:42:00 GMTWhat's the best way to deal with these annoying global variables? Make them explicit.Earn future maintainers esteem by writing simple ADRshttps://understandlegacycode.com/blog/earn-maintainers-esteem-with-adrs/https://understandlegacycode.com/blog/earn-maintainers-esteem-with-adrs/With Legacy Code, there is never any good documentation. Hopefully, there's a simple way for you to stop that trend.Tue, 28 Apr 2020 20:53:12 GMTWith Legacy Code, there is never any good documentation. Hopefully, there's a simple way for you to stop that trend.Is it fine to use "AND" in a function name?https://understandlegacycode.com/blog/improving-legacy-function-names/https://understandlegacycode.com/blog/improving-legacy-function-names/Finding a better name for a function is hard, especially when people have contradictory opinions on what a good name looks like…Sun, 19 Apr 2020 21:18:27 GMTFinding a better name for a function is hard, especially when people have contradictory opinions on what a good name looks like…5 talks on Legacy Code: The Legacy of SoCraTes, 1st editionhttps://understandlegacycode.com/blog/legacy-of-socrates-1st-edition/https://understandlegacycode.com/blog/legacy-of-socrates-1st-edition/Tips and advice on dealing with Legacy Code from 5 great speakers at this remote conference I organized for the community.Sun, 12 Apr 2020 12:15:57 GMTTips and advice on dealing with Legacy Code from 5 great speakers at this remote conference I organized for the community.Focus refactoring on what matters with Hotspots Analysishttps://understandlegacycode.com/blog/focus-refactoring-with-hotspots-analysis/https://understandlegacycode.com/blog/focus-refactoring-with-hotspots-analysis/Here's a way to prioritize refactoring when you have to deal with a large, unmaintainable codebase.Mon, 06 Apr 2020 18:18:27 GMTHere's a way to prioritize refactoring when you have to deal with a large, unmaintainable codebase.Don't make Clean Code harder to maintain, use the Rule of Threehttps://understandlegacycode.com/blog/refactoring-rule-of-three/https://understandlegacycode.com/blog/refactoring-rule-of-three/If you worry that following clean code practices create more code to maintain, here's a way out.Mon, 30 Mar 2020 21:47:33 GMTIf you worry that following clean code practices create more code to maintain, here's a way out.Are functions that simply call another function a bad design choice?https://understandlegacycode.com/blog/are-wrapper-functions-bad-design/https://understandlegacycode.com/blog/are-wrapper-functions-bad-design/Let's see how you end up with these while trying to refactor Legacy Code and what you can do about that.Sun, 22 Mar 2020 01:47:28 GMTLet's see how you end up with these while trying to refactor Legacy Code and what you can do about that.What is wrong with boolean parameters?https://understandlegacycode.com/blog/what-is-wrong-with-boolean-parameters/https://understandlegacycode.com/blog/what-is-wrong-with-boolean-parameters/And 4 ways to fix their usage in Legacy Code.Mon, 16 Mar 2020 01:47:28 GMTAnd 4 ways to fix their usage in Legacy Code.5 coding exercises to practice refactoring Legacy Codehttps://understandlegacycode.com/blog/5-coding-exercises-to-practice-refactoring-legacy-code/https://understandlegacycode.com/blog/5-coding-exercises-to-practice-refactoring-legacy-code/Feeling overwhelmed by your legacy codebase? These katas will help you learn how to tackle it.Mon, 09 Mar 2020 01:12:33 GMTFeeling overwhelmed by your legacy codebase? These katas will help you learn how to tackle it.Dive into an unfamiliar codebase from its edgeshttps://understandlegacycode.com/blog/dive-into-an-unfamiliar-codebase-from-its-edges/https://understandlegacycode.com/blog/dive-into-an-unfamiliar-codebase-from-its-edges/Do you feel paralyzed, wondering how to approach a legacy codebase? Try to start from the system edges.Tue, 03 Mar 2020 02:47:33 GMTDo you feel paralyzed, wondering how to approach a legacy codebase? Try to start from the system edges.The key points of Working Effectively with Legacy Codehttps://understandlegacycode.com/blog/key-points-of-working-effectively-with-legacy-code/https://understandlegacycode.com/blog/key-points-of-working-effectively-with-legacy-code/This book is a reference. Here's my summary of its salient points so you understand why it's so recommended.Fri, 21 Feb 2020 02:05:52 GMTThis book is a reference. Here's my summary of its salient points so you understand why it's so recommended.5 arguments to make managers care about technical debthttps://understandlegacycode.com/blog/5-arguments-to-make-managers-care-about-technical-debt/https://understandlegacycode.com/blog/5-arguments-to-make-managers-care-about-technical-debt/If you think that management wouldn't let you refactor Legacy Code, use these 5 arguments to convince them.Tue, 18 Feb 2020 02:00:02 GMTIf you think that management wouldn't let you refactor Legacy Code, use these 5 arguments to convince them.The Ship of Theseus to NOT rewrite a legacy system from scratchhttps://understandlegacycode.com/blog/ship-of-theseus-avoid-rewrite-legacy-system/https://understandlegacycode.com/blog/ship-of-theseus-avoid-rewrite-legacy-system/When an application becomes impossible to maintain, a rewrite is very tempting. But it could make things worse.Mon, 10 Feb 2020 21:06:13 GMTWhen an application becomes impossible to maintain, a rewrite is very tempting. But it could make things worse.Is it up to the newer developer to pay back others' technical debt?https://understandlegacycode.com/blog/is-it-to-the-newer-developer-to-pay-back-others-technical-debt/https://understandlegacycode.com/blog/is-it-to-the-newer-developer-to-pay-back-others-technical-debt/And what you can do about it if you find yourself in such situation.Mon, 03 Feb 2020 03:23:12 GMTAnd what you can do about it if you find yourself in such situation.Use the Mikado Method to do safe changes in a complex codebasehttps://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/When a codebase is large and complex, it's risky to big changes. Here's a structured way to approach the problem.Tue, 28 Jan 2020 12:18:27 GMTWhen a codebase is large and complex, it's risky to big changes. Here's a structured way to approach the problem.3 steps to add tests on existing code when you have short deadlineshttps://understandlegacycode.com/blog/3-steps-to-add-tests-on-existing-code-when-you-have-short-deadlines/https://understandlegacycode.com/blog/3-steps-to-add-tests-on-existing-code-when-you-have-short-deadlines/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.Fri, 24 Jan 2020 02:15:57 GMTHere'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.What is Legacy Code? Is it code without tests?https://understandlegacycode.com/blog/what-is-legacy-code-is-it-code-without-tests/https://understandlegacycode.com/blog/what-is-legacy-code-is-it-code-without-tests/Here's a useful definition of "Legacy Code" you can refer to.Wed, 22 Jan 2020 01:47:28 GMTHere's a useful definition of "Legacy Code" you can refer to.