<story><title>Strangler pattern, a powerful simple concept to do refactoring</title><url>https://www.martinfowler.com/bliki/StranglerApplication.html</url></story><parent_chain></parent_chain><comment><author>cle</author><text>&amp;gt; There&amp;#x27;s another important idea here - when designing a new application you should design it in such a way as to make it easier for it to be strangled in the future. Let&amp;#x27;s face it, all we are doing is writing tomorrow&amp;#x27;s legacy software today. By making it easy to be strangled in the future, you are enabling the graceful fading away of today&amp;#x27;s work.&lt;p&gt;This is a very important point that I&amp;#x27;ve been harping on for years.  If the nature of your business requires quickly adapting to new business needs--then make your software and systems easy to delete!  Chances are good that they&amp;#x27;ll be obsolete&amp;#x2F;outdated in a few years, and everyone will be much happier if the system is easy to remove and replace.&lt;p&gt;How to implement that is very dependent on the nature of your systems, how you deploy, your company&amp;#x27;s tech and operational culture, etc.  But it&amp;#x27;s very much worth thinking about: &amp;quot;If this project were to fail in the long run, how hard would it be to get rid of?&amp;quot;  In large companies, lingering legacy systems can make or break an entire organization.</text></comment>
<story><title>Strangler pattern, a powerful simple concept to do refactoring</title><url>https://www.martinfowler.com/bliki/StranglerApplication.html</url></story><parent_chain></parent_chain><comment><author>systematical</author><text>Agreed. We are wrapping up the rewrite of a CRM and man-oh-man has it been long. Two years in the making due to being taken on and off, on and off, and yet again on and off the project. Looking back. I wish I had either just rewritten the existing system, piece by piece at a time, or at least starting moving pieces one-by-one out via micro-services to a new backend. The front-end then could&amp;#x27;ve been completed in a smaller rebuild.&lt;p&gt;Regardless, had we gone with a strangler approach, we probably would&amp;#x27;ve been done months ago. As it stands, there is at least another week or two of development via QA break&amp;#x2F;fixing until its ready to go live.&lt;p&gt;With that said, I still think there are times when a full rewrite makes sense. We redid our API two years ago when it was still small and I am  happy we did the full rewrite. The old architecture just wouldn&amp;#x27;t have been able to scale with where we are now and I felt the code was just too far gone to be helped.&lt;p&gt;As always, life is full of learning experiences.</text></comment>