SlideShare a Scribd company logo
Waterfall Integration
Waterfall Integration Issues
• Poor planning/design may require
extensive redesign
• Hard to predict how long it will take
• Hard to determine how close you are to
completing it
• Easy for earlier project delays to cause
Integration to start already behind
schedule and be rushed
• Defect root cause is hard to identify
because of the large amount of changes
Why Continuous Integration?
“If you had a button that told you
whether everything in the system
was working, how often would you
press it?”
Agile/Scrum Integration
Continuous Integration
Contrary to popular
belief, continuous
integration is an
attitude, not a tool.
--- James Shore, “The Art of Agile”
Installing Jenkins ≠ Continuous Integration
Continuous Integration
Key Practice #1:
Maintain a single source repository
Nobody Should Ever Ask, “Where’s the ____ properties file?”
Store Everything Necessary to build your application
• Source Code
• Properties Files **
• Database Schemas
• Install Scripts
• Build Scripts
• 3rd Party Libraries **
• … everything necessary to build your application …
But do NOT include things you build…
• Binaries (Executables, Jars, Wars…)
• Generated Code (WSDL to Java…)
Continuous Integration
Key Practice #2:
Automate the Build
Key Practice #3:
Keep the Build Fast
• General recommendation is less than 10 Minutes
• Organize build steps to get critical feedback early
• Push long running later in process or multi-thread
It IS possible to do C.I. without automation, but why bother?
Continuous Integration
Key Practice #4:
Make the build self testing
Compiled, Linked, Packaged
… But does it “work”?
Automated Testing is essential
to Continuous Integration
Service Layer
The Agile Testing Pyramid
GUI
QA Driven
Developer Driven
Test against
binaries/
artifacts
Test against
Code
- Mocked Dependencies
Component
Integration Tests
Developer Driven
Unit Tests are
part of development.
Code without unit
tests should be
treated the same as
code that does not
compile.
Unit
Continuous Integration
Key Practice #4:
Make the build self testing
Ensure that the code is tested
• Code Coverage Tools
• Commit to coverage
percentage
• Only represents
execution, not test quality
• Code Reviews
• Pair Programming
• Test First / Test Driven
• UTDD (Unit TDD)
• ATDD (Acceptance TDD)
• BDD (Behavioral)
Continuous Integration
Key Practice #5:
Everyone commits to the mainline everyday
• All new development should be done on the mainline (trunk)
• Check in frequently, at least once a day
• Avoid branches
• “Feature Branching is a poor man’s modular architecture”
-- Dan Bodart
X
Branches
Trunk
Branch 1
Branch 2
What we tell ourselves branches look likeWhat branches actually look like…
Branch 1
Branch 2
Branches
Trunk
Bug Fix
Branch for Emergency fixes of released versions
Release ReleaseRelease Release
Bug Fix
Branches should be short lived
(or it probably wasn’t an “emergency”)
Branches
Trunk
If you insist on branching, merge often (daily)
Continuous Integration
Key Practice #5:
Everyone commits to the mainline everyday
• All new development should be done on the mainline (trunk)
• Check in frequently, at least once a day
• Avoid branches
• “Feature Branching is a poor man’s modular architecture”
-- Dan Bodart
Key ways to avoid branching:
• Backwards compatibility
• Feature Toggles
Continuous Integration
Key Practice #6:
Every commit should trigger a build
on a build server
• Scheduled builds (nightly) is not CONTINUOUS Integration
• Builds on a build server ensure
that the build isn’t tied to your
local environment
Continuous Integration
Key Practice #7:
Every commit (& build) is potentially shippable
• Don’t commit code with defects
• (and remember, lack of tests is a defect)
• Don’t commit new code on a broken build
• Broken builds “Stop the line”
• Don’t go home on a broken build
Continuous Integration
Key Practice #8:
Binary Integrity
Key Practice #9:
Test in a clone of production
Continuous Integration
Key Practice #10:
Make it easy to get the latest executable
Working software over
comprehensive documentation
Continuous Integration
Key Practice #11:
Everyone can see what’s happening
Adopting Continuous Integration
Focus changes on
Organizational, Architectural & Process
- not -
Tools, Code, Infrastructure
Adopting Continuous Integration
Get Measurable Change
As Soon As Possible
Adopting Continuous Integration
Create a culture of
Continuous Improvement

More Related Content

PPTX
Continuous integration
ZIP
Introduction To Continuous Integration
PDF
Porque Odeio Branches
KEY
Continuous Integration, the minimum viable product
PPTX
Trunk Based Development in the Enterprise - Its Relevance and Economics
PPTX
Continuous Integration and Continuous Deployment in Enterprise scenario
PPTX
#speakgell - Continuous Integration in iconnect360
PDF
Continuous Integration 101
Continuous integration
Introduction To Continuous Integration
Porque Odeio Branches
Continuous Integration, the minimum viable product
Trunk Based Development in the Enterprise - Its Relevance and Economics
Continuous Integration and Continuous Deployment in Enterprise scenario
#speakgell - Continuous Integration in iconnect360
Continuous Integration 101

What's hot (20)

PDF
Software architecture in a DevOps world
PDF
Continuous integration
PPTX
Flusso Continuous Integration & Continuous Delivery
PDF
Debugging distributed systems
PPTX
Continous integration with jenkins
PPTX
Effective Code Review (Or How To Alienate Your Coworkers)
PDF
Simple Continous Integration
PDF
Trunk based development for Beginners
PDF
Magento Continuous Integration & Continuous Delivery @MM17HR
PDF
Continuous Integration at T3CON08
PPTX
Is Trunk-based Development Easy in Game Development?
PDF
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
PDF
Jenkins CI
PDF
Continuous integration & Continuous Delivery @DeVz
PDF
PDF
Software architecture in a DevOps world
KEY
Using Jenkins with iOS projects
PDF
WSO2 IoTS Device Manufacturer Guide
PPTX
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
PPTX
Super chargeyourcontiniousintegrationdeployments
Software architecture in a DevOps world
Continuous integration
Flusso Continuous Integration & Continuous Delivery
Debugging distributed systems
Continous integration with jenkins
Effective Code Review (Or How To Alienate Your Coworkers)
Simple Continous Integration
Trunk based development for Beginners
Magento Continuous Integration & Continuous Delivery @MM17HR
Continuous Integration at T3CON08
Is Trunk-based Development Easy in Game Development?
Skills Matter DevSecOps eXchange Forum 2022 - Software architecture in a DevO...
Jenkins CI
Continuous integration & Continuous Delivery @DeVz
Software architecture in a DevOps world
Using Jenkins with iOS projects
WSO2 IoTS Device Manufacturer Guide
Keeping Your CI/CD Pipeline as Fast as It Needs to Be
Super chargeyourcontiniousintegrationdeployments
Ad

Viewers also liked (12)

DOCX
Module 7 mobile learning lesson
PDF
The Besen Buzz Spring 2015
PPT
An Introduction to psychology
PDF
Appln for revaluation
PDF
Estimates and Affinity Estimation
PDF
Quality talk - By Brian Button 021914
PDF
Follow Up or Go Home: 15 Tips For CRE Sales Brokers
PDF
Story mapping - by Brian Button at AgileLINC 021914
PDF
Weather and lightning brochure
PPT
The prominent religions of southwest asia
PPT
The Physical Geography of Europe
PPT
Introduction to Psychology
Module 7 mobile learning lesson
The Besen Buzz Spring 2015
An Introduction to psychology
Appln for revaluation
Estimates and Affinity Estimation
Quality talk - By Brian Button 021914
Follow Up or Go Home: 15 Tips For CRE Sales Brokers
Story mapping - by Brian Button at AgileLINC 021914
Weather and lightning brochure
The prominent religions of southwest asia
The Physical Geography of Europe
Introduction to Psychology
Ad

Similar to AgileLINC Continous Slides by Daniel Harp (20)

PPTX
Continuos Delivery
PDF
Continuous integration (eng)
PDF
Flight East 2018 Presentation–Continuous Integration––An Overview
PPTX
Adrian marinica continuous integration in the visual studio world
PDF
Continuous Integration
PDF
Continuous Integration Introduction
PPTX
Continuous integration
PPTX
Continuous Integration
PPT
Continuous Integration
PDF
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
PPT
Continuous Integration: A Case Study
PPTX
Ben Reich - Continuous Integration Best Practices in Agile Environments
PDF
Continuous integration practices to improve the software quality
PDF
Continuous Integration Practices
PDF
Continuous Integration - What even is it?
PPT
Continuous Integration
PPT
Continous integration-leon-kehl-2010
PPT
Continous Integration: A Case Study
PPT
Continuous Integration
PPTX
Continuous integration with Jenkins
Continuos Delivery
Continuous integration (eng)
Flight East 2018 Presentation–Continuous Integration––An Overview
Adrian marinica continuous integration in the visual studio world
Continuous Integration
Continuous Integration Introduction
Continuous integration
Continuous Integration
Continuous Integration
[Quang nguyen] Continuous Integration XP Day 2015 Vietnam Danang
Continuous Integration: A Case Study
Ben Reich - Continuous Integration Best Practices in Agile Environments
Continuous integration practices to improve the software quality
Continuous Integration Practices
Continuous Integration - What even is it?
Continuous Integration
Continous integration-leon-kehl-2010
Continous Integration: A Case Study
Continuous Integration
Continuous integration with Jenkins

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Empathic Computing: Creating Shared Understanding
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
sap open course for s4hana steps from ECC to s4
PPTX
Cloud computing and distributed systems.
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Diabetes mellitus diagnosis method based random forest with bat algorithm
MIND Revenue Release Quarter 2 2025 Press Release
Reach Out and Touch Someone: Haptics and Empathic Computing
Empathic Computing: Creating Shared Understanding
Mobile App Security Testing_ A Comprehensive Guide.pdf
20250228 LYD VKU AI Blended-Learning.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Encapsulation theory and applications.pdf
sap open course for s4hana steps from ECC to s4
Cloud computing and distributed systems.
Per capita expenditure prediction using model stacking based on satellite ima...
Spectroscopy.pptx food analysis technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

AgileLINC Continous Slides by Daniel Harp

  • 1. Waterfall Integration Waterfall Integration Issues • Poor planning/design may require extensive redesign • Hard to predict how long it will take • Hard to determine how close you are to completing it • Easy for earlier project delays to cause Integration to start already behind schedule and be rushed • Defect root cause is hard to identify because of the large amount of changes
  • 2. Why Continuous Integration? “If you had a button that told you whether everything in the system was working, how often would you press it?”
  • 4. Continuous Integration Contrary to popular belief, continuous integration is an attitude, not a tool. --- James Shore, “The Art of Agile” Installing Jenkins ≠ Continuous Integration
  • 5. Continuous Integration Key Practice #1: Maintain a single source repository Nobody Should Ever Ask, “Where’s the ____ properties file?” Store Everything Necessary to build your application • Source Code • Properties Files ** • Database Schemas • Install Scripts • Build Scripts • 3rd Party Libraries ** • … everything necessary to build your application … But do NOT include things you build… • Binaries (Executables, Jars, Wars…) • Generated Code (WSDL to Java…)
  • 6. Continuous Integration Key Practice #2: Automate the Build Key Practice #3: Keep the Build Fast • General recommendation is less than 10 Minutes • Organize build steps to get critical feedback early • Push long running later in process or multi-thread It IS possible to do C.I. without automation, but why bother?
  • 7. Continuous Integration Key Practice #4: Make the build self testing Compiled, Linked, Packaged … But does it “work”? Automated Testing is essential to Continuous Integration
  • 8. Service Layer The Agile Testing Pyramid GUI QA Driven Developer Driven Test against binaries/ artifacts Test against Code - Mocked Dependencies Component Integration Tests Developer Driven Unit Tests are part of development. Code without unit tests should be treated the same as code that does not compile. Unit
  • 9. Continuous Integration Key Practice #4: Make the build self testing Ensure that the code is tested • Code Coverage Tools • Commit to coverage percentage • Only represents execution, not test quality • Code Reviews • Pair Programming • Test First / Test Driven • UTDD (Unit TDD) • ATDD (Acceptance TDD) • BDD (Behavioral)
  • 10. Continuous Integration Key Practice #5: Everyone commits to the mainline everyday • All new development should be done on the mainline (trunk) • Check in frequently, at least once a day • Avoid branches • “Feature Branching is a poor man’s modular architecture” -- Dan Bodart
  • 11. X Branches Trunk Branch 1 Branch 2 What we tell ourselves branches look likeWhat branches actually look like… Branch 1 Branch 2
  • 12. Branches Trunk Bug Fix Branch for Emergency fixes of released versions Release ReleaseRelease Release Bug Fix Branches should be short lived (or it probably wasn’t an “emergency”)
  • 13. Branches Trunk If you insist on branching, merge often (daily)
  • 14. Continuous Integration Key Practice #5: Everyone commits to the mainline everyday • All new development should be done on the mainline (trunk) • Check in frequently, at least once a day • Avoid branches • “Feature Branching is a poor man’s modular architecture” -- Dan Bodart Key ways to avoid branching: • Backwards compatibility • Feature Toggles
  • 15. Continuous Integration Key Practice #6: Every commit should trigger a build on a build server • Scheduled builds (nightly) is not CONTINUOUS Integration • Builds on a build server ensure that the build isn’t tied to your local environment
  • 16. Continuous Integration Key Practice #7: Every commit (& build) is potentially shippable • Don’t commit code with defects • (and remember, lack of tests is a defect) • Don’t commit new code on a broken build • Broken builds “Stop the line” • Don’t go home on a broken build
  • 17. Continuous Integration Key Practice #8: Binary Integrity Key Practice #9: Test in a clone of production
  • 18. Continuous Integration Key Practice #10: Make it easy to get the latest executable Working software over comprehensive documentation
  • 19. Continuous Integration Key Practice #11: Everyone can see what’s happening
  • 20. Adopting Continuous Integration Focus changes on Organizational, Architectural & Process - not - Tools, Code, Infrastructure
  • 21. Adopting Continuous Integration Get Measurable Change As Soon As Possible
  • 22. Adopting Continuous Integration Create a culture of Continuous Improvement