SlideShare a Scribd company logo
Continuous Integration
Finding problems soonest
Your Software Is Your
House
• Except, in a complex software project you have many of the
same type of contractor and they don't communicate well
• For example, if your house were a software project:
• Different masons don't make the foundation connect,
creating fissures
• Different carpenters choose different materials for the
subfloor, leading to weak points
• Different roofers don’t connect joists the same
But I did my part right!
Some Background
• Source code -> Binary code
• Source code is what people write
• Binary code is what machines run
• Compilers turn source code into binary code
• Developers do this all of the time (It’s not the 1970s)
• Source control holds source code
• It tells you who did what and when (accountability)
• Provides points in time for milestones
• Is key to good Configuration Management
• Build servers detect changes in source control and the turn the
source code into binary code, run tests, perform inspection, etc. and
produce builds
Continuous Integration
Goals
• Find the problem when it is introduced
• On every change (continuous):
• Is it intended to meet a requirement (is it gold plating)?
• Can anyone compile it (avoid "magic laptops" or "islands of
knowledge")?
• Did the new code break existing functionality (does it pass
automated testing)?
• Does it contain known bugs (is the foundation bad)?
• Does it contain known security flaws (is it easily hackable)?
• Can others work on the code (does it conform to coding
standards)?
• Does it actually meet the requirement (does it pass functional
testing)?
• Is deployment reproducible? Can it install?
Typical CI Process
Source
Control
Management
Requirements
System
Build
System
3. compiles code
4. scans code
5. runs unit tests
6. creates install package
2. verifies requirement
traceability
7. deploys install package to target environment
8. runs integration/regression tests
9. reports progress of each step
1. checks
in code
If a Build Fails
• If any of the evaluations fail, mark the build as FAILED!
• No finger pointing! You know who did it!
• Immediately, the developers:
• Fix the code, or
• Roll back the code to a known good state
• If you don’t do either, then developers continue building
on a bad foundation
If a Build Succeeds
You may have a candidate for a releasable
product!
Requirements for CI
• requirements and architecture are well understood
• target environment is known and available
• an automated deployment mechanism exists
• someone to coordinate and champion process
• automated tests actually exist and are correct
• transaction-based source control system
• developers respond to bad builds quickly
• the systems who support CI can interoperate with one another
• everyone does their job, it’s not a replacement for other good
processes
Concerns with CI
• CI requires personnel to maintain and develop
• Sometimes failures are due to the environment
• It takes time and effort to remove these issues
• CI can not perform review tasks which require people:
• User testing
• Documentation review
• Some builds take a long time
• Use a build engineer to help the architect break up the
software into smaller modules
• Run some scans/tests nightly rather than on every change
Summary
• CI is all about detecting the problem as it is
inserted into the product
• CI accomplishes this by running tests and scans
code at every change
• CI requires a personnel and hardware
investment
• CI pays off for defect reduction

More Related Content

PPTX
A Brief Introduction to Test-Driven Development
PDF
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
PPTX
Test Driven Development - a Practitioner’s Perspective
PPTX
TDD Basics with Angular.js and Jasmine
PDF
Funny stories and anti-patterns from DevOps landscape
PDF
How to get the most out of code reviews
PPTX
Developer + tester = quality++
PPTX
Code Review
A Brief Introduction to Test-Driven Development
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Test Driven Development - a Practitioner’s Perspective
TDD Basics with Angular.js and Jasmine
Funny stories and anti-patterns from DevOps landscape
How to get the most out of code reviews
Developer + tester = quality++
Code Review

What's hot (20)

PPTX
Unit Testing and Tools
PPTX
Unit Testing and Tools - ADNUG
PPTX
Test Driven Development
PPTX
Code review
PPTX
How to be proud when you are done
PDF
Code Review for iOS
PPTX
XP Injection
PDF
Test Driven Development (TDD) & Continuous Integration (CI)
PPT
Presentation_TDD
PDF
Unit testing in PHP
PDF
Alexandru Bolboaca - Unit Testing from the Trenches
PPTX
Working Effectively With Legacy Code
PDF
How to successfully grow a code review culture
PPTX
Test-Driven Development In Action
PDF
TDD for Testers Workshop
PPTX
Code Review tool for personal effectiveness and waste analysis
PPTX
Presentation delex
PPTX
Test Driven Development
PDF
Test-driven development with Node.js
PDF
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
Unit Testing and Tools
Unit Testing and Tools - ADNUG
Test Driven Development
Code review
How to be proud when you are done
Code Review for iOS
XP Injection
Test Driven Development (TDD) & Continuous Integration (CI)
Presentation_TDD
Unit testing in PHP
Alexandru Bolboaca - Unit Testing from the Trenches
Working Effectively With Legacy Code
How to successfully grow a code review culture
Test-Driven Development In Action
TDD for Testers Workshop
Code Review tool for personal effectiveness and waste analysis
Presentation delex
Test Driven Development
Test-driven development with Node.js
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
Ad

Similar to Continuous Integration: Finding problems soonest (20)

PPTX
Continuous integration sql in the city
PPTX
AgileLINC Continous Slides by Daniel Harp
PPT
Enter the Team City
PDF
Introduction to Continuous Integration
PDF
Continuous integration
PDF
Continuous integrations - Basics
PDF
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
PPTX
DevOps Days Ohio
KEY
Continuous Integration In A PHP World
PPTX
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PDF
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
PPTX
Jenkins an opensource CICD platform for all
PPTX
Continuous Integration
PPTX
Bootstrapping Quality
PPTX
The challenges and pitfalls of database deployment automation
PPTX
Continuous integration, delivery & deployment
PPTX
Build software like a bag of marbles, not a castle of LEGO®
PDF
Continuous integration & Continuous Delivery @DeVz
PPTX
10 Reasons You MUST Consider Pattern-Aware Programming
Continuous integration sql in the city
AgileLINC Continous Slides by Daniel Harp
Enter the Team City
Introduction to Continuous Integration
Continuous integration
Continuous integrations - Basics
Gartner Infrastructure and Operations Summit Berlin 2015 - DevOps Journey
DevOps Days Ohio
Continuous Integration In A PHP World
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
Build software like a bag of marbles, not a castle of LEGO®
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Jenkins an opensource CICD platform for all
Continuous Integration
Bootstrapping Quality
The challenges and pitfalls of database deployment automation
Continuous integration, delivery & deployment
Build software like a bag of marbles, not a castle of LEGO®
Continuous integration & Continuous Delivery @DeVz
10 Reasons You MUST Consider Pattern-Aware Programming
Ad

More from Shawn Jones (18)

PPTX
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
PPTX
DIRA 2022 Poster -- Abstract Images Have Different Levels of Retrievability P...
PDF
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
PPTX
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...
PDF
Improving Collection Understanding For Web Archives With Storytelling: Shinin...
PPTX
Automatically Selecting Striking Images for Social Cards
PPTX
SHARI (StoryGraph Hypercane ArchiveNow Raintale Integration)
PPTX
Social Cards Probably Provide For Better Understanding Of Web Archive Collect...
PPTX
Storytelling With Web Archives
PPTX
Combining Social Media Storytelling With Web Archives
PPTX
Improving Understanding of Web Archive Collections Through Storytelling - PhD...
PPTX
The Off-Topic Memento Toolkit
PPTX
The Many Shapes of Archive-It
PPTX
Improving Collection Understanding in Web Archives
PPTX
Reference Rot
PPTX
Where Can We Post Stories Summarizing Web Archive Collections
PPTX
Avoiding Spoilers On MediaWiki Fan Sites Using Memento
PPTX
Reconstructing the past with media wiki
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
DIRA 2022 Poster -- Abstract Images Have Different Levels of Retrievability P...
Abstract Images Have Different Levels of Retrievability Per Reverse Image Sea...
It’s All About The Cards: Sharing on Social Media Encouraged HTML Metadata G...
Improving Collection Understanding For Web Archives With Storytelling: Shinin...
Automatically Selecting Striking Images for Social Cards
SHARI (StoryGraph Hypercane ArchiveNow Raintale Integration)
Social Cards Probably Provide For Better Understanding Of Web Archive Collect...
Storytelling With Web Archives
Combining Social Media Storytelling With Web Archives
Improving Understanding of Web Archive Collections Through Storytelling - PhD...
The Off-Topic Memento Toolkit
The Many Shapes of Archive-It
Improving Collection Understanding in Web Archives
Reference Rot
Where Can We Post Stories Summarizing Web Archive Collections
Avoiding Spoilers On MediaWiki Fan Sites Using Memento
Reconstructing the past with media wiki

Recently uploaded (20)

PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Empathic Computing: Creating Shared Understanding
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPT
Teaching material agriculture food technology
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Modernizing your data center with Dell and AMD
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Review of recent advances in non-invasive hemoglobin estimation
Empathic Computing: Creating Shared Understanding
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Advanced methodologies resolving dimensionality complications for autism neur...
Teaching material agriculture food technology
Understanding_Digital_Forensics_Presentation.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
20250228 LYD VKU AI Blended-Learning.pptx
Unlocking AI with Model Context Protocol (MCP)
The Rise and Fall of 3GPP – Time for a Sabbatical?
Modernizing your data center with Dell and AMD
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Continuous Integration: Finding problems soonest

  • 2. Your Software Is Your House • Except, in a complex software project you have many of the same type of contractor and they don't communicate well • For example, if your house were a software project: • Different masons don't make the foundation connect, creating fissures • Different carpenters choose different materials for the subfloor, leading to weak points • Different roofers don’t connect joists the same
  • 3. But I did my part right!
  • 4. Some Background • Source code -> Binary code • Source code is what people write • Binary code is what machines run • Compilers turn source code into binary code • Developers do this all of the time (It’s not the 1970s) • Source control holds source code • It tells you who did what and when (accountability) • Provides points in time for milestones • Is key to good Configuration Management • Build servers detect changes in source control and the turn the source code into binary code, run tests, perform inspection, etc. and produce builds
  • 5. Continuous Integration Goals • Find the problem when it is introduced • On every change (continuous): • Is it intended to meet a requirement (is it gold plating)? • Can anyone compile it (avoid "magic laptops" or "islands of knowledge")? • Did the new code break existing functionality (does it pass automated testing)? • Does it contain known bugs (is the foundation bad)? • Does it contain known security flaws (is it easily hackable)? • Can others work on the code (does it conform to coding standards)? • Does it actually meet the requirement (does it pass functional testing)? • Is deployment reproducible? Can it install?
  • 6. Typical CI Process Source Control Management Requirements System Build System 3. compiles code 4. scans code 5. runs unit tests 6. creates install package 2. verifies requirement traceability 7. deploys install package to target environment 8. runs integration/regression tests 9. reports progress of each step 1. checks in code
  • 7. If a Build Fails • If any of the evaluations fail, mark the build as FAILED! • No finger pointing! You know who did it! • Immediately, the developers: • Fix the code, or • Roll back the code to a known good state • If you don’t do either, then developers continue building on a bad foundation
  • 8. If a Build Succeeds You may have a candidate for a releasable product!
  • 9. Requirements for CI • requirements and architecture are well understood • target environment is known and available • an automated deployment mechanism exists • someone to coordinate and champion process • automated tests actually exist and are correct • transaction-based source control system • developers respond to bad builds quickly • the systems who support CI can interoperate with one another • everyone does their job, it’s not a replacement for other good processes
  • 10. Concerns with CI • CI requires personnel to maintain and develop • Sometimes failures are due to the environment • It takes time and effort to remove these issues • CI can not perform review tasks which require people: • User testing • Documentation review • Some builds take a long time • Use a build engineer to help the architect break up the software into smaller modules • Run some scans/tests nightly rather than on every change
  • 11. Summary • CI is all about detecting the problem as it is inserted into the product • CI accomplishes this by running tests and scans code at every change • CI requires a personnel and hardware investment • CI pays off for defect reduction