Waza 2012 Keynote - Idea to Delivery

Waza 2012 Keynote - Idea to Delivery

Fcafc7eab67d34d48b14f9d70bc05713?s=128

Adam Wiggins

January 11, 2012
Tweet

Transcript

  1. Idea to Delivery app development in 2012 Adam Wiggins Waza,

    January 2012 Friday, January 13, 2012
  2. Friday, January 13, 2012

  3. Technique Friday, January 13, 2012

  4. Friday, January 13, 2012

  5. Small sharp tools Friday, January 13, 2012

  6. Murray Gell-Mann Richard Feynman Friday, January 13, 2012

  7. The Feynman Problem-Solving Algorithm: “ Friday, January 13, 2012

  8. The Feynman Problem-Solving Algorithm: (1) Write down the problem. “

    Friday, January 13, 2012
  9. The Feynman Problem-Solving Algorithm: (1) Write down the problem. (2)

    Think very hard. “ Friday, January 13, 2012
  10. The Feynman Problem-Solving Algorithm: (1) Write down the problem. (2)

    Think very hard. (3) Write down the answer. “ http://quotations.tastefulwords.com/murray-gell-mann/the-feynman-problem-solving-algorithm/ ” - Murray Gell-Mann Friday, January 13, 2012
  11. Where can we look for new techniques? Friday, January 13,

    2012
  12. Zoom out Friday, January 13, 2012

  13. Idea to delivery Friday, January 13, 2012

  14. Friday, January 13, 2012

  15. Idea Implementation Deployment Delivery Friday, January 13, 2012

  16. Idea Implementation Deployment Delivery Programmer Friday, January 13, 2012

  17. programmer vs app developer Friday, January 13, 2012

  18. Breadth of responsibility Friday, January 13, 2012

  19. Idea Implementation Deployment Delivery Programmer Friday, January 13, 2012

  20. Idea Implementation Deployment Delivery App developer Friday, January 13, 2012

  21. 4 techniques from the last decade 6 techniques of the

    emerging future Friday, January 13, 2012
  22. 4 techniques from 2000 - 2010 Friday, January 13, 2012

  23. 1. Agile Friday, January 13, 2012

  24. 1. Agile 2. Software-as-a-service Friday, January 13, 2012

  25. 1. Agile 2. Software-as-a-service 3. Web frameworks Friday, January 13,

    2012
  26. 1. Agile 2. Software-as-a-service 3. Web frameworks Friday, January 13,

    2012
  27. 1. Agile 2. Software-as-a-service 3. Frameworks Friday, January 13, 2012

  28. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Virtualization Friday, January

    13, 2012
  29. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Virtualization Cloud Friday,

    January 13, 2012
  30. 1. Agile 2. Software-as-a-service 3. Frameworks 4. Cloud Friday, January

    13, 2012
  31. Idea Implementation Deployment Delivery Friday, January 13, 2012

  32. Idea Implementation Deployment Delivery Agile Framework Cloud SaaS Friday, January

    13, 2012
  33. Idea Implementation Deployment Delivery Agile Framework Cloud SaaS Friday, January

    13, 2012
  34. Idea Implementation Deployment Delivery Scrum Rails Heroku URL Friday, January

    13, 2012
  35. Agile + Frameworks + Cloud + SaaS Friday, January 13,

    2012
  36. The 2010s way for app development Friday, January 13, 2012

  37. 6 techniques for 2012 and beyond Friday, January 13, 2012

  38. Technique 1 Friday, January 13, 2012

  39. Technique 1 Deploy from day 1 Friday, January 13, 2012

  40. Idea Implementation Deployment Delivery Early development Friday, January 13, 2012

  41. Idea Implementation Deployment Delivery Early development Friday, January 13, 2012

  42. Idea Implementation Deployment Delivery Early development Friday, January 13, 2012

  43. http://ruby.railstutorial.org/ruby-on-rails-tutorial-book Friday, January 13, 2012

  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. 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. 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. Technique 1 Deploy from day 1 Friday, January 13, 2012

  48. Technique 2 Friday, January 13, 2012

  49. Technique 2 Continuous deployment Friday, January 13, 2012

  50. Deploy schedules Friday, January 13, 2012

  51. Deploy schedules Friday, January 13, 2012

  52. Deploy on demand Friday, January 13, 2012

  53. Friday, January 13, 2012

  54. Is continous deployment real? Friday, January 13, 2012

  55. 1.1 million deploys to Heroku in the last month Friday,

    January 13, 2012
  56. Technique 2 Continuous deployment Friday, January 13, 2012

  57. Technique 3 Friday, January 13, 2012

  58. Technique 3 Feature flags Friday, January 13, 2012

  59. http://code.flickr.com/blog/2009/12/02/flipping-out/ Friday, January 13, 2012

  60. Idea Implementation Deployment Delivery Friday, January 13, 2012

  61. Idea Implementation Deployment Delivery Decouple these Friday, January 13, 2012

  62. Friday, January 13, 2012

  63. Deployed, but inactive Friday, January 13, 2012

  64. Still the active path for all users Friday, January 13,

    2012
  65. Activated for some users Friday, January 13, 2012

  66. Activated for all users Friday, January 13, 2012

  67. Dead code, now safe to remove Friday, January 13, 2012

  68. A gradual & granular method for delivery Friday, January 13,

    2012
  69. Technique 3 Feature flags Friday, January 13, 2012

  70. {sidebar} Friday, January 13, 2012

  71. Friday, January 13, 2012

  72. Friday, January 13, 2012

  73. We see friction across 1000s of apps Friday, January 13,

    2012
  74. Trends Friday, January 13, 2012

  75. Principles Friday, January 13, 2012

  76. http://www.12factor.net/ Friday, January 13, 2012

  77. {continue!} Friday, January 13, 2012

  78. Technique 4 Friday, January 13, 2012

  79. Technique 4 Dev/prod parity Friday, January 13, 2012

  80. Development: SQLite Production: PostgreSQL Friday, January 13, 2012

  81. Development: SQLite Production: PostgreSQL Uh oh. Friday, January 13, 2012

  82. Development and production as similar as possible Friday, January 13,

    2012
  83. http://www.12factor.net/dev-prod-parity Friday, January 13, 2012

  84. Can we go further? Friday, January 13, 2012

  85. Virtual machines Friday, January 13, 2012

  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. Technique 4 Dev/prod parity Friday, January 13, 2012

  88. Technique 5 Friday, January 13, 2012

  89. Technique 5 Stay close to production Friday, January 13, 2012

  90. Developers do deploys Friday, January 13, 2012

  91. Helmuth von Moltke the Elder Friday, January 13, 2012

  92. No battle plan survives first contact with the enemy. ”

    “ - von Moltke Friday, January 13, 2012
  93. No code survives contact with production load. ” “ Friday,

    January 13, 2012
  94. Your code in development is theoretical Friday, January 13, 2012

  95. Your code in production is reality Friday, January 13, 2012

  96. Everyone has a plan 'till they get punched in the

    mouth. ” “ - Mike Tyson Friday, January 13, 2012
  97. Real user behavior will punch you in the mouth Friday,

    January 13, 2012
  98. Friday, January 13, 2012

  99. Sword-in-the-bag bug Friday, January 13, 2012

  100. Searching for the answer in my code Friday, January 13,

    2012
  101. Found the answer by observing production Friday, January 13, 2012

  102. Friday, January 13, 2012

  103. Technique 5 Stay close to production Friday, January 13, 2012

  104. Technique 6 Friday, January 13, 2012

  105. Technique 6 Logs as event streams Friday, January 13, 2012

  106. The pulse of your application Friday, January 13, 2012

  107. http://www.12factor.net/logs Friday, January 13, 2012

  108. Everything that your app is doing, right now Friday, January

    13, 2012
  109. Everything that your app has done, in the past Friday,

    January 13, 2012
  110. Log archival & search tools Friday, January 13, 2012

  111. Papertrail http://addons.heroku.com/papertrail Friday, January 13, 2012

  112. Friday, January 13, 2012

  113. Loggly http://addons.heroku.com/loggly Friday, January 13, 2012

  114. Friday, January 13, 2012

  115. Ivory-tower thinking Friday, January 13, 2012

  116. More evidence, less speculation Friday, January 13, 2012

  117. The evidence is in your logs Friday, January 13, 2012

  118. Technique 6 Logs as event streams Friday, January 13, 2012

  119. Recap Friday, January 13, 2012

  120. Deploy from day 1 early and often avoids launch-day headaches

    Friday, January 13, 2012
  121. Continuous deployment deploy on days 2, 3, and n Friday,

    January 13, 2012
  122. Feature flags decouple deployment & delivery Friday, January 13, 2012

  123. Dev/prod parity avoid those little incompatibilities Friday, January 13, 2012

  124. Stay close to production reality is production load and real

    user behavior Friday, January 13, 2012
  125. Logs as event streams an evidence-based approach Friday, January 13,

    2012
  126. Call to action Friday, January 13, 2012

  127. ? Are you a programmer or an app developer Friday,

    January 13, 2012
  128. Come out of our programmer cave Friday, January 13, 2012

  129. Connect with our code in the wild Friday, January 13,

    2012
  130. Connect with our users Friday, January 13, 2012

  131. Take responsibility for idea to delivery Idea Delivery Friday, January

    13, 2012
  132. Fin. Adam Wiggins @hirodusk http://adam.heroku.com/ Friday, January 13, 2012