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

Big Rewrite Strikes Again - Lead Dev London 2017

Big Rewrite Strikes Again - Lead Dev London 2017

There’s nothing more frustrating than not being able to deliver new features because of unnecessarily complicated code. You may decide it’s time to throw it all away and start over… and what starts off full of optimism, drags on for months and months, adding even more complexity and various levels of legacy.

It doesn’t have to be this way! In this presentation, you’ll hear a first-hand experience of how to approach technical debt at its worst, and how a rewrite project was successful in more ways than expected.

This talk will teach you lessons on how to start, and most importantly, finish a big rewrite project. You will learn how to approach the conversation with the “business”, avoid the most common pitfalls when changing the architecture of a complex codebase, and ensure the rewrite brings value from the start till the very happy end.

Sabrina Leandro

June 09, 2017
Tweet

More Decks by Sabrina Leandro

Other Decks in Technology

Transcript

  1. This talk • The problem • How to start it

    • How to run it • How to finish it • How to not need it again!
  2. Is it the right time? Yes, if the product has

    a clear business value today.
  3. Now Bright future! Team 2: Building new application Rewrite from

    scratch Legacy application Team 1: Maintaining legacy application New New application New application VALUE! Legacy application Legacy application
  4. Now Bright future! Team 2: Building new application Rewrite from

    scratch Legacy application Team 1: Maintaining legacy application New New application New application VALUE! Legacy application Legacy application Legacy application
  5. Now Bright future! Team 1: Maintaining legacy and building new

    application New application Rewrite using strangler approach
  6. Now Bright future! Team 1: Maintaining legacy and building new

    application New application VALUE! Rewrite using strangler approach
  7. “ If we were starting over, what would we build

    today, knowing what we know now?
  8. “ If we were starting over, what would we build

    today, knowing what we know now?
  9. Bigmouth Strikes Again This Charming Man Stop Me If You

    Think You’ve Heard This One Before What Difference Does It Make? Please, Please, Please, Let Me Get What I Want That Joke Isn’t Funny Anymore I Started Something I Couldn’t Finish These Things Take Time Sheila Take A Bow Thanks! Sabrina, take a bow… [email protected] @saleandro
  10. References Songkick.com rewrite • https://devblog.songkick.com/the-path-to-soa-d986a18d4a8b • https://devblog.songkick.com/our-object-based-rails-frontend-3e2ddc048d12 • https://www.youtube.com/watch?v=-VEf8j6aGMk •

    https://www.martinfowler.com/bliki/StranglerApplication.html Celebrate your successes • https://medium.com/@Songkick/gamify-your-product-team-to-power-level-9000-261e9fceaa22 Hoarders metaphor / Liveable code • https://twitter.com/sarahmei/status/783115752794492928 • https://www.youtube.com/watch?v=mz3l_oEA2cU • https://twitter.com/kentbeck/status/856537528886673408 Product discovery and product delivery • http://jpattonassociates.com/dual-track-development/ • https://martinfowler.com/bliki/DesignStaminaHypothesis.html • https://www.facebook.com/notes/kent-beck/teams-in-3x/1244519748914220/
  11. References Make the cost visible • http://codemanship.co.uk/parlezuml/blog/?postid=1433 • http://blogs.msdn.com/b/elee/archive/2009/03/11/source-code-is-a-liability-not-an- asset.aspx

    Make it part of your day-to-day • https://martinfowler.com/bliki/OpportunisticRefactoring.html • http://ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/ • http://firstround.com/review/forget-technical-debt-heres-how-to-build-technical-wealth/ • https://www.infoq.com/presentations/microservices-replaceability-consistency • https://www.sandimetz.com/blog/2017/6/1/the-half-life-of-code • https://www.infoq.com/presentations/remove-unneeded-code Playlist :) • https://open.spotify.com/user/saleandro/playlist/6i3RVHtys4djlYlLLGZc26