Most valuable software is hard to change • It’s a tangle of IFs. It can only be changed by adding more IFs, thus making the situation worse. • Depends on a legacy DB, accessed by many apps and nobody is sure anymore what all the tables and columns are for. • Has a tangle of configuration options, and nobody is sure of which combination of options work correctly together. • Or worse, there are many forks, one per customer, and it is hell to backport new features to all forks
Strangler application Database nuovo App Nuova Database legacy App Legacy Batch Sync Utenti Apache Perl filter Utenti migrati Utenti non migrati Router Old and new apps Update mechanism
The new app and the legacy should not be aware of each other! • Reduced need to involve the developers of the legacy • Reduced risk to break the legacy • You can start, test and change the new app on the developer machine, with no need to start or connect to the legacy So that strangulation is faster, safer and cheaper