awesome-legacy-systems
github.com/feststelltaste/awesome-legacy-systems ↗A curated list of awesome resources and links about tackling legacy systems that gives hope.
Use this list with your AI agent
Add the Context Awesome MCP server to Claude, Cursor, or any MCP client, then ask:
"Show me talks resources from awesome-legacy-systems"
Installation instructions →What's inside
Talks
- Adele Carpenter: Are Rewrites always a Bad Idea? @ NDC Melbourne 2025
An honest and thorough look at when rewriting a software system makes sense (and when it doesn't).
- Andrea Goulet: Putting the Right Developers on the Right Projects @ DC FULL STACK 2017
- Colin Breck: Using Quality Views to Tackle Tech Debt at Tesla @ QCon2017
Colin Breck created a view of software qualities (or the absence from it) for bigger software systems to create more awareness for fixing technical debt.
- Dave Farley: From Legacy Code to State-of-the-Art Development @ Continuous Delivery YouTube Channel (2023)
Dave is a Continous Delivery advocate. In this video, he addresses the options you might take if you don't start developing a software system from scratch / on the green field: Refactor, improve feedback cycles, introduce testing and automate deployment!
- Dylan Beattie: Ctrl-Alt-Del - Learning to Love Legacy Code @ NDC2019
Learning to Love Legacy Code @ NDC2019
- Eric Evans: Strategic Design @ Øredev 2015
Eric Evans shares his view towards a more business-driven approach to rewrites (links to a blog post because video is not public yet).
Articles
- Alessio Ferri, Tom Coggrave, Shodhan Sheth: Legacy Modernization meets GenAI - A new era for Evolutionary Modernization (2024)
This blog post highlights how GenAI, through tools like CodeConcise, can transform legacy system modernization by extracting insights and requirements from complex codebases.
- Alexandre Martins: Lessons Learned From Software Rewrites (2018)
An experience report on improving architecture using a Strangler Application approach to gradually replace an outdated system, including reducing features by 40%, eliminating duplicate effort, and removing dead code.
- Erich Eichinger: Heuristics for Identifying Service Boundaries (2018)
Practical guidelines to help break down large systems into smaller, manageable services by considering domains, process flows, data locality, organizational boundaries, and more.
- Markus Harrer: 17 actions you can take to move your legacy system forward (2021)
A Twitter thread that lists plenty of options you have when you want to do something with your legacy system.
- Mathias Verraes: The Legacy Mirror Heuristic (2021)
A great decision-making method that helps evaluate new ideas by imagining if the new idea were the established norm and the old idea were the new proposal.
- Matthew Skelton, Manuel Pais: Independent Service Heuristics (2020)
A checklist with valuable insights to evaluate whether your system's modularization ideas make possible sense.
Lists of Tools
- Analysis-Tools.dev
Static analysis tools for many programming languages, build tools, config files and more.
- Awesome Open Source - Profilers
Tools for in-depth runtime analysis.
- OpenAPM
Lists various Application Performance Management tools that can help you to find performance problems.
- Sandra Parsick: maintenance-talk
A talk on how to tackle maintenance hell, including a list of valuable tools to get rid of it.
Podcasts
- Andrea Goulet: Learning to love Legacy Code with Andrea Goulet from CorgiBytes @ Hanselminutes Podcast by Scott Hanselman (2016)
- Dave Thomas: SE-Radio Episode 242: Innovating Legacy Systems @ Software Engineering Radio (2015)
- Gernot Starke: aim42 with Gernot Starke @ Conversations about Software Engineering (2017)
- Grady Booch: Nine Things You Can Do with Old Software @ IEEE Software's On Architecture Podcast (2008)
What you "can do intentionally with legacy code, from abandonment to evolution and many things in between" (taken from the podcast episode's description).
- legacycode.rocks
A podcast (and community) created by Andrea Goulet and M. Scott Ford from Corgibytes about the world of modernizing existing software applications.
- maintainable.fm
A podcast by Robby Russell interviewing seasoned practitioners that know how to work with technical debt and legacy code.
Microsites
- Architecture Antipatterns
An anti-pattern library featuring common pitfalls encountered when approaching software architecture the wrong way, including tips on how to avoid creating the next legacy system monster.
- Architecture Improvement Method aim42
A collection of practices and patterns to support software evolution, modernization, maintenance, migration, and improvement of software systems (transparency hint: the maintainer is one of the authors of this list).
- Cloud Native Transformation Patterns: Tools for creating effective Cloud Native architecture – and remaking the way we work
Collection of patterns on different levels (strategy, development, operations etc.) that show many ideas what one can do with existing applications that should be moved to the cloud. Many of the patterns work also for non-cloud environments.
- Divio's Documentation System
Outlines best practices for organizing different types of documentation and provides clear guidelines to help distinguish between various documentation categories, enhancing clarity and usability.
- Domain-Driven Refactorings
A set of refactoring patterns and step-by-step instructions to help restructure existing codebases to better align with the concepts of a business domain.
- legacy-modernization.io
A collection of resources to help you plan and execute your modernization journey.
Related Awesome Lists
- Awesome Agentic Software Modernization
A curated list of tools, frameworks, patterns, and research for AI-driven and agentic approaches to modernizing legacy systems.
- Awesome Legacy Code
A curated list of legacy systems with publicly available source code.
- Awesome Modernization
Awesome legacy system modernization tools.
- Awesome Software Analytics
A curated list of awesome resources and links about Software Analytics – a discipline that tries to analyze software data to get ideas about improving legacy systems.
- Awesome Technical Debt
a curated list of Technical Debt talks, articles, and books.
Books
- Carola Lilienthal: Sustainable Software Architecture - Analyze and Reduce Technical Debt (2019)
On how to deal with eroded software architectures – and how they can be analyzed and improved with the help of elements from cognitive psychology in a tool-supported way.
- Christine Koppelt, Markus Harrer, Gernot Starke, Benjamin Wolf, and Martin Otten: Software Reviews - Identifying Risks and Problems in Software (2021)
A slim book that guides through the inventory of software systems including typical problems and questions to get to know the system.
- Christoph Stock: IT Rescue Guide - Strategies for IT Rescue Operations and Technical Debt Reduction (2023)
A slim book about the modernization of software systems. Particularly beneficial are the many pitfalls that are pointed out, creating a realistic picture of the modernization of applications for the reader. Numerous, practical tips make the book particularly exciting for newcomers to the subject.
- David Scott Bernstein: Beyond Legacy Code (2015)
A book focusing on the agile way of improving legacy code. It includes plenty of material on improving processes and tips for better collaboration, too. If you want to see how agile methodology fits into the area of legacy system modernization, this book is for you.
- Girish Suryanarayana, Ganesh Samarthyam, Tushar Sharma: Refactoring for Software Design Smells, Managing Technical Debt (2014)
Presents a comprehensive catalog of 25 design smells, their role in identifying design issues, and potential refactoring solutions. Includes illustrative examples and anecdotes drawn from the trenches of real-world projects.
- Jens Knodel, Matthias Naab: Pragmatic Evaluation of Software Architectures (2016)
Albeit a book about software architecture evaluation, it provides plenty of ideas on how to find architectural problems in your systems. I especially like the structured approach that guides you through different levels, starting at the business level and ending at the code level.
Courses
- iSAQB IMPROVE - Evolution and Improvement of Software Architectures (commercial offering)
A three-day workshop on addressing problems in legacy systems at the architecture, design, and code levels.
- M. Scott Ford: Agile Software Development - Dealing with Legacy Code and Technical Debt (commercial offering)
Dealing with Legacy Code and Technical Debt (commercial offering)
Showing a sample of 75 resources. View the full list on GitHub →