Patterns of Legacy Displacement
GOTO Aarhus 2022

Thursday Jun 16
15:30 –
16:30
Anker 1

Patterns of Legacy Displacement

Slides:


This talk is drawn from material being produced in collaboration with Martin Fowler and James Lewis with regular updates being published to https://martinfowler.com/articles/patterns-legacy-displacement/

Our hope is that anyone looking to embark on a legacy modernisation programme or who is currently involved with one will find some useful advice in this talk.

We have spent most of the last couple of decades helping large organisations overhaul their legacy systems. In doing this we've learned a great deal about what works and seen many paths that lead to failure. In this talk we describe several of the legacy displacement patterns that we found to be successful, as well as some of the “anti-patterns” that more often than not lead to failure.

For each pattern, we describe a particular approach, the context where it's effective and explain how and why you might use them, giving real world examples along the way. Key to our approach is seeing legacy replacement as a holistic activity that cuts across technology, business processes and organisation structure.

In more detail using these patterns often means discovering how one large technical solution meets multiple business needs and then seeing if it is possible to extract individual needs for independent delivery using a new solution. We describe how different elements of current solutions might be mapped to business capabilities and, using examples, how the various patterns can then be used to incrementally deliver these replacement solutions over time.

A common objection is that finding these “seams” in existing systems is too difficult. While we agree it is challenging at first, we have found it to be a better approach than the alternatives which all too often result in Feature Parity and Big Bang releases. We describe these anti-patterns as well as some of the underlying organisational reasons many legacy replacement programmes fail.