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

The big rewrite

The big rewrite

Slides from my talk at Droidcon IT 2018
Video: https://youtu.be/he27mDanZgA

Are you living the dream? An architecture so SOLID you could literally build your house on? Tests so fast you can't even sip your coffee before they finish? Code so clean it literally hurts your eyes?

No? Then why don't you convince management to start over? Things will be different, you'll do things right.

Truth be told, app rewrites seldom work out: estimates turn out to be overly optimistic, functionality a lot more complex and crucial details have been deeply buried in the legacy code. Result: pressure to ship increases and technical debt again piles up.

Join this keynote to get a better understanding of the unique challenge of today's ever-growing, more and more complex apps. Learn how we can efficiently tackle legacy code bases and how to get back your developer happiness.

Further reads:
- The big rewrite - Chad Fowler: https://goo.gl/hjzUY6
- The big rewrite - Jo Van Eyck: https://goo.gl/QVkyPt
- Paying technical depth - Jeroen Moons: https://goo.gl/cMGuqp
- Things you should never do - Joel Spolsky: https://goo.gl/DdYdcv

Jeroen Mols

April 19, 2018
Tweet

More Decks by Jeroen Mols

Other Decks in Programming

Transcript

  1. THE BIG REWRITE
    @molsjeroen

    View Slide

  2. @molsjeroen

    View Slide

  3. @molsjeroen
    PART 1
    The brave step
    Photo: DasUngesagte

    View Slide

  4. @molsjeroen
    THE BRAVE STEP
    ➤ Our App is in a bad state
    ➤ We’re constantly firefighting
    ➤ Team is unhappy
    ➤ We should start over

    View Slide

  5. @molsjeroen
    PART 2
    Reality kicks in
    Photo: Clement127

    View Slide

  6. @molsjeroen
    REALITY KICKS IN
    ➤ More features than anticipated (feature complete)
    ➤ Plans overly optimistic
    ➤ Requirements hidden in source code
    ➤ Designs keep on changing
    ➤ Requirements keep on changing
    ➤ Loss of development capacity to old app
    ➤ Underestimating qualities of previous team
    ➤ Risky big bang launch

    View Slide

  7. @molsjeroen
    PART 3
    Ship ship ship
    Photo: Chris Christian

    View Slide

  8. @molsjeroen
    SHIP SHIP SHIP
    ➤ Pressure increases massively
    ➤ Shortcuts are taken
    ➤ Technical debt accumulates
    ➤ Are you really better off than before?

    View Slide

  9. @molsjeroen
    PART 4
    A better way
    Photo: Clement127

    View Slide

  10. @molsjeroen
    A BETTER WAY
    ➤ Refactor the code step by step
    ➤ Work as a team towards a clear goal
    ➤ Fast and reliable CI in place
    ➤ Automated tests
    ➤ Modularise your app to enable riskier changes
    ➤ Master your tools
    ➤ Release often and frequently
    ➤ Have faith

    View Slide

  11. @molsjeroen
    WRAP UP
    Photo: Clement127

    View Slide

  12. @molsjeroen
    SUMMARY
    ➤ Rewrites are risky and time consuming

    ➤ Reduce risk as much as possible
    ➤ Minimise time to market & maximise user value
    ➤ Refactor to make code incrementally better
    ➤ Modularise to enable bigger, riskier changes

    ➤ Automate your testing
    ➤ Release release release

    View Slide

  13. @molsjeroen
    IMAGE CREDITS
    ➤ Almost all images - clement127

    https://www.flickr.com/photos/clement127/
    ➤ Intro slide - Kenny Louie

    https://goo.gl/WufAP3
    ➤ Moon lander - DasUngesagte

    https://goo.gl/TqtbHt
    ➤ Spaceship - Marshal Banana

    https://goo.gl/jb4m2p
    ➤ Captain - Chris Christian

    https://goo.gl/odtLx9
    ➤ Juggler - Markus Lütkemeyer

    https://goo.gl/bVdxhG

    View Slide

  14. @molsjeroen
    FURTHER READS
    ➤ The big rewrite - Chad Fowler
    ➤ The big rewrite - Jo Van Eyck
    ➤ Paying technical depth - Jeroen Moons
    ➤ Things you should never do - Joel Spolsky

    View Slide

  15. @molsjeroen
    MANY THANKS
    ➤ Jeroen Mols (Belgium)
    ➤ @MolsJeroen
    ➤ http://jeroenmols.com/blog

    View Slide