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

Modernizing through evolution not revolution

Modernizing through evolution not revolution

Due to unavoidable compromises, over time, projects inevitably lean more towards growth and depth than general modernization, to the point that they become difficult to maintain. So, what happens when the bugs add up and the monster emerges? Refactor? Rewrite from scratch? The speaker shall expand and explain what to look out for, from both a technical and business perspective.

Presented at CFSummit 2022, Las Vegas, US

Guust Nieuwenhuis

October 10, 2022
Tweet

More Decks by Guust Nieuwenhuis

Other Decks in Technology

Transcript

  1. ABOUT ME Guust Nieuwenhuis Managing Partner @ We Are North

    Full Stack Web Wizard Masa CMS Born in The Netherlands Living in Belgium Soccer coach Mountainbiker
  2. Flights booking engine Performance issues Decided to rewrite from the

    ground up Kept adding new functionality to the “old” engine Development of the “new” engine trying to catch up Financial disaster
  3. REWRITE CODE FROM SCRATCH IS THE SINGLE WORST STRATEGIC MISTAKE

    THAT ANY SOFTWARE COMPANY CAN MAKE Joel Spolsky 
 Co-founder Trello and Stack Over fl ow
  4. A feeling isn’t sufficient Rewrite delays the release of the

    project More bugs and less functionality Expensive No guaranteed success
  5. 12+ years old web application New separate API for mobile

    app New report builder module Integrated new module in old application Sharing the database Feature flags
  6. 12+ years old web application New separate API for mobile

    app New report builder module Integrated new module in old application Sharing the database Feature flags
  7. 12+ years old web application New separate API for mobile

    app New report builder module Integrated new module in old application Sharing the database Feature flags
  8. 25+ years old client-server app Need to move to “The

    Cloud” New module developed Domain Driven Design Microservices architecture Events between “old” and “new”
  9. 25+ years old client-server app Need to move to “The

    Cloud” New module developed Domain Driven Design Microservices architecture Events between “old” and “new”
  10. WANT TO READ MORE? Domain Driven Design Bounded Context Strangler

    Fig Pattern Anti Corruption Layer Eric Evans Martin Fowler Anti Patterns Event Driven Architecture Microservices Feature Flags
  11. 3 applications Overlapping functionality Consolidate applications Minimum viable product (MVP)

    Won’t copy all functionality Business case drives rewrite!
  12. 3 applicaties Overlapping functionality Consolidate applications Minimum viable product (MVP)

    Won’t copy all functionality Business case drives rewrite!