Waza keynote: Idea to Delivery

5,095 views

Published on

Published in: Technology

Waza keynote: Idea to Delivery

  1. 1. Idea to Delivery app development in 2012 Adam Wiggins Waza, January 2012Friday, January 13, 2012
  2. 2. Friday, January 13, 2012
  3. 3. TechniqueFriday, January 13, 2012
  4. 4. Friday, January 13, 2012
  5. 5. Small sharp toolsFriday, January 13, 2012
  6. 6. Richard Feynman Murray Gell-MannFriday, January 13, 2012
  7. 7. “ The Feynman Problem-Solving Algorithm:Friday, January 13, 2012
  8. 8. “ The Feynman Problem-Solving Algorithm: (1) Write down the problem.Friday, January 13, 2012
  9. 9. “ The Feynman Problem-Solving Algorithm: (1) Write down the problem. (2) Think very hard.Friday, January 13, 2012
  10. 10. “ The Feynman Problem-Solving Algorithm: (1) Write down the problem. (2) Think very hard. ” (3) Write down the answer. - Murray Gell-Mann http://quotations.tastefulwords.com/murray-gell-mann/the-feynman-problem-solving-algorithm/Friday, January 13, 2012
  11. 11. Where can we look for new techniques?Friday, January 13, 2012
  12. 12. Zoom outFriday, January 13, 2012
  13. 13. Idea to deliveryFriday, January 13, 2012
  14. 14. Friday, January 13, 2012
  15. 15. Idea Implementation Deployment DeliveryFriday, January 13, 2012
  16. 16. Programmer Idea Implementation Deployment DeliveryFriday, January 13, 2012
  17. 17. programmer vs app developerFriday, January 13, 2012
  18. 18. Breadth of responsibilityFriday, January 13, 2012
  19. 19. Programmer Idea Implementation Deployment DeliveryFriday, January 13, 2012
  20. 20. App developer Idea Implementation Deployment DeliveryFriday, January 13, 2012
  21. 21. 4 techniques from the last decade 6 techniques of the emerging futureFriday, January 13, 2012
  22. 22. 4 techniques from 2000 - 2010Friday, January 13, 2012
  23. 23. 1. AgileFriday, January 13, 2012
  24. 24. 1. Agile 2. Software-as-a-serviceFriday, January 13, 2012
  25. 25. 1. Agile 2. Software-as-a-service 3. Web frameworksFriday, January 13, 2012
  26. 26. 1. Agile 2. Software-as-a-service 3. Web frameworksFriday, January 13, 2012
  27. 27. 1. Agile 2. Software-as-a-service 3. FrameworksFriday, January 13, 2012
  28. 28. 1. Agile 2. Software-as-a-service 3. Frameworks 4. VirtualizationFriday, January 13, 2012
  29. 29. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Virtualization CloudFriday, January 13, 2012
  30. 30. 1. Agile 2. Software-as-a-service 3. Frameworks 4. CloudFriday, January 13, 2012
  31. 31. Idea Implementation Deployment DeliveryFriday, January 13, 2012
  32. 32. Agile Framework Cloud SaaS Idea Implementation Deployment DeliveryFriday, January 13, 2012
  33. 33. Agile Framework Cloud SaaS Idea Implementation Deployment DeliveryFriday, January 13, 2012
  34. 34. Scrum Rails Heroku URL Idea Implementation Deployment DeliveryFriday, January 13, 2012
  35. 35. Agile + Frameworks + Cloud + SaaSFriday, January 13, 2012
  36. 36. The 2010s way for app developmentFriday, January 13, 2012
  37. 37. 6 techniques for 2012 and beyondFriday, January 13, 2012
  38. 38. Technique 1Friday, January 13, 2012
  39. 39. Technique 1 Deploy from day 1Friday, January 13, 2012
  40. 40. Early development Idea Implementation Deployment DeliveryFriday, January 13, 2012
  41. 41. Early development Idea Implementation Deployment DeliveryFriday, January 13, 2012
  42. 42. Early development Idea Implementation Deployment DeliveryFriday, January 13, 2012
  43. 43. http://ruby.railstutorial.org/ruby-on-rails-tutorial-bookFriday, January 13, 2012
  44. 44. “ Even at this early stage, we’re already going to deploy our (still- empty) Rails application to production. This step is optional, but deploying early and often allows us to catch any deployment problems early in our development cycle.Friday, January 13, 2012
  45. 45. The alternative—deploying only after laborious effort sealed away in a development environment— often leads to terrible integration headaches when launch time comes.Friday, January 13, 2012
  46. 46. The alternative—deploying only after laborious effort sealed away in a development environment— often leads to terrible integration headaches when launch time comes.Friday, January 13, 2012
  47. 47. Technique 1 Deploy from day 1Friday, January 13, 2012
  48. 48. Technique 2Friday, January 13, 2012
  49. 49. Technique 2 Continuous deploymentFriday, January 13, 2012
  50. 50. Deploy schedulesFriday, January 13, 2012
  51. 51. Deploy schedulesFriday, January 13, 2012
  52. 52. Deploy on demandFriday, January 13, 2012
  53. 53. Friday, January 13, 2012
  54. 54. Is continous deployment real?Friday, January 13, 2012
  55. 55. 1.1 million deploys to Heroku in the last monthFriday, January 13, 2012
  56. 56. Technique 2 Continuous deploymentFriday, January 13, 2012
  57. 57. Technique 3Friday, January 13, 2012
  58. 58. Technique 3 Feature flagsFriday, January 13, 2012
  59. 59. http://code.flickr.com/blog/2009/12/02/flipping-out/Friday, January 13, 2012
  60. 60. Idea Implementation Deployment DeliveryFriday, January 13, 2012
  61. 61. Decouple these Idea Implementation Deployment DeliveryFriday, January 13, 2012
  62. 62. Friday, January 13, 2012
  63. 63. Deployed, but inactiveFriday, January 13, 2012
  64. 64. Still the active path for all usersFriday, January 13, 2012
  65. 65. Activated for some usersFriday, January 13, 2012
  66. 66. Activated for all usersFriday, January 13, 2012
  67. 67. Dead code, now safe to removeFriday, January 13, 2012
  68. 68. A gradual & granular method for deliveryFriday, January 13, 2012
  69. 69. Technique 3 Feature flagsFriday, January 13, 2012
  70. 70. {sidebar}Friday, January 13, 2012
  71. 71. Friday, January 13, 2012
  72. 72. Friday, January 13, 2012
  73. 73. We see friction across 1000s of appsFriday, January 13, 2012
  74. 74. TrendsFriday, January 13, 2012
  75. 75. PrinciplesFriday, January 13, 2012
  76. 76. http://www.12factor.net/Friday, January 13, 2012
  77. 77. {continue!}Friday, January 13, 2012
  78. 78. Technique 4Friday, January 13, 2012
  79. 79. Technique 4 Dev/prod parityFriday, January 13, 2012
  80. 80. Development: SQLite Production: PostgreSQLFriday, January 13, 2012
  81. 81. Development: SQLite Uh oh. Production: PostgreSQLFriday, January 13, 2012
  82. 82. Development and production as similar as possibleFriday, January 13, 2012
  83. 83. http://www.12factor.net/dev-prod-parityFriday, January 13, 2012
  84. 84. Can we go further?Friday, January 13, 2012
  85. 85. Virtual machinesFriday, January 13, 2012
  86. 86. http://railscasts.com/episodes/292-virtual-machines- with-vagrant?view=asciicast http://unfoldthat.com/2011/05/06/using-vagrant-for- your-django-development.html http://walkah.net/blog/why-vagrantFriday, January 13, 2012
  87. 87. Technique 4 Dev/prod parityFriday, January 13, 2012
  88. 88. Technique 5Friday, January 13, 2012
  89. 89. Technique 5 Stay close to productionFriday, January 13, 2012
  90. 90. Developers do deploysFriday, January 13, 2012
  91. 91. Helmuth von Moltke the ElderFriday, January 13, 2012
  92. 92. “ No battle plan survives first contact with the enemy.Friday, January 13, 2012 - von Moltke ”
  93. 93. “ No code survives contact with production load.Friday, January 13, 2012 ”
  94. 94. Your code in development is theoreticalFriday, January 13, 2012
  95. 95. Your code in production is realityFriday, January 13, 2012
  96. 96. “ Everyone has a plan till they get punched in the mouth.Friday, January 13, 2012 - Mike Tyson ”
  97. 97. Real user behavior will punch you in the mouthFriday, January 13, 2012
  98. 98. Friday, January 13, 2012
  99. 99. Sword-in-the-bag bugFriday, January 13, 2012
  100. 100. Searching for the answer in my codeFriday, January 13, 2012
  101. 101. Found the answer by observing productionFriday, January 13, 2012
  102. 102. Friday, January 13, 2012
  103. 103. Technique 5 Stay close to productionFriday, January 13, 2012
  104. 104. Technique 6Friday, January 13, 2012
  105. 105. Technique 6 Logs as event streamsFriday, January 13, 2012
  106. 106. The pulse of your applicationFriday, January 13, 2012
  107. 107. http://www.12factor.net/logsFriday, January 13, 2012
  108. 108. Everything that your app is doing, right nowFriday, January 13, 2012
  109. 109. Everything that your app has done, in the pastFriday, January 13, 2012
  110. 110. Log archival & search toolsFriday, January 13, 2012
  111. 111. Papertrail http://addons.heroku.com/papertrailFriday, January 13, 2012
  112. 112. Friday, January 13, 2012
  113. 113. Loggly http://addons.heroku.com/logglyFriday, January 13, 2012
  114. 114. Friday, January 13, 2012
  115. 115. Ivory-tower thinkingFriday, January 13, 2012
  116. 116. More evidence, less speculationFriday, January 13, 2012
  117. 117. The evidence is in your logsFriday, January 13, 2012
  118. 118. Technique 6 Logs as event streamsFriday, January 13, 2012
  119. 119. RecapFriday, January 13, 2012
  120. 120. Deploy from day 1 early and often avoids launch-day headachesFriday, January 13, 2012
  121. 121. Continuous deployment deploy on days 2, 3, and nFriday, January 13, 2012
  122. 122. Feature flags decouple deployment & deliveryFriday, January 13, 2012
  123. 123. Dev/prod parity avoid those little incompatibilitiesFriday, January 13, 2012
  124. 124. Stay close to production reality is production load and real user behaviorFriday, January 13, 2012
  125. 125. Logs as event streams an evidence-based approachFriday, January 13, 2012
  126. 126. Call to actionFriday, January 13, 2012
  127. 127. ? Are you a programmer or an app developerFriday, January 13, 2012
  128. 128. Come out of our programmer caveFriday, January 13, 2012
  129. 129. Connect with our code in the wildFriday, January 13, 2012
  130. 130. Connect with our usersFriday, January 13, 2012
  131. 131. Take responsibility for idea to delivery Idea DeliveryFriday, January 13, 2012
  132. 132. Fin. Adam Wiggins @hirodusk http://adam.heroku.com/Friday, January 13, 2012

×