competitive advantage of continuous integration
DESCRIPTION
Continuous Integration doesn't stop after the code compiles. Continuous Integration can be applied at multiple levels; from the developer to the market. When we continuously integrate with the market we have a competitive advantage.TRANSCRIPT
Competitive Advantage of Continuous IntegrationTim GiffordLean/XP CoachLean TECHniques@[email protected]
Fighter Pilots and Fruit Flies01
table of contents
A Brief History of Software Engineering02Continuous Integration Mindset03
Continuous Integration - The Hard Way04Examples05
06 Questions
Fighter pilots and fruit flies teach us about continuous integration
Story Time
4
Colonel John Boyd
Claimed he could defeat any pilot from a position of disadvantage in less than 40 seconds.
Forty Second Boyd
section 01
"The Iraqi army collapsed morally and intellectually under the onslaught of American and Coalition forces. John Boyd was an architect of that victory as surely as if he'd commanded a fighter wing or a maneuver division in the desert.“
General Charles C. Krulak Referring to the strategy used in Operation Desert Storm
5
OODA LoopForty Second Boyd
Observation
Action Orientation
Decision
section 01
Get inside your opponent’s loop!
Complete your loop faster makes your opponent incapable to act
Each action forces your
opponent
to observe
and orient.
Don’t blink!Fruit Fly Family
Reunions
7
Why are fruit flies used in genetics research?
10 Day Life Cycles
100+ Eggs
Small
Fast Learning
Fruit Fly Family Reunions
https://www.flickr.com/photos/max_westby/
section 01
We’re in the ‘Industrial Age’ of software. We’ve moved out of the ‘Dark Ages’ and moving quickly towards the ‘Information Age’.
What does our future hold?
A Brief History of Software
Engineering
9
Dark Ages
Wizards
Champions
Dragons
Myths
Legends
A Time Before CI
https://www.flickr.com/photos/xtream_i/
10
Industrial Age
SpecializationScienceEfficiencyStatistical ControlSix SigmaProject Management – “things”Capacity Planning
Today
Days of Our Lives
section 02
11
Information Age
Manage demand (not capacity)Predictive Demand Modeling – Cellular networksPredictive ProvisioningSelf Repairing – Netflix’s Chaos Monkey/Gorilla
Zero DowntimeDefect FreeAnti-Fragile ArchitecturesProduct Management – “Problems” and their solutions
Tomorrow
section 02
Continuous Integration is more than a tool. It is a competitive advantage and new way of thinking for the ‘Information Age’ of software engineering.
Continuous
Integration Mindset
13
Economic Impact
Reduction in coordination and transaction costs
Reduction on acquisition costs
Reduce Total Cost of Ownership
Reduce opportunity costs
Increased risk mitigation
Continuous Integration Mindset
Large batch sizes are necessary when
transaction and coordination costs
are high.
Reducing these costs will enable
smaller batch sizes.
14
Click to insert chart from template
Individual
Team
Culture
Product
Market
Continuous Integration - LayersContinuous Integration Mindset
15
Continuous Integration - Individual
Local Development Environment
The system should run locally without a network connection.
Limited Red
Making small changes limit the compile and test failures. Developers need to continuously reduce the time their changes are not shippable.
Diff Aware Development
Developers anticipate how edits will impact the team.
Continuous Integration Mindset
Continuous Integration Mindset
Individual
Add changes to the end of a file
Formatting a file results in a the entire file being
modified!
Don’t be afraid to revert your changes.
16
Continuous Integration - Team
Continuous Demos
Teams need to be capable of showing their user facing functionality every day. Technical delivery can signify a team this not integrating to create stakeholder value.
Continuous Integration Mindset
Continuous Integration Mindset
Team
Confident Green
When the automated build is successful, the team should feel confident they can deploy to production
A lack of confidence is a signal of a
missing automated test
17
Continuous Integration - Culture
Failure Tolerant
Mistakes will happen. Discovering information that we previously unknown needs to be celebrated.
Look for environmental factors that allow errors to occur.
Identify the triggers that cause errors.
Continuous Learning
Continuous Integration Mindset
Continuous Integration Mindset
CultureDoing the same
thing each year for 10 years does not
give you 10 years of experience.
18
Continuous Integration - Product
Always Releasable
Your product needs to be always ready for production. No half-based features or long verification cycles.
Continuous Integration Mindset
Continuous Integration Mindset
Product
Use ‘Feature Toggles’
Code branches reduce integration.
19
Continuous Integration - Market
Concept Validation
Usage Analytics
Continuous Delivery
Culling Features
Continuous Integration Mindset
Continuous Integration Mindset
Market
Continuous Integration is hard. Continuo
us Integratio
n - The Hard Way
21
Competency
Good
Source Control
Automated Tests
Build Scripts
Better
Database Scripts
Deployment Scripts
Smoke Tests
Configuration Scripts
Best
Git Bisect-ableRollback Capability
Virtual Machine/Container
Bill of Materials Traceability
“The Button”
Continuous Integration – The Hard Way!
1
section 04
The best way to understand continuous integration is through a few examples.
Examples
23
Vertical Delivery - User Centric Delivery
Delivery starts with your user. You’ll be tempted to deliver starting from a point farthest from the user. It appears to be more efficient. Things change less frequently down there. Beware…when you do encounter a user, they will expected changes in ways that can not be anticipated.
When this occurs all the efficiency transforms to waste.
Examples
section 05
24
Continuous Integration “At Scale”Examples
iOS Team: Continuously
Integrates (their code)
Middleware Team: Continuously
Integrates (their code)
Data Analytics Team:
Continuously Integrates (their
code)
The end is near!Questions
contact informationFor more info, please contact us me:
Tim [email protected]@timgifford+1 (515) 419.1909
Thank You