SlideShare une entreprise Scribd logo
1  sur  132
Télécharger pour lire hors ligne
Idea to
                                Delivery
                      app development in 2012

                    Adam Wiggins
                    Waza, January 2012

Friday, January 13, 2012
Friday, January 13, 2012
Technique




Friday, January 13, 2012
Friday, January 13, 2012
Small sharp tools




Friday, January 13, 2012
Richard Feynman



               Murray Gell-Mann




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




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




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




Friday, January 13, 2012
“                     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
Where can we
                           look for new
                           techniques?


Friday, January 13, 2012
Zoom out




Friday, January 13, 2012
Idea to delivery




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




Friday, January 13, 2012
Programmer




         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
programmer
                           vs
              app developer

Friday, January 13, 2012
Breadth of
                           responsibility



Friday, January 13, 2012
Programmer




         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
App developer




         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
4 techniques
                from the last decade

                6 techniques
                of the emerging future


Friday, January 13, 2012
4 techniques
                           from 2000 - 2010



Friday, January 13, 2012
1. Agile




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




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




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




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




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



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



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



Friday, January 13, 2012
Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
Agile              Framework        Cloud       SaaS



         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
Agile              Framework        Cloud       SaaS



         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
Scrum                     Rails         Heroku      URL



         Idea              Implementation   Deployment   Delivery




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



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



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



Friday, January 13, 2012
Technique 1




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



Friday, January 13, 2012
Early development


         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
Early development


         Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
Early development


         Idea              Implementation   Deployment   Delivery




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




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



Friday, January 13, 2012
Technique 2




Friday, January 13, 2012
Technique 2
                 Continuous
                 deployment


Friday, January 13, 2012
Deploy schedules



Friday, January 13, 2012
Deploy schedules



Friday, January 13, 2012
Deploy on demand



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



Friday, January 13, 2012
1.1 million deploys
                    to Heroku in the
                       last month


Friday, January 13, 2012
Technique 2
                 Continuous
                 deployment


Friday, January 13, 2012
Technique 3




Friday, January 13, 2012
Technique 3
                 Feature flags



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




Friday, January 13, 2012
Idea              Implementation   Deployment   Delivery




Friday, January 13, 2012
Decouple these


         Idea              Implementation   Deployment   Delivery




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


Friday, January 13, 2012
Still the active
             path for all users
Friday, January 13, 2012
Activated for
                            some users


Friday, January 13, 2012
Activated for
                                all users


Friday, January 13, 2012
Dead code, now
             safe to remove
Friday, January 13, 2012
A
                 gradual &
                 granular
                 method for delivery


Friday, January 13, 2012
Technique 3
                 Feature flags



Friday, January 13, 2012
{sidebar}



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

Friday, January 13, 2012
Trends



Friday, January 13, 2012
Principles



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




Friday, January 13, 2012
{continue!}



Friday, January 13, 2012
Technique 4




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



Friday, January 13, 2012
Development:
       SQLite

                             Production:
                           PostgreSQL

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

Friday, January 13, 2012
Development and
                       production as
                     similar as possible


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




Friday, January 13, 2012
Can we go further?




Friday, January 13, 2012
Virtual machines




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



Friday, January 13, 2012
Technique 5




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


Friday, January 13, 2012
Developers do
                             deploys


Friday, January 13, 2012
Helmuth von Moltke the Elder
Friday, January 13, 2012
“                         No battle plan survives
                           first contact with the
                           enemy.




Friday, January 13, 2012
                                   - von Moltke

                                               ”
“                         No code survives contact
                           with production load.




Friday, January 13, 2012
                                              ”
Your code in
                 development is
                 theoretical

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

Friday, January 13, 2012
“                         Everyone has a plan 'till
                           they get punched in the
                           mouth.




Friday, January 13, 2012
                                 - Mike Tyson

                                                ”
Real user
              behavior
              will punch you in the
              mouth



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


Friday, January 13, 2012
Searching for the
                   answer in my code


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

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


Friday, January 13, 2012
Technique 6




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


Friday, January 13, 2012
The pulse of your
                 application




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




Friday, January 13, 2012
Everything that
                 your app is doing,
                 right now



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



Friday, January 13, 2012
Log archival &
                            search tools



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




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




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




Friday, January 13, 2012
More evidence,
                 less speculation



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



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


Friday, January 13, 2012
Recap



Friday, January 13, 2012
Deploy from day 1
                           early and often avoids
                           launch-day headaches




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



Friday, January 13, 2012
Feature flags

                                       decouple
                           deployment & delivery


Friday, January 13, 2012
Dev/prod parity

                            avoid those little
                           incompatibilities


Friday, January 13, 2012
Stay close to
            production
                           reality is production load
                              and real user behavior


Friday, January 13, 2012
Logs as event
            streams
                           an evidence-based
                                   approach


Friday, January 13, 2012
Call to action



Friday, January 13, 2012
?
             Are you a
             programmer
             or an
             app developer
Friday, January 13, 2012
Come out of our
                      programmer cave



Friday, January 13, 2012
Connect with our
                        code in the wild



Friday, January 13, 2012
Connect with our
                            users



Friday, January 13, 2012
Take responsibility
                 for idea to delivery


         Idea                      Delivery



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

Friday, January 13, 2012

Contenu connexe

Similaire à Waza keynote: Idea to Delivery

Multilingual solutions florian loretan
Multilingual solutions florian loretanMultilingual solutions florian loretan
Multilingual solutions florian loretan
drupalconf
 
3 reasons to contribute to drupal florian loretan (eng)
3 reasons to contribute to drupal florian loretan (eng)3 reasons to contribute to drupal florian loretan (eng)
3 reasons to contribute to drupal florian loretan (eng)
drupalconf
 
StartupWeekend slide deck
StartupWeekend slide deckStartupWeekend slide deck
StartupWeekend slide deck
jdaquino
 
13th december 2012
13th december 201213th december 2012
13th december 2012
Garden City
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
Pablo Godel
 
Going independent - making it as a freelance web professional - TriNUD RDU Co...
Going independent - making it as a freelance web professional - TriNUD RDU Co...Going independent - making it as a freelance web professional - TriNUD RDU Co...
Going independent - making it as a freelance web professional - TriNUD RDU Co...
Michael Kimsal
 

Similaire à Waza keynote: Idea to Delivery (20)

PhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JSPhoneGap: Building Mobile Applications with HTML/JS
PhoneGap: Building Mobile Applications with HTML/JS
 
Content for change
Content for changeContent for change
Content for change
 
The W3C and the web design ecosystem
The W3C and the web design ecosystemThe W3C and the web design ecosystem
The W3C and the web design ecosystem
 
Multilingual solutions florian loretan
Multilingual solutions florian loretanMultilingual solutions florian loretan
Multilingual solutions florian loretan
 
Ruby CI with Jenkins
Ruby CI with JenkinsRuby CI with Jenkins
Ruby CI with Jenkins
 
Video for good? Good For Video AIM 2012
Video for good?  Good For Video AIM 2012Video for good?  Good For Video AIM 2012
Video for good? Good For Video AIM 2012
 
Why Speed Matters
Why Speed MattersWhy Speed Matters
Why Speed Matters
 
3 reasons to contribute to drupal florian loretan (eng)
3 reasons to contribute to drupal florian loretan (eng)3 reasons to contribute to drupal florian loretan (eng)
3 reasons to contribute to drupal florian loretan (eng)
 
Webinar ipadtipsforadmin
Webinar ipadtipsforadminWebinar ipadtipsforadmin
Webinar ipadtipsforadmin
 
Mercurial DVCS
Mercurial DVCSMercurial DVCS
Mercurial DVCS
 
StartupWeekend slide deck
StartupWeekend slide deckStartupWeekend slide deck
StartupWeekend slide deck
 
Migrations for Java
Migrations for JavaMigrations for Java
Migrations for Java
 
13th december 2012
13th december 201213th december 2012
13th december 2012
 
Webinar ipadtipsforadmin2
Webinar ipadtipsforadmin2Webinar ipadtipsforadmin2
Webinar ipadtipsforadmin2
 
PFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP AppsPFCongres 2012 - Rock Solid Deployment of PHP Apps
PFCongres 2012 - Rock Solid Deployment of PHP Apps
 
Developer Tools State of the Union
Developer Tools State of the UnionDeveloper Tools State of the Union
Developer Tools State of the Union
 
Continous delivery
Continous deliveryContinous delivery
Continous delivery
 
How Atlassian Makes Its Wiki Sticky
How Atlassian Makes Its Wiki StickyHow Atlassian Makes Its Wiki Sticky
How Atlassian Makes Its Wiki Sticky
 
Going independent - making it as a freelance web professional - TriNUD RDU Co...
Going independent - making it as a freelance web professional - TriNUD RDU Co...Going independent - making it as a freelance web professional - TriNUD RDU Co...
Going independent - making it as a freelance web professional - TriNUD RDU Co...
 
Shaklee System for Online Prospecting and Training - YFP Intro
Shaklee System for Online Prospecting and Training - YFP IntroShaklee System for Online Prospecting and Training - YFP Intro
Shaklee System for Online Prospecting and Training - YFP Intro
 

Plus de Adam Wiggins (6)

Cloud Services
Cloud ServicesCloud Services
Cloud Services
 
Rails Metal, Rack, and Sinatra
Rails Metal, Rack, and SinatraRails Metal, Rack, and Sinatra
Rails Metal, Rack, and Sinatra
 
Ruby Isn't Just About Rails
Ruby Isn't Just About RailsRuby Isn't Just About Rails
Ruby Isn't Just About Rails
 
Lightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClientLightweight Webservices with Sinatra and RestClient
Lightweight Webservices with Sinatra and RestClient
 
Nginx: Accelerate Rails, HTTP Tricks
Nginx: Accelerate Rails, HTTP TricksNginx: Accelerate Rails, HTTP Tricks
Nginx: Accelerate Rails, HTTP Tricks
 
rush, the Ruby shell and Unix integration library
rush, the Ruby shell and Unix integration libraryrush, the Ruby shell and Unix integration library
rush, the Ruby shell and Unix integration library
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

Waza keynote: Idea to Delivery