4 ms·
Ive never seen it work in practice. Every time I see it end up with Appv1, Appv2, Appv3 all running at the same time because the new systems cant move quick eno
by JamesSwift 2y ago
Ive never seen it work in practice. Every time I see it end up with Appv1, Appv2, Appv3 all running at the same time because the new systems cant move quick enough to add new features so they get added to the older versions. But the newer systems offer unique things the older didnt. So they all coexist and never die.
- marcosdumay 2y agoThere's something wrong with your experience, because the entire point of making a new system is that it will eventually move faster than the old one. Maybe your strangling software is still too ambitious.
- theshrike79 2y agoThat sounds like you're trying to rewrite the whole app, NEVER do that[0]. You shouldn't end up with appv1, v2, v3. You should have appv1 along with appv1-foobarmeasurement-v2 running. Then you slowly move traffic to v2 of foobarmeasurement until it can handle 100% of the load and has all the features - then you remove that feature from appv1 completely. Then you GOTO 10 and pick a new feature to slowly strangle. [0] https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ https://www.joelonsoftware.com/2000/04/06/things-you-should-...
- JamesSwift 2y agoMy point is that if the rewrite is not able to be classified as a refactor, it wont work. It has to be entirely invisible to the user (and product side of the org). Otherwise, it is never going to be completed.
- theshrike79 2y agoThat's literally the point of the strangler fig pattern :) The difference between a rewrite and refactor is a bit vague and nor easy to determine when talking theoretically.