Continuous Integration Clinic Agile 2008 – Toronto Maciej Zawadzki
Maciej Zawadzki Co-founder and President of Urbancode, Inc. Worked on three generations of Anthill/AnthillPro. Speaker at SD East, SD West, and the No Fluff Just Stuff Conference series. Co-author of  Professional Struts Applications
Agenda CI Then and Now Why the change?  Common implementations Where are we headed? Lab
Original CI What is Continuous Integration: Development practice under which developers commit code often, and Each commit should not degrade code quality Lets Analyze This in terms of: Audience Traceability Artifacts
CI Today Build code and give rapid feedback to development Deploy product into test environment Execute multiple suites of tests Release final product to production Traceability through every stage Build Deploy Release Test
Build Automation Silo
Test Automation Silo Testing commonly requires the following steps: Prepare test environment (e.g. provision VMs, application servers) Deploy build artifacts and test clients Run tests Capture results Tear-down Test Orchestration automates those steps to save time and prevent mistakes Concurrent Test Workflow Run  Test Clients Start Process Prepare Gather Results Deploy Test Clients Deploy Artifacts
Deployment Automation Silo Multiple Deployment Environments  – It is not enough to have an automated deployment system that deploys to a single environment.  There are complications with supporting multiple environments: Environment specific configuration Environment specific deployment topology
Agenda CI Then and Now Why the change? Common implementations Where are we headed? Lab
Slippery Slope of Quality Determination CI presents two goals: Quality determination Fast feedback Karl Popper: No amount of positive outcomes of testing can confirm a scientific theory; but a single failed test can disprove the theory Therefore it is not sufficient to run your unit tests but not your system, performance, load, etc. tests.
CI moving from “invention” to “innovation” Invention proven to work in the laboratory Innovation it can be replicated  reliably  on a  meaningful scale  at  practical costs . For an idea to move from invention to innovation requires an ensemble of critical components. Peter M. Senge,  The Fifth Discipline
Example of invention vs innovation Invention: Wright brothers invented flight Innovation: DC-3 launched commercial air travel Variable-pitch propeller Retractable landing gear Monocoque construction Radial air-cooled engine Wing flaps (One year earlier, Boeing 247 was missing the flaps)
Is CI the Innovation for Automation? CI Brings together the following “critical” factors Automation Self-service Transparency
Agenda CI Then and Now Why the change? Common implementations Where are we headed? Lab
Builds Centric – Staged Builds Everything is a build Different “types” of builds execute on different schedules CI build every 15 mins Longer Test build every 4 hrs Regression test build every night Etc.
Process Centric Build types are decomposed into processes Processes are executed sequentially Traceability between processes is problematic
Lifecycle Centric First class representation of “flow” through lifecycle stages Traceability built-in Efficient decomposition of build types into non-overlapping processes
Agenda CI Then and Now Why is this happening? Common implementations Where are we headed? Lab
Release Management Forrester Research defines Release Management as the definition, support, and enforcement of processes for preparing software for deployment to production.
Integration for Release Management
The Convergence of Agile and Governance
Agenda CI Then and Now Why is this happening? Common implementations Where are we headed? Lab

Continuous Integration Clinic

  • 1.
    Continuous Integration ClinicAgile 2008 – Toronto Maciej Zawadzki
  • 2.
    Maciej Zawadzki Co-founderand President of Urbancode, Inc. Worked on three generations of Anthill/AnthillPro. Speaker at SD East, SD West, and the No Fluff Just Stuff Conference series. Co-author of Professional Struts Applications
  • 3.
    Agenda CI Thenand Now Why the change? Common implementations Where are we headed? Lab
  • 4.
    Original CI Whatis Continuous Integration: Development practice under which developers commit code often, and Each commit should not degrade code quality Lets Analyze This in terms of: Audience Traceability Artifacts
  • 5.
    CI Today Buildcode and give rapid feedback to development Deploy product into test environment Execute multiple suites of tests Release final product to production Traceability through every stage Build Deploy Release Test
  • 6.
  • 7.
    Test Automation SiloTesting commonly requires the following steps: Prepare test environment (e.g. provision VMs, application servers) Deploy build artifacts and test clients Run tests Capture results Tear-down Test Orchestration automates those steps to save time and prevent mistakes Concurrent Test Workflow Run Test Clients Start Process Prepare Gather Results Deploy Test Clients Deploy Artifacts
  • 8.
    Deployment Automation SiloMultiple Deployment Environments – It is not enough to have an automated deployment system that deploys to a single environment. There are complications with supporting multiple environments: Environment specific configuration Environment specific deployment topology
  • 9.
    Agenda CI Thenand Now Why the change? Common implementations Where are we headed? Lab
  • 10.
    Slippery Slope ofQuality Determination CI presents two goals: Quality determination Fast feedback Karl Popper: No amount of positive outcomes of testing can confirm a scientific theory; but a single failed test can disprove the theory Therefore it is not sufficient to run your unit tests but not your system, performance, load, etc. tests.
  • 11.
    CI moving from“invention” to “innovation” Invention proven to work in the laboratory Innovation it can be replicated reliably on a meaningful scale at practical costs . For an idea to move from invention to innovation requires an ensemble of critical components. Peter M. Senge, The Fifth Discipline
  • 12.
    Example of inventionvs innovation Invention: Wright brothers invented flight Innovation: DC-3 launched commercial air travel Variable-pitch propeller Retractable landing gear Monocoque construction Radial air-cooled engine Wing flaps (One year earlier, Boeing 247 was missing the flaps)
  • 13.
    Is CI theInnovation for Automation? CI Brings together the following “critical” factors Automation Self-service Transparency
  • 14.
    Agenda CI Thenand Now Why the change? Common implementations Where are we headed? Lab
  • 15.
    Builds Centric –Staged Builds Everything is a build Different “types” of builds execute on different schedules CI build every 15 mins Longer Test build every 4 hrs Regression test build every night Etc.
  • 16.
    Process Centric Buildtypes are decomposed into processes Processes are executed sequentially Traceability between processes is problematic
  • 17.
    Lifecycle Centric Firstclass representation of “flow” through lifecycle stages Traceability built-in Efficient decomposition of build types into non-overlapping processes
  • 18.
    Agenda CI Thenand Now Why is this happening? Common implementations Where are we headed? Lab
  • 19.
    Release Management ForresterResearch defines Release Management as the definition, support, and enforcement of processes for preparing software for deployment to production.
  • 20.
  • 21.
    The Convergence ofAgile and Governance
  • 22.
    Agenda CI Thenand Now Why is this happening? Common implementations Where are we headed? Lab