Successfully reported this slideshow.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Waza keynote: Idea to Delivery

  1. 1. Idea to Delivery app development in 2012 Adam Wiggins Waza, January 2012 Friday, January 13, 2012
  2. 2. Friday, January 13, 2012
  3. 3. Technique Friday, January 13, 2012
  4. 4. Friday, January 13, 2012
  5. 5. Small sharp tools Friday, January 13, 2012
  6. 6. Richard Feynman Murray Gell-Mann Friday, 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 out Friday, January 13, 2012
  13. 13. Idea to delivery Friday, January 13, 2012
  14. 14. Friday, January 13, 2012
  15. 15. Idea Implementation Deployment Delivery Friday, January 13, 2012
  16. 16. Programmer Idea Implementation Deployment Delivery Friday, January 13, 2012
  17. 17. programmer vs app developer Friday, January 13, 2012
  18. 18. Breadth of responsibility Friday, January 13, 2012
  19. 19. Programmer Idea Implementation Deployment Delivery Friday, January 13, 2012
  20. 20. App developer Idea Implementation Deployment Delivery Friday, January 13, 2012
  21. 21. 4 techniques from the last decade 6 techniques of the emerging future Friday, January 13, 2012
  22. 22. 4 techniques from 2000 - 2010 Friday, January 13, 2012
  23. 23. 1. Agile Friday, January 13, 2012
  24. 24. 1. Agile 2. Software-as-a-service Friday, January 13, 2012
  25. 25. 1. Agile 2. Software-as-a-service 3. Web frameworks Friday, January 13, 2012
  26. 26. 1. Agile 2. Software-as-a-service 3. Web frameworks Friday, January 13, 2012
  27. 27. 1. Agile 2. Software-as-a-service 3. Frameworks Friday, January 13, 2012
  28. 28. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Virtualization Friday, January 13, 2012
  29. 29. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Virtualization Cloud Friday, January 13, 2012
  30. 30. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Cloud Friday, January 13, 2012
  31. 31. Idea Implementation Deployment Delivery Friday, January 13, 2012
  32. 32. Agile Framework Cloud SaaS Idea Implementation Deployment Delivery Friday, January 13, 2012
  33. 33. Agile Framework Cloud SaaS Idea Implementation Deployment Delivery Friday, January 13, 2012
  34. 34. Scrum Rails Heroku URL Idea Implementation Deployment Delivery Friday, January 13, 2012
  35. 35. Agile + Frameworks + Cloud + SaaS Friday, January 13, 2012
  36. 36. The 2010s way for app development Friday, January 13, 2012
  37. 37. 6 techniques for 2012 and beyond Friday, January 13, 2012
  38. 38. Technique 1 Friday, January 13, 2012
  39. 39. Technique 1 Deploy from day 1 Friday, January 13, 2012
  40. 40. Early development Idea Implementation Deployment Delivery Friday, January 13, 2012
  41. 41. Early development Idea Implementation Deployment Delivery Friday, January 13, 2012
  42. 42. Early development Idea Implementation Deployment Delivery Friday, January 13, 2012
  43. 43. http://ruby.railstutorial.org/ruby-on-rails-tutorial-book Friday, 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 1 Friday, January 13, 2012
  48. 48. Technique 2 Friday, January 13, 2012
  49. 49. Technique 2 Continuous deployment Friday, January 13, 2012
  50. 50. Deploy schedules Friday, January 13, 2012
  51. 51. Deploy schedules Friday, January 13, 2012
  52. 52. Deploy on demand Friday, 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 month Friday, January 13, 2012
  56. 56. Technique 2 Continuous deployment Friday, January 13, 2012
  57. 57. Technique 3 Friday, January 13, 2012
  58. 58. Technique 3 Feature flags Friday, January 13, 2012
  59. 59. http://code.flickr.com/blog/2009/12/02/flipping-out/ Friday, January 13, 2012
  60. 60. Idea Implementation Deployment Delivery Friday, January 13, 2012
  61. 61. Decouple these Idea Implementation Deployment Delivery Friday, January 13, 2012
  62. 62. Friday, January 13, 2012
  63. 63. Deployed, but inactive Friday, January 13, 2012
  64. 64. Still the active path for all users Friday, January 13, 2012
  65. 65. Activated for some users Friday, January 13, 2012
  66. 66. Activated for all users Friday, January 13, 2012
  67. 67. Dead code, now safe to remove Friday, January 13, 2012
  68. 68. A gradual & granular method for delivery Friday, January 13, 2012
  69. 69. Technique 3 Feature flags Friday, 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 apps Friday, January 13, 2012
  74. 74. Trends Friday, January 13, 2012
  75. 75. Principles Friday, January 13, 2012
  76. 76. http://www.12factor.net/ Friday, January 13, 2012
  77. 77. {continue!} Friday, January 13, 2012
  78. 78. Technique 4 Friday, January 13, 2012
  79. 79. Technique 4 Dev/prod parity Friday, January 13, 2012
  80. 80. Development: SQLite Production: PostgreSQL Friday, January 13, 2012
  81. 81. Development: SQLite Uh oh. Production: PostgreSQL Friday, January 13, 2012
  82. 82. Development and production as similar as possible Friday, January 13, 2012
  83. 83. http://www.12factor.net/dev-prod-parity Friday, January 13, 2012
  84. 84. Can we go further? Friday, January 13, 2012
  85. 85. Virtual machines Friday, 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-vagrant Friday, January 13, 2012
  87. 87. Technique 4 Dev/prod parity Friday, January 13, 2012
  88. 88. Technique 5 Friday, January 13, 2012
  89. 89. Technique 5 Stay close to production Friday, January 13, 2012
  90. 90. Developers do deploys Friday, January 13, 2012
  91. 91. Helmuth von Moltke the Elder Friday, 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 theoretical Friday, January 13, 2012
  95. 95. Your code in production is reality Friday, 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 mouth Friday, January 13, 2012
  98. 98. Friday, January 13, 2012
  99. 99. Sword-in-the-bag bug Friday, January 13, 2012
  100. 100. Searching for the answer in my code Friday, January 13, 2012
  101. 101. Found the answer by observing production Friday, January 13, 2012
  102. 102. Friday, January 13, 2012
  103. 103. Technique 5 Stay close to production Friday, January 13, 2012
  104. 104. Technique 6 Friday, January 13, 2012
  105. 105. Technique 6 Logs as event streams Friday, January 13, 2012
  106. 106. The pulse of your application Friday, January 13, 2012
  107. 107. http://www.12factor.net/logs Friday, January 13, 2012
  108. 108. Everything that your app is doing, right now Friday, January 13, 2012
  109. 109. Everything that your app has done, in the past Friday, January 13, 2012
  110. 110. Log archival & search tools Friday, January 13, 2012
  111. 111. Papertrail http://addons.heroku.com/papertrail Friday, January 13, 2012
  112. 112. Friday, January 13, 2012
  113. 113. Loggly http://addons.heroku.com/loggly Friday, January 13, 2012
  114. 114. Friday, January 13, 2012
  115. 115. Ivory-tower thinking Friday, January 13, 2012
  116. 116. More evidence, less speculation Friday, January 13, 2012
  117. 117. The evidence is in your logs Friday, January 13, 2012
  118. 118. Technique 6 Logs as event streams Friday, January 13, 2012
  119. 119. Recap Friday, January 13, 2012
  120. 120. Deploy from day 1 early and often avoids launch-day headaches Friday, January 13, 2012
  121. 121. Continuous deployment deploy on days 2, 3, and n Friday, January 13, 2012
  122. 122. Feature flags decouple deployment & delivery Friday, January 13, 2012
  123. 123. Dev/prod parity avoid those little incompatibilities Friday, January 13, 2012
  124. 124. Stay close to production reality is production load and real user behavior Friday, January 13, 2012
  125. 125. Logs as event streams an evidence-based approach Friday, January 13, 2012
  126. 126. Call to action Friday, January 13, 2012
  127. 127. ? Are you a programmer or an app developer Friday, January 13, 2012
  128. 128. Come out of our programmer cave Friday, January 13, 2012
  129. 129. Connect with our code in the wild Friday, January 13, 2012
  130. 130. Connect with our users Friday, January 13, 2012
  131. 131. Take responsibility for idea to delivery Idea Delivery Friday, January 13, 2012
  132. 132. Fin. Adam Wiggins @hirodusk http://adam.heroku.com/ Friday, January 13, 2012

×