Your SlideShare is downloading. ×
  • Like
Evolutionary  Architecture at Work
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Evolutionary Architecture at Work

  • 2,113 views
Published

 

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
2,113
On SlideShare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
30
Comments
2
Likes
12

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Monday, April 22, 13
  • 2. EvolutionaryArchitecture at Workphil calçado@pcalcadohttp://philcalcado.comMonday, April 22, 13
  • 3. 2011: Phil decidesto move to BerlinMonday, April 22, 13
  • 4. Monday, April 22, 13
  • 5. Monday, April 22, 13
  • 6. Monday, April 22, 13
  • 7. ~ 180 million users / month> 10 hours of audiouploaded every minuteMonday, April 22, 13
  • 8. Organisation challengesMonday, April 22, 13
  • 9. SoundCloud wasborn on RailsIt allowed us to iterate realfast and keepcode quality up(-ish).Monday, April 22, 13
  • 10. ControllerActiveRecordModelDatabaseRails is simple.Monday, April 22, 13
  • 11. ControllerActiveRecordModelDatabaseRails is simple.But it leads you tomonolithsSoundCloud.comMonday, April 22, 13
  • 12. Conway’s Law kicks inMonolithic applicationslead to monolithic teamsControllerActiveRecordModelDatabaseSoundCloud.com?Monday, April 22, 13
  • 13. Big teams == overheadWho is doing what?Monday, April 22, 13
  • 14. Big teams == overheadStand-ups become themain communicationchannelMonday, April 22, 13
  • 15. Big teams == overheadMassive backlog requiresconstant grooming andmanagementMonday, April 22, 13
  • 16. Big teams == overheadIn the end you’ll need a fulltime “Iteration Manager”Monday, April 22, 13
  • 17. technical challengesMonday, April 22, 13
  • 18. There is one systemSoundCloud.comMonday, April 22, 13
  • 19. There is one systemnot really.Sounds& SetsSocialGraphPremiumFeatures SearchActivityStream...Monday, April 22, 13
  • 20. Multiple subsystemsRuby/Rails are a horribleGolden HammersMonday, April 22, 13
  • 21. Multiple subsystemsThe stability of the systemis pretty much the sameas the less stablesubsystem’sMonday, April 22, 13
  • 22. We need to splitMonday, April 22, 13
  • 23. ControllerActiveRecordModelDatabaseSoundCloud.com?Monday, April 22, 13
  • 24. Sounds& Sets SocialGraph?PremiumFeaturesMonday, April 22, 13
  • 25. How?Have an enterpriseArchitect?Monday, April 22, 13
  • 26. How?Create an architectureSteering Group?Monday, April 22, 13
  • 27. What aboutEveryone is an architect?Monday, April 22, 13
  • 28. Enabling the teamsMonday, April 22, 13
  • 29. Step 1)Stabilise the legacy appMonday, April 22, 13
  • 30. Idiomatic Rails is funnyMonday, April 22, 13
  • 31. Understanding theRails mindset:http://bit.ly/not-a-virtueMonday, April 22, 13
  • 32. Understanding theRails mindset:i do not think it meanswhat you think itmeanshttp://bit.ly/not-a-virtueMonday, April 22, 13
  • 33. Stopgap SolutionMonday, April 22, 13
  • 34. Stopgap SolutionMonday, April 22, 13
  • 35. Stopgap Solution(A lot like java circa 2005)Monday, April 22, 13
  • 36. Step 2)Create a common protocolMonday, April 22, 13
  • 37. Sounds& SetsSocialGraphPremiumFeatures SearchActivityStream...Monday, April 22, 13
  • 38. Sounds& SetsSocialGraphPremiumFeatures SearchActivityStream...Ruby ClojureGo HaskellScalaRubyMonday, April 22, 13
  • 39. We want to try thingsbefore making a callMonday, April 22, 13
  • 40. Don’t publish rules,publish guidelinesMonday, April 22, 13
  • 41. Step 3)Minimise non-technicaloverheadMonday, April 22, 13
  • 42. SocialGraph?Monday, April 22, 13
  • 43. Step 4)Minimise technicaloverheadMonday, April 22, 13
  • 44. Pushing a micro-service toproduction should be easyMonday, April 22, 13
  • 45. Monday, April 22, 13
  • 46. Monday, April 22, 13
  • 47. Monday, April 22, 13
  • 48. Monday, April 22, 13
  • 49. People solving the sameproblems over and overMonday, April 22, 13
  • 50. Monday, April 22, 13
  • 51. (with the same code...)Monday, April 22, 13
  • 52. Monday, April 22, 13
  • 53. Monday, April 22, 13
  • 54. Current statusMonday, April 22, 13
  • 55. About 6 application teams,3 engineers + 1 productpersonMonday, April 22, 13
  • 56. Micro-services in Clojure,Scala and (J)RubyMonday, April 22, 13
  • 57. Pull Request lead timereduced from 3 to 1 weekMonday, April 22, 13
  • 58. Still afraid of deletingold codeMonday, April 22, 13
  • 59. We have “black hole”teamsMonday, April 22, 13
  • 60. There is a lot ofinfrastructure to buildMonday, April 22, 13
  • 61. In 4 slidesMonday, April 22, 13
  • 62. Step 1)Stabilise the legacy appDon’t stop the world, butdon’t let the code basedeteriorate even moreMonday, April 22, 13
  • 63. Step 2)Create a common protocolGuidelines and examples,not rulesMonday, April 22, 13
  • 64. Minimise non-technicaloverheadSmall teamsdon’t need... a lotMonday, April 22, 13
  • 65. Step 4)Minimise technicaloverheadOnly try tore-use after you useMonday, April 22, 13
  • 66. phil calçadohttp://philcalcado.com@pcalcadowww.soundcloud.comMonday, April 22, 13