Value driven continuous delivery
January 2012
http://www.infojobs.net/gabri
el-prat-masramon.prf
PRESENTATION
                    OUTLINE
1. Fear   of change      5. Continuous   delivery
2. Agile                 6. Zero*   downtime
3. Scrum                 7. Canary    releasing
4. Frequent   releases   8. Q&A
FEAR OF
CHANGE
RELEASE
                        FREQUENTLY
Increase adaptability          Reduce risk

     Plan     Develop




                        Risk
      User feedback
                                  Release size
RELEASE
                                       FREQUENTLY




http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change
AGILE
            MOTIVATION
WATERFALL




AGILE
ITERATIVE
DEVELOPMENT
CUSTOMER
            1   COLLABORATION
                over contract negotiation
MANIFESTO
AGILE
                INDIVIDUALS and
            2   INTERACTIONS
                over processes and tools
                RESPONDING to
            3   CHANGE
                over following a plan
                WORKING
            4   SOFTWARE
                over full documentation
1    DELIVER SOFTWARE
                2    EMBRACE CHANGE
                     SHOW OFTEN
AGILE           3
   PRINCIPLES   4    WORK TOGETHER
                5    PROVIDE ENVIRONMENT
                6    CHAT FACE-to-FACE
                7    MINIMIZE WASTE
                8    MAINTAIN PACE
                9    SEEK TECH EXCELLENCE
                10   LOVE SIMPLICITY
                11   SELF-ORGANIZE TEAMS
                12   IMPROVE CONTINUOUSLY
TIME BOXED
                         PLANNING
 Fixed
                     Scope          Time            Cost

                                           Agile!
                   Traditional
Estimated
            Cost                 Time      Scope


From a plan driven approach to a value driven one.
SCRUM
DEFINITION
             iterative, incremental methodology for
             project management often seen in agile
             software development.
SCRUM
                   ROLES
    PRODUCT OWNER
1
    the voice of the customer

    TEAM MEMBER
2
    deliver the product

    SCRUM MASTER
3
    facilitator, mentor, coach

    EXTERNAL EXPERTS
4
    consultants, assessors, auditors
SCRUM
                                               TEAMS
                             Team
Prod. Owner

                                ?"        ?"
               Tech Lead    Test engineers     Int. designer
                                                                Visual Interface
Scrum Master                                                       designer

                  #"       #"        #"             <>#
                       Developers              Front-end dev.
    ?*#
 QA Lead
In this beginning stage the
                                              MYSCRUM?
                                At this point the student    Now the student isn't
student follows the             begins to branch out. With   learning from other
teachings of one master         the basic practices          people, but from his own
precisely. He concentrates      working he now starts to     practice. He creates his
on how to do the                learn the underlying         own approaches and
task, without worrying too      principles and theory        adapts what he's learned
much about the underlying       behind the technique. He     to his own particular
theory. If there are multiple   also starts learning from    circumstances.
variations on how to do         other masters and
the task, he concentrates       integrates that learning
on just the one way his         into his practice.
master teaches him.




  shu                              ha                           ri
DECISION
MAKING
“AGILE”
                                             ANTI-PATTERN

                        “Agile” team
                                                     Centralized QA                   IT Operations



Customer
           Iteration   1 2 3 4 5                                    The “last mile”


                       http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf
RELEASE
FREQUENTLY

But wait, what does
frequently mean to
       you?
RELEASE
                         FREQUENTLY
Number of days with
releases




1 release                           3,5 releases
every 2                             every week!
weeks



               IJ 2010    IJ 2012
CONTINUOUS
                DELIVERY

Constant flow of new features into production
CONTINUOUS
                   DELIVERY

Flickr deploy ten times each
day...
Why don’t you?
              http://code.flickr.com/
         IJ 2010      IJ 2012       Flickr
PRODUCTION-READY
                     SOFTWARE
Fast, automated feedback on the
production readyness of your
application every time there is a
change – to code, infrastructure, or
configuration
         http://channel9.msdn.com/Events/ALM-Summit/2011/Continuous-
                                    Delivery
PRINCIPLES
 create a repeatable,                    build       quality in
 reliable process for
 releasing software                       done        means released

 automate    almost                      everybody   is
 everything                                 responsible for delivery

 keep everything in                      continuous
 version control                            improvement (kaizen)
             http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf
Source control Perforce




     CI server Jenkins




 One-step build Ant Maven
                              Continuous delivery pillars




Automated testing JUnit QTP
DEPLOYMENT
                     PIPELINE




http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf
ZERO* DOWNTIME
                RELEASE UPDATES
To upgrade from 1.1 to 2.0

  Release 1.1    Release 1.2     Release 1.3   Release 2.0   Release 2.1
  Initial        Make 1.1        Migrate db                  Clean 1.1
                 app             to 2.0                      compat DB
                 compatible
                 with 2.0 DB




                               DB Changes Release updated! DB Changes
CANARY
RELEASING




http://tools.google.com/dlpage/chromesxs
CANARY
           RELEASING

Same old                         Bleeding
features                       edge features




           http://www.flickr.com/photos/hanalita/5868250
CANARY
                         RELEASING
Automatic rollbacks

A/B or multivariate testing

Demographic segmentation
THANK YOU!
  QUESTIONS?



  http://www.infojobs.net/gabri
  el-prat-masramon.prf


http://www.slideshare.net/gabriprat/
  value-driven-continuous-delivery

Value driven continuous delivery

  • 1.
    Value driven continuousdelivery January 2012
  • 2.
  • 3.
    PRESENTATION OUTLINE 1. Fear of change 5. Continuous delivery 2. Agile 6. Zero* downtime 3. Scrum 7. Canary releasing 4. Frequent releases 8. Q&A
  • 4.
  • 6.
    RELEASE FREQUENTLY Increase adaptability Reduce risk Plan Develop Risk User feedback Release size
  • 7.
    RELEASE FREQUENTLY http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change
  • 8.
    AGILE MOTIVATION WATERFALL AGILE
  • 9.
  • 10.
    CUSTOMER 1 COLLABORATION over contract negotiation MANIFESTO AGILE INDIVIDUALS and 2 INTERACTIONS over processes and tools RESPONDING to 3 CHANGE over following a plan WORKING 4 SOFTWARE over full documentation
  • 11.
    1 DELIVER SOFTWARE 2 EMBRACE CHANGE SHOW OFTEN AGILE 3 PRINCIPLES 4 WORK TOGETHER 5 PROVIDE ENVIRONMENT 6 CHAT FACE-to-FACE 7 MINIMIZE WASTE 8 MAINTAIN PACE 9 SEEK TECH EXCELLENCE 10 LOVE SIMPLICITY 11 SELF-ORGANIZE TEAMS 12 IMPROVE CONTINUOUSLY
  • 12.
    TIME BOXED PLANNING Fixed Scope Time Cost Agile! Traditional Estimated Cost Time Scope From a plan driven approach to a value driven one.
  • 13.
    SCRUM DEFINITION iterative, incremental methodology for project management often seen in agile software development.
  • 14.
    SCRUM ROLES PRODUCT OWNER 1 the voice of the customer TEAM MEMBER 2 deliver the product SCRUM MASTER 3 facilitator, mentor, coach EXTERNAL EXPERTS 4 consultants, assessors, auditors
  • 15.
    SCRUM TEAMS Team Prod. Owner ?" ?" Tech Lead Test engineers Int. designer Visual Interface Scrum Master designer #" #" #" <># Developers Front-end dev. ?*# QA Lead
  • 16.
    In this beginningstage the MYSCRUM? At this point the student Now the student isn't student follows the begins to branch out. With learning from other teachings of one master the basic practices people, but from his own precisely. He concentrates working he now starts to practice. He creates his on how to do the learn the underlying own approaches and task, without worrying too principles and theory adapts what he's learned much about the underlying behind the technique. He to his own particular theory. If there are multiple also starts learning from circumstances. variations on how to do other masters and the task, he concentrates integrates that learning on just the one way his into his practice. master teaches him. shu ha ri
  • 17.
  • 18.
    “AGILE” ANTI-PATTERN “Agile” team Centralized QA IT Operations Customer Iteration 1 2 3 4 5 The “last mile” http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf
  • 19.
    RELEASE FREQUENTLY But wait, whatdoes frequently mean to you?
  • 20.
    RELEASE FREQUENTLY Number of days with releases 1 release 3,5 releases every 2 every week! weeks IJ 2010 IJ 2012
  • 21.
    CONTINUOUS DELIVERY Constant flow of new features into production
  • 22.
    CONTINUOUS DELIVERY Flickr deploy ten times each day... Why don’t you? http://code.flickr.com/ IJ 2010 IJ 2012 Flickr
  • 23.
    PRODUCTION-READY SOFTWARE Fast, automated feedback on the production readyness of your application every time there is a change – to code, infrastructure, or configuration http://channel9.msdn.com/Events/ALM-Summit/2011/Continuous- Delivery
  • 24.
    PRINCIPLES  create arepeatable,  build quality in reliable process for releasing software  done means released  automate almost  everybody is everything responsible for delivery  keep everything in  continuous version control improvement (kaizen) http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf
  • 25.
    Source control Perforce CI server Jenkins One-step build Ant Maven Continuous delivery pillars Automated testing JUnit QTP
  • 26.
    DEPLOYMENT PIPELINE http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf
  • 27.
    ZERO* DOWNTIME RELEASE UPDATES To upgrade from 1.1 to 2.0 Release 1.1 Release 1.2 Release 1.3 Release 2.0 Release 2.1 Initial Make 1.1 Migrate db Clean 1.1 app to 2.0 compat DB compatible with 2.0 DB DB Changes Release updated! DB Changes
  • 28.
  • 29.
    CANARY RELEASING Same old Bleeding features edge features http://www.flickr.com/photos/hanalita/5868250
  • 30.
    CANARY RELEASING Automatic rollbacks A/B or multivariate testing Demographic segmentation
  • 31.
    THANK YOU! QUESTIONS? http://www.infojobs.net/gabri el-prat-masramon.prf http://www.slideshare.net/gabriprat/ value-driven-continuous-delivery