41554 blogs · [ { "id": "01a08c5a-84ea-7031-8f64-ff3632819a72", "title": "I built a visual tool for the Mikado Method", "url": "https://understandlegacycode.com/blog/visual-tool-mikado-method/", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a08c5a-84ea-7031-8f64-ff36329176cd", "title": "The Legacy Code Survival Guide: Add Features Without Fear", "url": "https://understandlegacycode.com/blog/legacy-code-survival-guide-talk/", "published_at": "2025-10-07T10:36:52+00:00" }, { "id": "01a08c5a-84ea-7031-8f64-ff36335b7248", "title": "The key points of Refactoring at Scale", "url": "https://understandlegacycode.com/blog/key-points-of-refactoring-at-scale/", "published_at": "2024-04-25T00:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622170028f", "title": "The key points of Refactoring", "url": "https://understandlegacycode.com/blog/key-points-of-refactoring/", "published_at": "2024-01-12T00:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6222076ec8", "title": "The key points of Kill It with Fire", "url": "https://understandlegacycode.com/blog/key-points-of-kill-it-with-fire/", "published_at": "2023-12-19T00:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6222b19d3c", "title": "How to efficiently practice refactoring katas", "url": "https://understandlegacycode.com/blog/efficiently-practice-refactoring-katas/", "published_at": "2023-11-26T06:16:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62232bf13a", "title": "It's like coding in the dark!", "url": "https://understandlegacycode.com/blog/its-like-coding-in-the-dark/", "published_at": "2023-10-17T15:24:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62234b1005", "title": "Find how to (re)organize code with git", "url": "https://understandlegacycode.com/blog/reorganize-code-with-git/", "published_at": "2023-04-19T21:24:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6223b4d42a", "title": "Delete unused code (and how to retrieve it)", "url": "https://understandlegacycode.com/blog/delete-unused-code/", "published_at": "2023-03-07T20:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62247a3e51", "title": "Can AI help me refactor legacy code?", "url": "https://understandlegacycode.com/blog/can-ai-refactor-legacy-code/", "published_at": "2023-02-15T15:10:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62253ce88c", "title": "Can AI help me write tests on legacy code?", "url": "https://understandlegacycode.com/blog/can-ai-write-tests-on-legacy-code/", "published_at": "2023-02-08T08:40:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6225a4344a", "title": "Fake it until you automate it", "url": "https://understandlegacycode.com/blog/fake-it-until-you-automate-it/", "published_at": "2023-01-09T00:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6225d72e2d", "title": "Comparing 2 approaches of refactoring untested code", "url": "https://understandlegacycode.com/blog/comparing-two-approaches-refactoring-untested-code/", "published_at": "2022-11-17T09:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6226880c47", "title": "Another way of refactoring untested code", "url": "https://understandlegacycode.com/blog/another-way-of-refactoring-untested-code/", "published_at": "2022-10-11T15:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6226c1b961", "title": "One way of refactoring untested code", "url": "https://understandlegacycode.com/blog/one-way-of-refactoring-untested-code/", "published_at": "2022-08-09T15:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622780fba2", "title": "7 advice to help you inherit a legacy codebase", "url": "https://understandlegacycode.com/blog/7-advice-inherit-legacy-codebase/", "published_at": "2022-02-27T09:35:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62280dd015", "title": "Improve your refactoring and testing skills with the Expense Report kata", "url": "https://understandlegacycode.com/blog/improve-refactoring-testing-expense-report-kata/", "published_at": "2021-12-13T00:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62283a2e59", "title": "3 must-watch talks on Legacy Code", "url": "https://understandlegacycode.com/blog/3-must-watch-talks-on-legacy-code/", "published_at": "2021-12-12T12:48:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6228f8e268", "title": "The key points of The Programmer's Brain", "url": "https://understandlegacycode.com/blog/key-points-of-programmer-brain/", "published_at": "2021-12-12T00:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62295494e4", "title": "Testability, Empathy, and Safe Refactorings", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-8th-edition/", "published_at": "2021-11-27T07:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6229cb33be", "title": "Can AI-based test generation help you test Legacy Code?", "url": "https://understandlegacycode.com/blog/ai-test-generation-for-legacy-code/", "published_at": "2021-11-09T08:40:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622a77f099", "title": "Refactoring vs. Defactoring", "url": "https://understandlegacycode.com/blog/refactoring-and-defactoring/", "published_at": "2021-10-26T16:47:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622b1ce088", "title": "What unit test tool should I bring to my JavaScript team?", "url": "https://understandlegacycode.com/blog/test-tool-javascript-team/", "published_at": "2021-10-05T20:35:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622bf8b9f4", "title": "DevOps, Living Documentation, and Hexagonal Architecture", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-7th-edition/", "published_at": "2021-09-26T20:15:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622c37be8d", "title": "4 tips to refactor a complex legacy app without automation tools", "url": "https://understandlegacycode.com/blog/4-tips-refactor-without-tools/", "published_at": "2021-08-30T22:00:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622cf619de", "title": "Design Patterns, Empathy, and Reading Complex Code", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-6th-edition/", "published_at": "2021-08-24T20:15:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622de61334", "title": "Should we stick to old patterns or sacrifice consistency?", "url": "https://understandlegacycode.com/blog/consistency-or-progress/", "published_at": "2021-08-22T09:15:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622e082496", "title": "What's the difference between Regression Tests, Characterization Tests, and Approval Tests?", "url": "https://understandlegacycode.com/blog/characterization-tests-or-approval-tests/", "published_at": "2021-08-11T09:15:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622e47d302", "title": "Keeping dependencies up-to-date", "url": "https://understandlegacycode.com/blog/keeping-dependencies-up-to-date/", "published_at": "2021-06-29T21:15:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622e81599a", "title": "Technical Debt, Rewrites, and Refactoring", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-5th-edition/", "published_at": "2021-05-08T10:15:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622f4b79c5", "title": "Is it OK to change code for the sake of testing?", "url": "https://understandlegacycode.com/blog/is-it-ok-to-change-code-for-testing-sake/", "published_at": "2021-05-04T20:15:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622f6e1f4b", "title": "How to tell your client how bad their codebase is?", "url": "https://understandlegacycode.com/blog/tell-client-how-bad-codebase-is/", "published_at": "2021-02-16T20:00:27+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf622f91ecfd", "title": "Safely restructure your codebase with Dependency Graphs", "url": "https://understandlegacycode.com/blog/safely-restructure-codebase-with-dependency-graphs/", "published_at": "2021-01-19T20:08:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623052e220", "title": "The key points of Re-Engineering Legacy Software", "url": "https://understandlegacycode.com/blog/key-points-reengineering-legacy-software/", "published_at": "2021-01-12T20:10:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6230ea864a", "title": "Does refactoring Legacy Code pay off in your career?", "url": "https://understandlegacycode.com/blog/does-working-on-legacy-code-pays-off/", "published_at": "2021-01-05T20:21:57+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623159347a", "title": "Refactoring, Unit Tests, and Symmathesy", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-4th-edition/", "published_at": "2020-12-14T20:05:57+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623210f55e", "title": "The key points of Beyond Legacy Code", "url": "https://understandlegacycode.com/blog/key-points-of-beyond-legacy-code/", "published_at": "2020-12-01T20:23:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6232b89d09", "title": "When is it the best time to refactor?", "url": "https://understandlegacycode.com/blog/when-is-the-best-time-to-refactor/", "published_at": "2020-11-10T20:07:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6233836502", "title": "Work faster and safer on untested code with Overcommitting", "url": "https://understandlegacycode.com/blog/work-faster-safer-untested-code-overcommitting/", "published_at": "2020-11-03T05:47:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62341cb757", "title": "The best way to start testing untested code", "url": "https://understandlegacycode.com/blog/best-way-to-start-testing-untested-code/", "published_at": "2020-10-23T06:14:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6234f10eda", "title": "What you can do when code is really hard to review", "url": "https://understandlegacycode.com/blog/what-you-can-do-when-code-is-hard-to-review/", "published_at": "2020-10-20T06:17:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62351efb0b", "title": "The key points of The Legacy Code Programmer's Toolbox", "url": "https://understandlegacycode.com/blog/key-points-of-legacy-code-programmer-toolbox/", "published_at": "2020-09-29T08:23:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6235b46060", "title": "Approval Tests, TCR, and Menders", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-3rd-edition/", "published_at": "2020-09-21T12:15:57+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6236565fb9", "title": "When should you stop refactoring Legacy Code?", "url": "https://understandlegacycode.com/blog/when-should-you-stop-refactoring-legacy-code/", "published_at": "2020-09-15T21:10:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6236fc697b", "title": "4 developers working their way through Legacy Code", "url": "https://understandlegacycode.com/blog/4-videos-seasoned-developers-working-legacy-code/", "published_at": "2020-09-01T21:13:12+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6237634b5d", "title": "Where should you put the documentation?", "url": "https://understandlegacycode.com/blog/where-to-put-documentation/", "published_at": "2020-08-17T21:19:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623809a5cd", "title": "Start cleaning your Legacy codebase with The Daily Refactoring Hour", "url": "https://understandlegacycode.com/blog/start-cleaning-legacy-with-daily-refactoring-hour/", "published_at": "2020-07-20T10:10:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6238c5005a", "title": "Identify who to ask for help with Knowledge Maps", "url": "https://understandlegacycode.com/blog/identify-who-to-ask-with-knowledge-maps/", "published_at": "2020-07-09T08:31:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6239bbe95a", "title": "Quickly improve code readability with Proximity Refactorings", "url": "https://understandlegacycode.com/blog/quickly-improve-code-readability-with-proximity-refactoring/", "published_at": "2020-07-05T23:08:27+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623a0ea0d0", "title": "The key points of Software Design X-Rays", "url": "https://understandlegacycode.com/blog/key-points-of-software-design-x-rays/", "published_at": "2020-06-30T20:53:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623a7753b2", "title": "7 techniques to regain control of your Legacy codebase", "url": "https://understandlegacycode.com/blog/7-techniques-to-regain-control-of-legacy/", "published_at": "2020-06-23T22:05:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623b6157a9", "title": "If you mock, are you even testing?", "url": "https://understandlegacycode.com/blog/if-you-mock-are-you-even-testing/", "published_at": "2020-06-15T21:48:27+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623be7cb8f", "title": "Convince managers to address Tech Debt with Enclosure Diagrams", "url": "https://understandlegacycode.com/blog/convince-management-to-address-tech-debt-with-enclosure-diagrams/", "published_at": "2020-06-08T22:31:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623cac3c56", "title": "Demine your codebase in 30min with Exploratory Refactoring", "url": "https://understandlegacycode.com/blog/demine-codebase-with-exploratory-refactoring/", "published_at": "2020-06-01T22:07:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623d79add1", "title": "7 practices for a successful code handover", "url": "https://understandlegacycode.com/blog/7-practices-successful-handover/", "published_at": "2020-05-26T20:50:12+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623dc0d5d0", "title": "Reveal the structure of long methods with an online Word Counter", "url": "https://understandlegacycode.com/blog/reveal-long-methods-structure-with-online-word-counter/", "published_at": "2020-05-18T22:47:33+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623eb3fd2c", "title": "A quick way to add tests when code has database or HTTP calls", "url": "https://understandlegacycode.com/blog/quick-way-to-add-tests-when-code-does-side-effects/", "published_at": "2020-05-09T21:47:33+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623ef8869a", "title": "Bring Legacy Code under tests by handling global variables", "url": "https://understandlegacycode.com/blog/best-way-to-handle-global-variables/", "published_at": "2020-05-04T22:42:00+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf623f66e44e", "title": "Earn future maintainers esteem by writing simple ADRs", "url": "https://understandlegacycode.com/blog/earn-maintainers-esteem-with-adrs/", "published_at": "2020-04-28T20:53:12+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf624057af12", "title": "Is it fine to use \"AND\" in a function name?", "url": "https://understandlegacycode.com/blog/improving-legacy-function-names/", "published_at": "2020-04-19T21:18:27+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6240aa0a22", "title": "5 talks on Legacy Code: The Legacy of SoCraTes, 1st edition", "url": "https://understandlegacycode.com/blog/legacy-of-socrates-1st-edition/", "published_at": "2020-04-12T12:15:57+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6241208d08", "title": "Focus refactoring on what matters with Hotspots Analysis", "url": "https://understandlegacycode.com/blog/focus-refactoring-with-hotspots-analysis/", "published_at": "2020-04-06T18:18:27+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62420c608b", "title": "Don't make Clean Code harder to maintain, use the Rule of Three", "url": "https://understandlegacycode.com/blog/refactoring-rule-of-three/", "published_at": "2020-03-30T21:47:33+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6242f07b4e", "title": "Are functions that simply call another function a bad design choice?", "url": "https://understandlegacycode.com/blog/are-wrapper-functions-bad-design/", "published_at": "2020-03-22T01:47:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6243aaef2b", "title": "What is wrong with boolean parameters?", "url": "https://understandlegacycode.com/blog/what-is-wrong-with-boolean-parameters/", "published_at": "2020-03-16T01:47:28+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62447f81e7", "title": "5 coding exercises to practice refactoring Legacy Code", "url": "https://understandlegacycode.com/blog/5-coding-exercises-to-practice-refactoring-legacy-code/", "published_at": "2020-03-09T01:12:33+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62456ffecb", "title": "Dive into an unfamiliar codebase from its edges", "url": "https://understandlegacycode.com/blog/dive-into-an-unfamiliar-codebase-from-its-edges/", "published_at": "2020-03-03T02:47:33+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62464794f9", "title": "The key points of Working Effectively with Legacy Code", "url": "https://understandlegacycode.com/blog/key-points-of-working-effectively-with-legacy-code/", "published_at": "2020-02-21T02:05:52+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6246871264", "title": "5 arguments to make managers care about technical debt", "url": "https://understandlegacycode.com/blog/5-arguments-to-make-managers-care-about-technical-debt/", "published_at": "2020-02-18T02:00:02+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf624713bce3", "title": "The Ship of Theseus to NOT rewrite a legacy system from scratch", "url": "https://understandlegacycode.com/blog/ship-of-theseus-avoid-rewrite-legacy-system/", "published_at": "2020-02-10T21:06:13+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62481295fe", "title": "Is it up to the newer developer to pay back others' technical debt?", "url": "https://understandlegacycode.com/blog/is-it-to-the-newer-developer-to-pay-back-others-technical-debt/", "published_at": "2020-02-03T03:23:12+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf62481c7168", "title": "Use the Mikado Method to do safe changes in a complex codebase", "url": "https://understandlegacycode.com/blog/a-process-to-do-safe-changes-in-a-complex-codebase/", "published_at": "2020-01-28T12:18:27+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6249188956", "title": "3 steps to add tests on existing code when you have short deadlines", "url": "https://understandlegacycode.com/blog/3-steps-to-add-tests-on-existing-code-when-you-have-short-deadlines/", "published_at": "2020-01-24T02:15:57+00:00" }, { "id": "01a08c5a-84eb-712f-84c5-cf6249dcf5e4", "title": "What is Legacy Code? Is it code without tests?", "url": "https://understandlegacycode.com/blog/what-is-legacy-code-is-it-code-without-tests/", "published_at": "2020-01-22T01:47:28+00:00" } ] posts Claim your blog
Back to understandlegacycode.com
Blog · corpus.blog/blogs/understandlegacycode.com/posts

understandlegacycode.com

understandlegacycode.com

2026

2025

2024

2023

2022

2021

2020