Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Strangler application patterns and antipatterns

Strangler application patterns and antipatterns

A few observations about what makes success more likely in application rewrite effort

Matteo Vaccari

April 11, 2016
Tweet

More Decks by Matteo Vaccari

Other Decks in Technology

Transcript

  1. Get a whiteboard, put on the colored stickies, and try

    not to be a pain in the arse. #agile #inanutshell
  2. Things going against the big rewrite • Same people and

    same methods: they will get the same results • The old software contains knowledge and details that we’re not aware of • While we are busy rewriting the old features, competitors are busy implementing new ones • Why is there always time to do things over, but there is never time to do things right?
  3. A tale of two companies • There once were two

    competing companies, with equal market share • One company rewrote their product… • … and many customers migrated to the other! • The company who kept the old codebase now has twice the market share
  4. Simplicity is achieved when… • Each box is understandable in

    isolation • Each box does only one thing • Each box represents a single concept • Each box is cohesive
  5. Simplicity is achieved when… • Things are loosely coupled •

    Or, rather… • … they are coupled appropriately
  6. 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
  7. A Strangler application is composed of: • A router •

    The old application • The new application(s) • An update mechanism
  8. For best results, the new app and the old should

    not be aware of each other! • A router • The old application • The new application(s) • An update mechanism