so you want to rewrite that

Download So You Want to Rewrite That

Post on 30-Jun-2015

262 views

Category:

Engineering

2 download

Embed Size (px)

DESCRIPTION

Lessons learned on rewriting a large technology stack from Drupal to Java + Ruby Video here: http://www.youtube.com/watch?v=PhYUvtifJXk

TRANSCRIPT

  • 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!renttherunway.com/careers My blog: whilefalse.blogspot.com 52. 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