The Strangled App
Here’s an interesting way to refactor existing software: strangle it with growing vines of a new application until the new application has taken over.
Martin Fowler coined the term Strangler Application. The metaphor is from Australian rainforests he was visiting.
There are vines that start growing from trees. Over time, they reach the ground, and take root. From there, they grow in number and strength. They keep growing, and eventually strangle the original tree to death.
Use this metaphor to “strangle” your existing application. Start small. Take over a piece of functionality with the new application. Grow another vine. Let it establish itself.
I think the big risk in following this approach is not continuing until the old software is dead. I can easily imagine a well-intentioned first vine growing on the existing tree, only to be always hanging off that tree. Death of the original software through growth of the new software is the only way.
To apply this logic to Bitesize Irish Gaelic, it’s a web application I wrote around 2008 or 2009 when working at a digital advertising agency. It was a time of PHP4, before packages were “the thing” for that language.
That application still works today, in 2016. It’s patched here and there, but the application itself is alive and kicking.
We’re going to simply take it over by reducing its food (its traffic) over time. The Apache redirects that run the application will, one by one, have to point to the new application.
How many years (certainly not months) will it take to strangle that old application? Only time and peristant dedication will tell.
For an update, two years on, see The Strangler App – Two Years On.