so you want to rewrite that
DESCRIPTION
Lessons learned on rewriting a large technology stack from Drupal to Java + Ruby Video here: http://www.youtube.com/watch?v=PhYUvtifJXkTRANSCRIPT
![Page 1: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/1.jpg)
So You Want To Rewrite That…
Lessons from a successful rearchitectingCamille Fournier
@skamilleGOTO Chicago 2014
![Page 2: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/2.jpg)
We were failing to support our growth, our customers, and our
technology
![Page 3: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/3.jpg)
Everything’s not fine.
![Page 4: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/4.jpg)
A rewrite will solve all my problems!
![Page 5: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/5.jpg)
There’s no such thing as a successful rewrite
The sustainable rewrite looks like firefightingCliff Moon, Boundary
![Page 6: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/6.jpg)
THE PATH TO REWRITING IS FRAUGHT WITH DANGER
![Page 7: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/7.jpg)
You’re failing now.
![Page 8: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/8.jpg)
You can’t scale.
![Page 9: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/9.jpg)
You can’t meet customer demand.
![Page 10: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/10.jpg)
You’re crushed under the
weight of your technical debt.
![Page 11: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/11.jpg)
It is easy to fail on the unknown unknowns
![Page 12: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/12.jpg)
This doesn’t look THAT big…
How well do you know what the code is doing now?
![Page 13: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/13.jpg)
What about the data?
![Page 14: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/14.jpg)
How does the team need to change to make this successful?
![Page 15: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/15.jpg)
The sirens will tempt you off course.
![Page 16: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/16.jpg)
Trying to do too much.
![Page 17: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/17.jpg)
Counting on a “big bang”
release.
![Page 18: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/18.jpg)
Choosing the wrong software.
![Page 19: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/19.jpg)
Choosing the wrong software.
![Page 20: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/20.jpg)
WHAT ARE THE PRINCIPLES TO MAKE THIS SUCCESSFUL?
![Page 21: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/21.jpg)
Change as little as possible.
![Page 22: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/22.jpg)
Don’t rewrite at all, modify in place!
![Page 23: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/23.jpg)
Rewrite but keep the language the same.
![Page 24: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/24.jpg)
Change only one thing at once (salami slicing)
![Page 25: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/25.jpg)
You need to sell this.
![Page 26: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/26.jpg)
Sell it to yourself first.
![Page 27: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/27.jpg)
Sell it to the business with Big Scary Graphs.
![Page 28: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/28.jpg)
Sell it to your team.
![Page 29: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/29.jpg)
You need a detailed definition of done.
![Page 30: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/30.jpg)
A test suite that acts as a
safety harness.
![Page 31: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/31.jpg)
What is the quality we’re measuring to improve?
![Page 32: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/32.jpg)
What is our data migration plan?
![Page 33: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/33.jpg)
WHAT DOES THE OUTCOME LOOK LIKE?
![Page 34: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/34.jpg)
Your culture will change in the process.
![Page 35: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/35.jpg)
Long-time employees may feel threatened.
![Page 36: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/36.jpg)
Workflows will have to change.
![Page 37: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/37.jpg)
The structure of your team changes.
CTO
Dev Dev Dev Dev Dev Dev
Architect
![Page 38: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/38.jpg)
The structure of your team changes.
CTO
Director
FrontEnd
Dev Dev
QA BackEnd
Dev Dev
Director
Frontend QA Backend
VP Ops
DevOps
DevOps DevOps
Syseng
![Page 39: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/39.jpg)
A new architecture brings new challenges.
![Page 40: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/40.jpg)
Tempting to make v2 everything you ever wanted!
![Page 41: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/41.jpg)
Overengineering can happen to process, too.
![Page 42: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/42.jpg)
User
Checkout
Static Asset CDN Origin
Drupal
Our Runway
Home
Grid
Product Detail
static assets
sinatra views / erbs
< Sinatra::Base
RtR API clients
Heroku
Rackspace
Engine Yard
![Page 43: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/43.jpg)
You’re never really done.
![Page 44: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/44.jpg)
You create a system that will last longer than its predecessor.
![Page 45: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/45.jpg)
You have the flexibility to build the things you will need.
![Page 46: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/46.jpg)
You have standards around that flexibility to mitigate complexity.
![Page 47: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/47.jpg)
Build with the needs of a larger or smaller team in mind.
![Page 48: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/48.jpg)
Everything isn’t fine.
![Page 49: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/49.jpg)
It’s time to rewrite.
![Page 50: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/50.jpg)
Sell it, change as little as possible, and know what done looks like.
![Page 51: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/51.jpg)
Prepare for a brave new world.
![Page 52: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/52.jpg)
Create a sustainable future.
![Page 53: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/53.jpg)
Thanks!
• @skamille• Rent the Runway is hiring!
renttherunway.com/careers• My blog: whilefalse.blogspot.com
![Page 54: So You Want to Rewrite That](https://reader035.vdocuments.site/reader035/viewer/2022081515/5592a59f1a28ab57798b46b0/html5/thumbnails/54.jpg)
credits• www.mccord-museum.qc.ca/fr/collection/artefacts/MP-0000.2265• Zombie mob: https://www.flickr.com/photos/aheram/219515706/• Fail whale: Rob Friedman / playerx / @px• National Ocean Service Image Gallery• https://www.flickr.com/photos/matt_gibson/3281131319
• https://www.flickr.com/photos/philliecasablanca/3344142642• https://www.flickr.com/photos/johnragai/12601518074• https://www.flickr.com/photos/thomashawk/2369472195• https://www.flickr.com/photos/richigrafik/4912808572• https://www.flickr.com/photos/katiew/311380970• https://www.flickr.com/photos/lucianvenutian/1279760885• https://www.flickr.com/photos/kaptainkobold/390454090• https://www.flickr.com/photos/nihonbunka/3353532166