On Friday, February 21, I presented “Strangle Your Legacy Code” at Mini-SPA, a one-day event in Leeds, UK. I wasn’t in Leeds, but my talk was. The abstract:

Given an ancient codebase that makes refactoring risky and expensive, how do you clear a path to continued delivery? The old wisdom says the best time to plant a tree was 20 years ago, and the next best time is today. But if you already have a gnarled old source tree, preserve your software investment by planting a Strangler: a pattern for reaping continuous value from your existing system while growing new functionality alongside it. We’ll define our terms, meet some legacy code and its Strangler (both open source), then test-drive new features into the system. You’ll leave with a powerful strategy for extending the useful life of working, valuable software — especially when it’s hard to change.

Two questions came in at the end:

  1. What architecture do I suppose is most often Strangled? My best guess is web applications, both because there are so many of them and because web proxying is well understood.
  2. How did I intercept network calls to the SMTP service? qmail’s SMTP daemon has no network code in it, relying on inetd or tcpserver to map client-connected sockets to stdio. That’s why I could type into it interactively simply by running it from the command line.

”Strangle Your Legacy Code” is usually an interactive workshop, one of many I’m happy to offer your team.