competitive advantage of continuous integration

26
Competitive Advantage of Continuous Integration Tim Gifford Lean/XP Coach Lean TECHniques @TimGifford [email protected]

Upload: tim-gifford

Post on 30-Jun-2015

288 views

Category:

Technology


2 download

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

Page 1: Competitive Advantage of Continuous Integration

Competitive Advantage of Continuous IntegrationTim GiffordLean/XP CoachLean TECHniques@[email protected]

Page 2: Competitive Advantage of Continuous Integration

Fighter Pilots and Fruit Flies01

table of contents

A Brief History of Software Engineering02Continuous Integration Mindset03

Continuous Integration - The Hard Way04Examples05

06 Questions

Page 3: Competitive Advantage of Continuous Integration

Fighter pilots and fruit flies teach us about continuous integration

Story Time

Page 4: Competitive Advantage of Continuous Integration

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

Page 5: Competitive Advantage of Continuous Integration

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.

Page 6: Competitive Advantage of Continuous Integration

Don’t blink!Fruit Fly Family

Reunions

Page 7: Competitive Advantage of Continuous Integration

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

Page 8: Competitive Advantage of Continuous Integration

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

Page 9: Competitive Advantage of Continuous Integration

9

Dark Ages

Wizards

Champions

Dragons

Myths

Legends

A Time Before CI

https://www.flickr.com/photos/xtream_i/

Page 10: Competitive Advantage of Continuous Integration

10

Industrial Age

SpecializationScienceEfficiencyStatistical ControlSix SigmaProject Management – “things”Capacity Planning

Today

Days of Our Lives

section 02

Page 11: Competitive Advantage of Continuous Integration

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

Page 12: Competitive Advantage of Continuous Integration

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

Page 13: Competitive Advantage of Continuous Integration

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.

Page 14: Competitive Advantage of Continuous Integration

14

Click to insert chart from template

Individual

Team

Culture

Product

Market

Continuous Integration - LayersContinuous Integration Mindset

Page 15: Competitive Advantage of Continuous Integration

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.

Page 16: Competitive Advantage of Continuous Integration

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

Page 17: Competitive Advantage of Continuous Integration

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.

Page 18: Competitive Advantage of Continuous Integration

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.

Page 19: Competitive Advantage of Continuous Integration

19

Continuous Integration - Market

Concept Validation

Usage Analytics

Continuous Delivery

Culling Features

Continuous Integration Mindset

Continuous Integration Mindset

Market

Page 20: Competitive Advantage of Continuous Integration

Continuous Integration is hard. Continuo

us Integratio

n - The Hard Way

Page 21: Competitive Advantage of Continuous Integration

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

Page 22: Competitive Advantage of Continuous Integration

The best way to understand continuous integration is through a few examples.

Examples

Page 23: Competitive Advantage of Continuous Integration

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

Page 24: Competitive Advantage of Continuous Integration

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)

Page 25: Competitive Advantage of Continuous Integration

The end is near!Questions

Page 26: Competitive Advantage of Continuous Integration

contact informationFor more info, please contact us me:

Tim [email protected]@timgifford+1 (515) 419.1909

Thank You