An anti-pattern I keep running across is trying to solve tech debt problems by adding a new tool to the stack. It’s like planning to pay off some of your $10K in credit card debt by getting a new card with a $5K limit with a lower interest rate…but then using $1K of it pay down the old card and spending the other $4K on new stuff. Now you’ve got $14K of debt to service.
Before you switch from from your old unsexy, fragile PHP or Cobol codebase to Haskell, you need to fix your spaghetti code, in place, with the existing tech. If you don’t understand it well enough to do that, or if you don’t have the time to do it, you won’t be replacing the old system with your shiny new system either, you’ll just be adding yet more technical debt to you existing pile of…tech debt.