so you want to rewrite that

Download So You Want to Rewrite That

Post on 30-Jun-2015




2 download

Embed Size (px)


Lessons learned on rewriting a large technology stack from Drupal to Java + Ruby Video here:


  • 1. So You Want To Rewrite ThatLessons from a successful rearchitectingCamille Fournier@skamilleGOTO Chicago 2014

2. We were failing to support ourgrowth, our customers, and ourtechnology 3. Everythings not fine. 4. A rewrite will solve all my problems! 5. Theres no such thing as asuccessful rewriteThe sustainable rewrite looks like firefightingCliff Moon, Boundary 6. THE PATH TO REWRITING ISFRAUGHT WITH DANGER 7. Youre failing now. 8. You cant scale. 9. You cant meet customer demand. 10. Youre crushedunder theweight of yourtechnical debt. 11. It is easy to fail on the unknownunknowns 12. How well do you know what the code is doing now?This doesnt look THAT big 13. What about the data? 14. How does the team need to change tomake this successful? 15. The sirens will tempt you offcourse. 16. Counting on abig bangrelease. 17. Choosing the wrong software. 18. Choosing the wrong software. 19. WHAT ARE THE PRINCIPLES TOMAKE THIS SUCCESSFUL? 20. Change as little as possible. 21. Rewrite but keep the language thesame. 22. Change only one thing at once (salamislicing) 23. You need to sell this. 24. Sell it to yourself first. 25. Sell it to the business with Big ScaryGraphs. 26. Sell it to your team. 27. You need a detailed definition ofdone. 28. A testsuite thatacts as asafetyharness. 29. What is the quality were measuring toimprove? 30. What is our data migration plan? 31. WHAT DOES THE OUTCOME LOOKLIKE? 32. Your culture will change in theprocess. 33. Long-time employees may feelthreatened. 34. Workflows will have to change. 35. The structure of your team changes.CTOArchitectDev Dev Dev Dev Dev Dev 36. The structure of your team changes.CTODirectorFrontEndDev DevQA BackEndDev DevDirectorFrontend QA BackendVP OpsDevOpsDevOps DevOpsSyseng 37. A new architecture brings newchallenges. 38. Tempting to make v2 everything youever wanted! 39. Overengineering can happen toprocess, too. 40. Our RunwayHomeGridProduct DetailUserCheckoutStatic Asset CDN OriginDrupalstatic assetssinatra views / erbs< Sinatra::BaseRtR API clientsHerokuEngine YardRackspace 41. Youre never really done. 42. You create a system that will lastlonger than its predecessor. 43. You have the flexibility to build thethings you will need. 44. You have standards around thatflexibility to mitigate complexity. 45. Build with the needs of a larger orsmaller team in mind. 46. Everything isnt fine. 47. Its time to rewrite. 48. Sell it, change as little as possible,and know what done looks like. 49. Prepare for a brave new world. 50. Create a sustainable future. 51. Thanks! @skamille Rent the Runway is hiring! My blog: 52. credits Zombie mob: Fail whale: Rob Friedman / playerx / @px National Ocean Service Image Gallery