Muhammed Senussi
Muhammed Senussi
  • Muhammed Senussi
A Strangler Fig Migration That Actually FinishedSoftware Architecture

The pattern is well known: put a facade in front of the old system, route one capability at a time to the new one, and eventually the old system has nothing left to do. The part nobody writes about is why it so often stops halfway.

Why they stall

Because the remaining thirty percent is the hard thirty percent, the new system is already delivering value, and no roadmap has a line item for finishing something that already appears to work. The migration becomes permanent, and now two systems must be maintained forever.

What we did differently

  • Every routing change came with a deletion in the same pull request. Nothing was migrated until the old path was removed.
  • We kept a visible count of remaining endpoints on the team dashboard. Progress that is invisible does not get prioritised.
  • We wrote down at the start which capabilities would be dropped rather than migrated. Four were, and nobody missed them.

Fourteen months, no big-bang weekend, and the old repository is archived rather than dormant.

A Strangler Fig Migration That Actually Finished — Figure 1
A Strangler Fig Migration That Actually Finished — Figure 2
A Strangler Fig Migration That Actually Finished — Figure 3

4 Comments

  • Lotte Jansen

    October 16, 2024

    The deletion-in-the-same-PR rule is the detail I have never seen written down and it is obviously right.

    • Muhammed Senussi

      Muhammed Senussi

      AuthorOctober 16, 2024

      It is also the rule that gets negotiated away first, usually with "we will clean it up next sprint". Making it a review requirement rather than an intention is what made it stick.

  • Daan Visser

    October 18, 2024

    How did you get agreement to drop four capabilities? That is usually politically impossible.

    • Muhammed Senussi

      Muhammed Senussi

      AuthorOctober 18, 2024

      Usage data. We showed that three of them had not been invoked in six months and the fourth had eleven users who were all in one department that had moved to a different tool. It is much easier to retire something when nobody has to defend the decision on instinct.

Leave a comment