/awesome-legacy-systems

A curated list of awesome resources and links about tackling legacy systems that gives hope.

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Legacy Systems Awesome

A curated list of awesome resources and links about tackling legacy systems that gives hope.

Hi! My name is Markus Harrer. I created this repository to share a set of resources and links that I found valuable and inspiring while working with legacy systems. I hope that you'll like it, too!

Image source: Ancient scroll vector created by upklyak - www.freepik.com

Legacy Systems are systems that you might be too afraid of to change. But they are necessary because they make all the money for your company. Thus, developers often have to maintain these older systems whether they want or not.

Legacy systems have their own fascinations and challenges that can be much more interesting than just gluing together some frameworks in a green-field project. But the lack of knowledge about how to tackle legacy systems is a big problem. Most developers just learn how to create new systems initially and not how to maintain existing ones or even evolve those systems. This list tries to close these gaps.

Contents

The resources are ordered alphabetically the first author's surname for books and articles or the name of the resource for all the other resources)

Books

Blogs

Articles

Microsites

Podcasts

  • 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.

Podcast Episodes

Talks

Conferences

  • MenderCon - A full-day virtual conference (and unconference) about modernizing and improving software systems.
  • The Legacy of SoCraTes - An irregular online conference where speakers share their insights on how to approach legacy systems in a successful way. Plenty of talks from various directions make this resource valuable for people tackling legacy systems.

Courses

Lists of Tools

There are plenty of tools out there that can help you with your legacy systems. This section lists existing lists so that you can find your tool that fit to your specific needs:

Other Languages

This list focusses on contant in English. But there is also content out there in other languages.

  • German: Großartige Bestandssysteme - Eine kuratierte Liste mit großartigen Ressourcen und Links zum Umgang mit Altsystemen, die Hoffnung macht.

Learning Paths

There is so much to learn as a software developer that wants to improve legacy systems and code. Here you can find some personal recommendations from others:

Markus Harrer

Social: markusharrer.de

Background: Java developer, software evolutionist, software development analyst, CDO (Code Deletion Officer)

My top 5 recommendations

  1. Marianne Bellotti: Kill It with Fire
  2. Michael Feathers: Working Effectively with Legacy Code
  3. legacycode.rocks Podcast
  4. Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz: Object-Oriented Reengineering Patterns
  5. Architecture Improvement Method aim42

Related Awesome Lists

This section lists other awesome lists in the area of legacy systems.

  • Awesome Legacy Code - A curated list of legacy systems with publicly available source code.
  • Awesome Modernization - Awesome legacy system modernization tools. (partly in Chinese)
  • 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. (there might be some overlaps with this list)

Contributing

Did you like this list? Contributions are very welcome! Read the contribution guidelines first and add your ideas!