The Strangler Fig

Instead of trying to rewrite a legacy system, the strangler fig is a gradual process of modernization.

You write small additions on top of, but separate of the new codebase.

Martin Fowler came up with the name and I’ve just read his updated article on the topic.

When I tried this approach on a project late last year, I got some things right, but some things wrong.

There are four key activities for this kind of approach:

  1. Understand the outcomes you want to achieve
  2. Decide how to break the problem up into smaller parts
  3. Successfully deliver the parts
  4. Change the organization to allow this to happen on an ongoing basis

Number 2 is tricky. Figuring out the seams of a legacy system can sometimes feel like untangling overcooked spaghetti.

My mistake was not diving deep enough into the code, early enough to not just define a strategy, but also the tactic.

How do we slice it and where.

Once I did that, things started to flow. I found how to replace the “engine” of the app, but kept the interface the same.

In total, it’s more work. It gets complicated with feature flags.

But this approach will de-risk the transition and you’ll get value out of the modernization sooner.

Here’s the full article: https://martinfowler.com/bliki/StranglerFigApplication.html

Best regards,

Taj

All writing