Continuous Integration Then & Now

19
Continuous Integration Then and Now Agile 2009 – Chicago Maciej Zawadzki

description

Continuous Integration has come a long way. From starting out as a fringe school of throught to the mainstream practice it is today, CI has had an enormous impact on the way build and development teams operate. In this presentation, we look at how CI has evolved, and where its future lies.

Transcript of Continuous Integration Then & Now

Page 1: Continuous Integration Then & Now

Continuous IntegrationThen and Now

Agile 2009 – ChicagoMaciej Zawadzki

Page 2: Continuous Integration Then & Now

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

Page 3: Continuous Integration Then & Now

Agenda

• CI Then and Now

• Why the change?

• Common implementations

• Where are we headed?

Page 4: Continuous Integration Then & Now

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

Page 5: Continuous Integration Then & Now

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 ReleaseTest

Page 6: Continuous Integration Then & Now

Agenda

• CI Then and Now

• Why the change?

• Common implementations

• Where are we headed?

Page 7: Continuous Integration Then & Now

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.

Page 8: Continuous Integration Then & Now

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

Page 9: Continuous Integration Then & Now

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)

Page 10: Continuous Integration Then & Now

Is CI the Innovation for Automation?

• CI Brings together the following “critical” factors– Automation

– Self-service

– Transparency

Page 11: Continuous Integration Then & Now

Agenda

• CI Then and Now

• Why the change?

• Common implementations

• Where are we headed?

Page 12: Continuous Integration Then & Now

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.

Page 13: Continuous Integration Then & Now

Process Centric

• Build types are decomposed

into processes

• Processes are executed

sequentially

• Traceability between

processes is problematic

Page 14: Continuous Integration Then & Now

Lifecycle Centric

• First class representation

of “flow” through lifecycle

stages

• Traceability built-in

• Efficient decomposition of

build types into non-

overlapping processes

Page 15: Continuous Integration Then & Now

Agenda

• CI Then and Now

• Why is this happening?

• Common implementations

• Where are we headed?

Page 16: Continuous Integration Then & Now

Release Management

• Forrester Research defines Release Management as the definition, support, and enforcement of processes for preparing software for deployment to production.

Page 17: Continuous Integration Then & Now

Integration for Release Management

Page 18: Continuous Integration Then & Now

Convergence of CI and Release Management

Page 19: Continuous Integration Then & Now

Agenda

• CI Then and Now

• Why is this happening?

• Common implementations

• Where are we headed?