SlideShare a Scribd company logo
Continuous Integration,
Delivery and Deployment
Eero Laukkanen
T-76.5613 - Software Testing and Quality Assurance P
20.11.2015
System Integration
In engineering, system integration is defined as the process of
bringing together the component subsystems and ensuring that
the subsystems function together as a system.
https://en.wikipedia.org/wiki/System_integration
23/11/15
2
Software Integration
•  System Integration
•  Change Integration: Merging
23/11/15
3
Possible integration conflict!
Integration Conflicts
•  Merge Conflicts
•  Detected by version control software
•  Semantic Conflicts
•  Detected by compiler, tests and code review
http://martinfowler.com/bliki/SemanticConflict.html
23/11/15
4
Regression Testing
The purpose of regression testing is to ensure that changes have
not introduced new faults.
Experience has shown that as software is changed, emergence of
new faults and/or re-emergence of old faults is quite common.
https://en.wikipedia.org/wiki/Regression_testing
23/11/15
5
History of Software Integration and
Regression Testing
•  Prehistory: Big Bang Integration
•  1996: Daily Build and Smoke Test (Steve McConnell)
•  2000: XP and Continuous Integration (Kent Beck)
•  2006: Continuous Integration (Martin Fowler)
•  2009: Continuous Deployment (Timothy Fitz)
•  2010: Continuous Delivery (Jez Humble & David Farley)
•  2012: Experiment System (Holmström Olsson et al.)
23/11/15
6
Big Bang Integration
•  System Integration
•  Develop subsystems independently, integrate when ready
•  Change Integration
•  Develop changes in branches, merge when ready
23/11/15
7
Big Bang Integration
“We entered a huge depressing warehouse stacked full with cubes.
I was told that this project had been in development for a couple of
years and was currently integrating, and had been integrating for
several months.
My guide told me that nobody really knew how long it would take to
finish integrating.
From this I learned a common story of software projects: integration
is a long and unpredictable process.”
http://www.martinfowler.com/articles/continuousIntegration.html
23/11/15
8
Big Bang Integration
•  Development is simple, because nothing is changing
•  Integration is complex and takes unpredictable time
23/11/15
9
23/11/15
10
1996: Daily Build and Smoke Test
•  Build and smoke test the whole software system daily
•  Fix broken builds
•  “Integrate… usually once every few days”
McConnell, S., 1996. Daily build and smoke test. IEEE software 143–144.
23/11/15
11
Daily Build and Smoke Test
23/11/15
12
time
code
developed
verified
Big Bang Daily
•  Minimizes integration and low quality risk
•  Easier defect diagnosis
•  Improved morale
risk
Daily Build and Smoke Test
•  Context of large systems
•  Tests allowed to take multiple hours
•  Timed builds
•  Smoke tests evolve when the system evolves
•  Dedicated roles take care of the build
23/11/15
13
Daily Build and Smoke Test
“The smoke test should be thorough enough that if the build
passes, you can assume that it is stable enough to be tested more
thoroughly.”
“The standard needs to set a quality level that’s strict enough to keep
showstopper defects out but lenient enough to disregard trivial
defects, an undue attention to which could paralyze progress.”
23/11/15
14
2000: Extreme Programming
•  Holistic software development
methodology
•  Continuous Integration, one of the many
practices
Beck, K., 2000. Extreme programming explained: embrace change. Addison-Wesley
Professional.
23/11/15
15
Extreme Programming and Continuous
Integration
“No code sits unintegrated for more than a couple of hours.”
“At the end of every development episode, the code is integrated and
all the tests must run at 100%.”
“You need a reasonably complete test suite that runs in a few
minutes.”
23/11/15
16
Continuous Integration
23/11/15
17
Develop
(a couple of hours)
Integration & Testing
(a few minutes)
Fix broken build
pass
fail
2006: Continuous Integration Extended
•  Single source repository
•  Integration machine
•  Fix broken builds immediately
•  Keep the build fast (10 minutes)
•  Test in a clone of the production environment
•  Automate deployment
http://www.martinfowler.com/articles/continuousIntegration.html
23/11/15
18
2009: Continuous Deployment
“The high level of our process is dead simple: Continuously
integrate (commit early and often). On commit automatically run all
tests. If the tests pass deploy to the cluster. If the deploy succeeds,
repeat.”
http://timothyfitz.com/2009/02/08/continuous-deployment/
http://timothyfitz.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/
23/11/15
19
Continuous Deployment
“So what magic happens in our test suite that allows us to skip
having a manual Quality Assurance step in our deploy process?
The magic is in the scope, scale and thoroughness. It’s a thousand
test files and counting. 4.4 machine hours of automated tests to be
exact.”
“Great test coverage is not enough. Continuous Deployment requires
much more than that. Continuous Deployment means running all
your tests, all the time. That means tests must be reliable.”
23/11/15
20
Continuous Deployment
•  Context of cloud systems
•  Problems in production will always happen
•  How to mitigate the problems?
•  Smaller releases have smaller scope and are easier to debug
•  Automated deployments allow fast fixing
•  Deploy to a subset of users first to mitigate problem scope
•  Production can be monitored and reverted automatically
23/11/15
21
Continuous Deployment
23/11/15
22
developed
verified
released
Frequent
verification
time
code
Frequent
release
risk
•  Minimizes release risk
•  Easier defect diagnosis
•  Improved morale
2010: Continuous Delivery
•  Every change should be releasable…
•  ...but not necessarily released
automatically
•  Allows human verification
Humble, J., Farley, D., 2010. Continuous Delivery: Reliable Software Releases through
Build, Test, and Deployment Automation. Addison-Wesley Professional.
23/11/15
23
Continuous Delivery
23/11/15
24
Deployment Pipeline
Continuous Delivery
23/11/15
25
Continuous Delivery
You’re doing continuous delivery when:
•  Your software is deployable throughout its lifecycle
•  Your team prioritizes keeping the software deployable over working
on new features
•  Anybody can get fast, automated feedback on the production
readiness of their systems any time somebody makes a change to
them
•  You can perform push-button deployments of any version of the
software to any environment on demand
http://martinfowler.com/bliki/ContinuousDelivery.html
23/11/15
26
2012: Experiment System
23/11/15
27
Traditional
Development
Agile R&D
Organization
Continuous
Integration
Continuous
Deployment
R&D as an
Experiment
System
Olsson, H.H., Alahyari, H., Bosch, J., 2012. Climbing the “Stairway to Heaven” – A Multiple-Case Study
Exploring Barriers in the Transition from Agile Development Towards Continuous Deployment of Software, in:
Proceedings of the 2012 38th Euromicro Conference on Software Engineering and Advanced Applications.
Washington, DC, USA, pp. 392–399.
Experiment System
“actual deployment of software functionality is seen as a way of
experimenting and testing what the customer needs”
•  Beyond regression testing and integration
•  Avoid software bloat
23/11/15
28
Delivery Activities
23/11/15
29
Develop ReleaseIntegrate QA
Waterfall
23/11/15
30
Develop ReleaseIntegrate QA
Continuous Integration
23/11/15
31
Develop + Integrate ReleaseQA
Continuous Delivery
23/11/15
32
Develop + Integrate + QA Release
Continuous Deployment
23/11/15
33
Develop + Integrate + QA + Release
Practitioner surveys
•  2015 State of DevOps Report
•  ~5000 respondents
•  2013 Continuous Delivery: A Maturity
Assessment Model
•  ~300 respondents
https://puppetlabs.com/2015-devops-report
http://info.thoughtworks.com/Continuous-Delivery-Maturity-Model.html
23/11/15
34
Survey: deployment frequency
23/11/15
35
Survey: deployment lead time
23/11/15
36
Survey: practices
23/11/15
37
http://info.thoughtworks.com/Continuous-Delivery-Maturity-Model.html
Survey: barriers
23/11/15
38
http://info.thoughtworks.com/Continuous-Delivery-Maturity-Model.html
Problems when adopting continuous
delivery
•  Build design
•  Complex build, inflexible build
•  Product design
•  Modularization, internal dependencies, database schema changes, unsuitable architecture
•  Integration
•  Large commits, broken build, merge conflicts, work blockage, long-running branches…
•  Testing
•  Ambiguous test result, flaky tests, untestable code, time-consuming testing, UI testing…
•  Release
•  Customer data preservation, documentation, feature discovery, marketing, more deployed bugs
•  Human & Organization
•  Lack of discipline, more pressure, lack of motivation, lack of experience, team coordination…
•  Resources
•  Effort, insufficient hardware resources, network latencies
Laukkanen, E., Itkonen, J., Lassenius, C., 2015. Problems, Causes and Solutions When Adopting Continuous Delivery - A Systematic
Literature Review. Manuscript in preparation.
23/11/15
39
Problems are connected
23/11/15
40
Laukkanen, E., Itkonen, J., Lassenius, C., 2015. Problems, Causes and Solutions When Adopting Continuous Delivery - A Systematic
Literature Review. Manuscript in preparation.
What to consider
•  Value of fast release cycle
•  Competitive market
•  Product ambiguity
•  Cost of fast release cycle
•  Competences, legacy code, infrastructure, maintenance
•  How often can you release
•  Cost of release
•  How long can quality assurance take
•  Cost of production bugs
23/11/15
41
Thanks!eero.laukkanen@aalto.fi

More Related Content

What's hot (20)

PPTX
Dev ops is more than CI+CD tools
Sudipta Lahiri
 
PDF
Understanding DevOps in simpler way with Continuous Delivery
Swapnil Jain
 
PDF
Bn1006 demo ppt devops
conline training
 
PDF
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
PDF
Metrics driven dev ops 2017
Jerry Tan
 
PPTX
Transforming Organizations with CI/CD
Cprime
 
PDF
Cd syd
Michael Neale
 
PDF
Introduction to DevOps
OCTO Technology
 
PDF
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
XebiaLabs
 
PPTX
My Dad Won't Buy Me DevOps
XebiaLabs
 
PPTX
Flusso Continuous Integration & Continuous Delivery
Joost van der Griendt
 
PDF
DevOps in 5 minutes
Jolyon Brown
 
PDF
Agile Strategies for Traditional Software Development Teams
TechWell
 
PDF
DevOps MythBusters
XebiaLabs
 
PDF
The business case for devops
Matthew Skelton
 
PPTX
Is Your DevOps Ready to Scale?
XebiaLabs
 
PDF
Ralph Jocham, effective agile - Scaled Scrum at Swiss Postal Services | Agile...
Agile Greece
 
PDF
Diving Deeper into DevOps Deployments
Jules Pierre-Louis
 
PDF
Continuous Delivery at Oracle Database Insights
Michael Medin
 
PDF
DevOps Deep Dive Webinar: Building a business case for agile and devops
Basis Technologies
 
Dev ops is more than CI+CD tools
Sudipta Lahiri
 
Understanding DevOps in simpler way with Continuous Delivery
Swapnil Jain
 
Bn1006 demo ppt devops
conline training
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
Metrics driven dev ops 2017
Jerry Tan
 
Transforming Organizations with CI/CD
Cprime
 
Introduction to DevOps
OCTO Technology
 
DevOps by the Numbers - How to Approach the Measurement and Metrics of Your C...
XebiaLabs
 
My Dad Won't Buy Me DevOps
XebiaLabs
 
Flusso Continuous Integration & Continuous Delivery
Joost van der Griendt
 
DevOps in 5 minutes
Jolyon Brown
 
Agile Strategies for Traditional Software Development Teams
TechWell
 
DevOps MythBusters
XebiaLabs
 
The business case for devops
Matthew Skelton
 
Is Your DevOps Ready to Scale?
XebiaLabs
 
Ralph Jocham, effective agile - Scaled Scrum at Swiss Postal Services | Agile...
Agile Greece
 
Diving Deeper into DevOps Deployments
Jules Pierre-Louis
 
Continuous Delivery at Oracle Database Insights
Michael Medin
 
DevOps Deep Dive Webinar: Building a business case for agile and devops
Basis Technologies
 

Viewers also liked (20)

PDF
Who will test your tests?
Yahya Poonawala
 
PDF
Overcoming the fear of deployments
Andrei Tognolo
 
PPTX
Pull requests and testers can be friends
Alan Parkinson
 
PDF
Continuous Visual Integration - RailsConf 2016 - Mike Fotinakis - Percy.io
Mike Fotinakis
 
PPTX
Entregas Contínuas com feature toggles
solon_aguiar
 
PDF
Refactoring for Software Design Smells - Tech Talk
Ganesh Samarthyam
 
PPTX
Why we used Feature Branching
Alan Parkinson
 
PPTX
Requirement and Test for Continuous Delivery - Customer in focus at Scania Co...
Jonatan Mossberg
 
PDF
Trunk Based Development (CBSoft 2011)
Wildtech
 
PDF
Feature Toggle Examples
Wildtech
 
PDF
Feature Flags Are Flawed: Let's Make Them Better
Stephen Young
 
PPTX
Strategies in continuous delivery
Aviran Mordo
 
PPTX
Feature Toggles
Devi Sridharan
 
PPTX
Feature Flagging to Reduce Risk in Database Migrations
LaunchDarkly
 
PDF
Feature flags to speed up & de risk development
LaunchDarkly
 
PDF
Test Automation
nikos batsios
 
PPTX
Feature Toggle XP Conference 2016 Kalpana Gulati
XP Conference India
 
PDF
Multiple projects, different goals, one thing in common: the codebase!
Carlos Lopes
 
PPTX
Waffle: A feature switch/flag/toggle application for Django
tobych
 
PDF
Merge hells - Feature Toggles to the rescue
Leena N
 
Who will test your tests?
Yahya Poonawala
 
Overcoming the fear of deployments
Andrei Tognolo
 
Pull requests and testers can be friends
Alan Parkinson
 
Continuous Visual Integration - RailsConf 2016 - Mike Fotinakis - Percy.io
Mike Fotinakis
 
Entregas Contínuas com feature toggles
solon_aguiar
 
Refactoring for Software Design Smells - Tech Talk
Ganesh Samarthyam
 
Why we used Feature Branching
Alan Parkinson
 
Requirement and Test for Continuous Delivery - Customer in focus at Scania Co...
Jonatan Mossberg
 
Trunk Based Development (CBSoft 2011)
Wildtech
 
Feature Toggle Examples
Wildtech
 
Feature Flags Are Flawed: Let's Make Them Better
Stephen Young
 
Strategies in continuous delivery
Aviran Mordo
 
Feature Toggles
Devi Sridharan
 
Feature Flagging to Reduce Risk in Database Migrations
LaunchDarkly
 
Feature flags to speed up & de risk development
LaunchDarkly
 
Test Automation
nikos batsios
 
Feature Toggle XP Conference 2016 Kalpana Gulati
XP Conference India
 
Multiple projects, different goals, one thing in common: the codebase!
Carlos Lopes
 
Waffle: A feature switch/flag/toggle application for Django
tobych
 
Merge hells - Feature Toggles to the rescue
Leena N
 
Ad

Similar to Continuous Integration, Delivery and Deployment (20)

PPTX
Continuous Integration and Delivery
Brandon Cornett
 
PPTX
Continuous integration, delivery & deployment
Martijn van der Kamp
 
PPTX
Continuous delivery made
mimmozzo_
 
PDF
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
PDF
Continuous, continuous, continuous
Michele Orselli
 
PDF
Flight East 2018 Presentation–Continuous Integration––An Overview
Synopsys Software Integrity Group
 
PDF
Usa prácticas de integración continua y sobrevive para luchar otro día.
Software Guru
 
PPTX
Tester’s considerations when moving towards successful CI/CD
Derk-Jan de Grood
 
PDF
Constinuous Integration
Gabriel Araujo
 
PDF
Continuous Everything
Soumyak Bhattacharyya
 
PDF
Continuous Delivery Distilled
Matt Callanan
 
PPTX
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Binary Studio
 
PPTX
Continuous delivery made possible
mimmozzo_
 
PPTX
Continuos Delivery
Andrés Callejas González
 
PPTX
What is Continuous Integration and Continuous Delivery
Sarah Elson
 
PDF
Continuous delivery @wcap 5-09-2013
David Funaro
 
PPT
CI and CD with Jenkins
Martin Málek
 
PDF
We thought we were doing continuous delivery and then...
Suzie Prince
 
PDF
Continuous Deployment (english)
Titas Norkūnas
 
DOCX
Continuous Integration vs Continuous Delivery vs Continuous Deployment
LGS, GBHS&IC, University Of South-Asia, TARA-Technologies
 
Continuous Integration and Delivery
Brandon Cornett
 
Continuous integration, delivery & deployment
Martijn van der Kamp
 
Continuous delivery made
mimmozzo_
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
RapidValue
 
Continuous, continuous, continuous
Michele Orselli
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Synopsys Software Integrity Group
 
Usa prácticas de integración continua y sobrevive para luchar otro día.
Software Guru
 
Tester’s considerations when moving towards successful CI/CD
Derk-Jan de Grood
 
Constinuous Integration
Gabriel Araujo
 
Continuous Everything
Soumyak Bhattacharyya
 
Continuous Delivery Distilled
Matt Callanan
 
Introduction to DevOps. Continuous Integration by Myroslav Dmytrus
Binary Studio
 
Continuous delivery made possible
mimmozzo_
 
Continuos Delivery
Andrés Callejas González
 
What is Continuous Integration and Continuous Delivery
Sarah Elson
 
Continuous delivery @wcap 5-09-2013
David Funaro
 
CI and CD with Jenkins
Martin Málek
 
We thought we were doing continuous delivery and then...
Suzie Prince
 
Continuous Deployment (english)
Titas Norkūnas
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
LGS, GBHS&IC, University Of South-Asia, TARA-Technologies
 
Ad

More from Eero Laukkanen (6)

PDF
Comparison of release engineering practices in a large mature company and a s...
Eero Laukkanen
 
PPTX
Towards continuous delivery by reducing the feature freeze period: a case study
Eero Laukkanen
 
PDF
Practical usage of OPC UA information models
Eero Laukkanen
 
PDF
Bottom-up Adoption of Continuous Delivery in a Stage-gate Managed Software Or...
Eero Laukkanen
 
PPTX
Stakeholder Perceptions of the Adoption of Continuous Integration – A Case Study
Eero Laukkanen
 
PDF
Build waiting time in continuous integration
Eero Laukkanen
 
Comparison of release engineering practices in a large mature company and a s...
Eero Laukkanen
 
Towards continuous delivery by reducing the feature freeze period: a case study
Eero Laukkanen
 
Practical usage of OPC UA information models
Eero Laukkanen
 
Bottom-up Adoption of Continuous Delivery in a Stage-gate Managed Software Or...
Eero Laukkanen
 
Stakeholder Perceptions of the Adoption of Continuous Integration – A Case Study
Eero Laukkanen
 
Build waiting time in continuous integration
Eero Laukkanen
 

Recently uploaded (20)

PPTX
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
PPTX
Presentation: Climate Citizenship Digital Education
Karl Donert
 
PDF
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
PPSX
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
PPTX
Latest Features in Odoo 18 - Odoo slides
Celine George
 
PPTX
How to Configure Access Rights of Manufacturing Orders in Odoo 18 Manufacturing
Celine George
 
PPTX
How to Manage Promotions in Odoo 18 Sales
Celine George
 
PDF
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
PDF
1, 2, 3… E MAIS UM CICLO CHEGA AO FIM!.pdf
Colégio Santa Teresinha
 
PPTX
CONVULSIVE DISORDERS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PPTX
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
PPTX
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
PDF
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
PPTX
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
PPTX
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
PPTX
ROLE OF ANTIOXIDANT IN EYE HEALTH MANAGEMENT.pptx
Subham Panja
 
PDF
Zoology (Animal Physiology) practical Manual
raviralanaresh2
 
PPTX
How to Configure Storno Accounting in Odoo 18 Accounting
Celine George
 
PPSX
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 
Unit 2 COMMERCIAL BANKING, Corporate banking.pptx
AnubalaSuresh1
 
Presentation: Climate Citizenship Digital Education
Karl Donert
 
ARAL_Orientation_Day-2-Sessions_ARAL-Readung ARAL-Mathematics ARAL-Sciencev2.pdf
JoelVilloso1
 
HEALTH ASSESSMENT (Community Health Nursing) - GNM 1st Year
Priyanshu Anand
 
Latest Features in Odoo 18 - Odoo slides
Celine George
 
How to Configure Access Rights of Manufacturing Orders in Odoo 18 Manufacturing
Celine George
 
How to Manage Promotions in Odoo 18 Sales
Celine George
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 - GLOBAL SUCCESS - CẢ NĂM - NĂM 2024 (VOCABULARY, ...
Nguyen Thanh Tu Collection
 
1, 2, 3… E MAIS UM CICLO CHEGA AO FIM!.pdf
Colégio Santa Teresinha
 
CONVULSIVE DISORDERS: NURSING MANAGEMENT.pptx
PRADEEP ABOTHU
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
HEAD INJURY IN CHILDREN: NURSING MANAGEMENGT.pptx
PRADEEP ABOTHU
 
Optimizing Cancer Screening With MCED Technologies: From Science to Practical...
i3 Health
 
ARAL-Orientation_Morning-Session_Day-11.pdf
JoelVilloso1
 
How to Create Rental Orders in Odoo 18 Rental
Celine George
 
Gall bladder, Small intestine and Large intestine.pptx
rekhapositivity
 
ROLE OF ANTIOXIDANT IN EYE HEALTH MANAGEMENT.pptx
Subham Panja
 
Zoology (Animal Physiology) practical Manual
raviralanaresh2
 
How to Configure Storno Accounting in Odoo 18 Accounting
Celine George
 
Health Planning in india - Unit 03 - CHN 2 - GNM 3RD YEAR.ppsx
Priyanshu Anand
 

Continuous Integration, Delivery and Deployment

  • 1. Continuous Integration, Delivery and Deployment Eero Laukkanen T-76.5613 - Software Testing and Quality Assurance P 20.11.2015
  • 2. System Integration In engineering, system integration is defined as the process of bringing together the component subsystems and ensuring that the subsystems function together as a system. https://en.wikipedia.org/wiki/System_integration 23/11/15 2
  • 3. Software Integration •  System Integration •  Change Integration: Merging 23/11/15 3 Possible integration conflict!
  • 4. Integration Conflicts •  Merge Conflicts •  Detected by version control software •  Semantic Conflicts •  Detected by compiler, tests and code review http://martinfowler.com/bliki/SemanticConflict.html 23/11/15 4
  • 5. Regression Testing The purpose of regression testing is to ensure that changes have not introduced new faults. Experience has shown that as software is changed, emergence of new faults and/or re-emergence of old faults is quite common. https://en.wikipedia.org/wiki/Regression_testing 23/11/15 5
  • 6. History of Software Integration and Regression Testing •  Prehistory: Big Bang Integration •  1996: Daily Build and Smoke Test (Steve McConnell) •  2000: XP and Continuous Integration (Kent Beck) •  2006: Continuous Integration (Martin Fowler) •  2009: Continuous Deployment (Timothy Fitz) •  2010: Continuous Delivery (Jez Humble & David Farley) •  2012: Experiment System (Holmström Olsson et al.) 23/11/15 6
  • 7. Big Bang Integration •  System Integration •  Develop subsystems independently, integrate when ready •  Change Integration •  Develop changes in branches, merge when ready 23/11/15 7
  • 8. Big Bang Integration “We entered a huge depressing warehouse stacked full with cubes. I was told that this project had been in development for a couple of years and was currently integrating, and had been integrating for several months. My guide told me that nobody really knew how long it would take to finish integrating. From this I learned a common story of software projects: integration is a long and unpredictable process.” http://www.martinfowler.com/articles/continuousIntegration.html 23/11/15 8
  • 9. Big Bang Integration •  Development is simple, because nothing is changing •  Integration is complex and takes unpredictable time 23/11/15 9
  • 11. 1996: Daily Build and Smoke Test •  Build and smoke test the whole software system daily •  Fix broken builds •  “Integrate… usually once every few days” McConnell, S., 1996. Daily build and smoke test. IEEE software 143–144. 23/11/15 11
  • 12. Daily Build and Smoke Test 23/11/15 12 time code developed verified Big Bang Daily •  Minimizes integration and low quality risk •  Easier defect diagnosis •  Improved morale risk
  • 13. Daily Build and Smoke Test •  Context of large systems •  Tests allowed to take multiple hours •  Timed builds •  Smoke tests evolve when the system evolves •  Dedicated roles take care of the build 23/11/15 13
  • 14. Daily Build and Smoke Test “The smoke test should be thorough enough that if the build passes, you can assume that it is stable enough to be tested more thoroughly.” “The standard needs to set a quality level that’s strict enough to keep showstopper defects out but lenient enough to disregard trivial defects, an undue attention to which could paralyze progress.” 23/11/15 14
  • 15. 2000: Extreme Programming •  Holistic software development methodology •  Continuous Integration, one of the many practices Beck, K., 2000. Extreme programming explained: embrace change. Addison-Wesley Professional. 23/11/15 15
  • 16. Extreme Programming and Continuous Integration “No code sits unintegrated for more than a couple of hours.” “At the end of every development episode, the code is integrated and all the tests must run at 100%.” “You need a reasonably complete test suite that runs in a few minutes.” 23/11/15 16
  • 17. Continuous Integration 23/11/15 17 Develop (a couple of hours) Integration & Testing (a few minutes) Fix broken build pass fail
  • 18. 2006: Continuous Integration Extended •  Single source repository •  Integration machine •  Fix broken builds immediately •  Keep the build fast (10 minutes) •  Test in a clone of the production environment •  Automate deployment http://www.martinfowler.com/articles/continuousIntegration.html 23/11/15 18
  • 19. 2009: Continuous Deployment “The high level of our process is dead simple: Continuously integrate (commit early and often). On commit automatically run all tests. If the tests pass deploy to the cluster. If the deploy succeeds, repeat.” http://timothyfitz.com/2009/02/08/continuous-deployment/ http://timothyfitz.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/ 23/11/15 19
  • 20. Continuous Deployment “So what magic happens in our test suite that allows us to skip having a manual Quality Assurance step in our deploy process? The magic is in the scope, scale and thoroughness. It’s a thousand test files and counting. 4.4 machine hours of automated tests to be exact.” “Great test coverage is not enough. Continuous Deployment requires much more than that. Continuous Deployment means running all your tests, all the time. That means tests must be reliable.” 23/11/15 20
  • 21. Continuous Deployment •  Context of cloud systems •  Problems in production will always happen •  How to mitigate the problems? •  Smaller releases have smaller scope and are easier to debug •  Automated deployments allow fast fixing •  Deploy to a subset of users first to mitigate problem scope •  Production can be monitored and reverted automatically 23/11/15 21
  • 23. 2010: Continuous Delivery •  Every change should be releasable… •  ...but not necessarily released automatically •  Allows human verification Humble, J., Farley, D., 2010. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional. 23/11/15 23
  • 26. Continuous Delivery You’re doing continuous delivery when: •  Your software is deployable throughout its lifecycle •  Your team prioritizes keeping the software deployable over working on new features •  Anybody can get fast, automated feedback on the production readiness of their systems any time somebody makes a change to them •  You can perform push-button deployments of any version of the software to any environment on demand http://martinfowler.com/bliki/ContinuousDelivery.html 23/11/15 26
  • 27. 2012: Experiment System 23/11/15 27 Traditional Development Agile R&D Organization Continuous Integration Continuous Deployment R&D as an Experiment System Olsson, H.H., Alahyari, H., Bosch, J., 2012. Climbing the “Stairway to Heaven” – A Multiple-Case Study Exploring Barriers in the Transition from Agile Development Towards Continuous Deployment of Software, in: Proceedings of the 2012 38th Euromicro Conference on Software Engineering and Advanced Applications. Washington, DC, USA, pp. 392–399.
  • 28. Experiment System “actual deployment of software functionality is seen as a way of experimenting and testing what the customer needs” •  Beyond regression testing and integration •  Avoid software bloat 23/11/15 28
  • 34. Practitioner surveys •  2015 State of DevOps Report •  ~5000 respondents •  2013 Continuous Delivery: A Maturity Assessment Model •  ~300 respondents https://puppetlabs.com/2015-devops-report http://info.thoughtworks.com/Continuous-Delivery-Maturity-Model.html 23/11/15 34
  • 36. Survey: deployment lead time 23/11/15 36
  • 39. Problems when adopting continuous delivery •  Build design •  Complex build, inflexible build •  Product design •  Modularization, internal dependencies, database schema changes, unsuitable architecture •  Integration •  Large commits, broken build, merge conflicts, work blockage, long-running branches… •  Testing •  Ambiguous test result, flaky tests, untestable code, time-consuming testing, UI testing… •  Release •  Customer data preservation, documentation, feature discovery, marketing, more deployed bugs •  Human & Organization •  Lack of discipline, more pressure, lack of motivation, lack of experience, team coordination… •  Resources •  Effort, insufficient hardware resources, network latencies Laukkanen, E., Itkonen, J., Lassenius, C., 2015. Problems, Causes and Solutions When Adopting Continuous Delivery - A Systematic Literature Review. Manuscript in preparation. 23/11/15 39
  • 40. Problems are connected 23/11/15 40 Laukkanen, E., Itkonen, J., Lassenius, C., 2015. Problems, Causes and Solutions When Adopting Continuous Delivery - A Systematic Literature Review. Manuscript in preparation.
  • 41. What to consider •  Value of fast release cycle •  Competitive market •  Product ambiguity •  Cost of fast release cycle •  Competences, legacy code, infrastructure, maintenance •  How often can you release •  Cost of release •  How long can quality assurance take •  Cost of production bugs 23/11/15 41