SlideShare a Scribd company logo
CONTINUOUS DELIVERY
(IN AN AGILE CONTEXT)

Mike Bowler, Agile & Technical Coach
Tweeting? Use @mike_bowler and #atmtl2013
Have a question?!
Don’t wait, ask it!
WHAT IS CONTINUOUS
DELIVERY AND WHY
SHOULD I CARE?
AGILE PRINCIPLES SAY:

“Our highest priority is to
satisfy the customer
through early and
continuous delivery of
valuable software.”
AGILE PRINCIPLES SAY:

“Deliver working software
frequently, from a couple of
weeks to a couple of months,
with a preference to the
shorter timescale.”
“Wait a minute! My
company doesn’t want
to deploy that often!”
that
ant is t
port
t’s im deliver fas
Wha CAN
you
WHAT IS CONTINUOUS
DELIVERY?
, Tivoli, .
Nagios w, etc
PenVie
O

One master branch

Production

Monitoring and
Alerts
Rollbacks on
error

Deploy to	

production

udson,
Verify expected	

 enkins / H
J
istrano,
behaviour
S, Cap e shell
TF
omemad, etc.
H
Compile and	

scripts
Package

Pull from	

master branch
WHAT COULD GO
WRONG?
We could put something new in production that
doesn’t work or we could break something that used
to work!
We could put a half finished feature into production
before it was ready and confuse the users!
We could kick the users off the system in the middle
of doing their work
HOW DID WE DEAL WITH
THESE IN THE PAST?
We had long manual test cycles between releases!
We typically deployed off-hours when nobody was
using the system

e’re
e if w utes
easibl 15 min
ot f very
N
ying e
deplo
PRE-REQUISITES
ARE HARD
Able to deploy to production at the busiest time of the day
with no visible changes - no unexpected changes, no
downtime!
Have sufficient monitoring to know when something goes
wrong and the ability to rapidly fix it or roll back to a known
good state!
No manual processes after code has been checked in. Every
step is automated.!
Holistic view of the process, from customer request to
production support. Team is bigger than just the devs.
DB migration

hip
ns

ma
fts
ra

Continuous integration

One click deploy

Configuration management

One click rollback

Provisioning

Zero downtime deploy

C

Automation

Courage

Pride of work

Common Goal

Agile modeling
Evolutionary design

Design

Cluster immune
system

Feature flags

Comparative testing

Simple design

Whole
Team

Usability

Measurements
Stress testing

Workin
people g with
o
your de utside
v team

Alerts

Engaged people

Monitoring

Sustainable pace
Regular retrospectives

Capacity
Individuals
Compliance

ATDD

Planning

Continuous
Delivery

Scalability

Executable specifications

BDD
TDD

Rapid Feedback

Frequent check-ins
Single codebase

Continuous improvement

Version control

Functional
Configuration management

Exploratory testing
Performance

Dependency management
Cross-functional teams

Incremental development

Co-located teams
Pair programming

High communication
Daily standups

Refactoring
Dev Team

Coding standards
Collective code ownership
Shared understanding
Informational workspace
Simple architecture

Small Stories

hin
it
g w am
kin te
or ur
W yo

© 2013 Gargoyle Software Inc
INDIVIDUALS
!

“CRAFTSMANSHIP”
COURAGE
Courage to say no to requests that compromise the
teams values!
Courage to say code quality isn’t high enough!
Courage to say these deadlines aren’t realistic!
Courage to escalate issues that nobody wants to
talk about
“Take pride in what you do. The kind of
pride I'm talking about is not the arrogant
puffed-up kind; it's just the whole idea of
caring - fiercely caring.”

Arnold Jacob "Red" Auerbach was an American basketball coach of the
Washington Capitols, the Tri-Cities Blackhawks and the Boston Celtics.
http://en.wikipedia.org/wiki/Red_Auerbach
EVOLUTIONARY DESIGN &
INCREMENTAL DEVELOPMENT

Design and build only
what you need today!
YAGNI : “You aren’t
going to need it”
SIMPLE DESIGN
“A complex system that works is
invariably found to have evolved from a
simple system that worked. The inverse
proposition also appears to be true: A
complex system designed from scratch
never works and cannot be made to
work. You have to start over, beginning
with a working simple system.”
-- Gall's Law
ENGAGED PEOPLE

Continuous
improvement
(Sharpening the saw)!
Sustainable Pace!
Regular retrospectives
AUTOMATED TESTS

ations
ecific
ble Sp
ecuta
Ex

A section of executable code that can be run
repeatedly to ensure that our production code does
what it is supposed to do!
Why is it important to automate these?
AUTOMATED TESTS

ations
ecific
ble Sp
ecuta
Ex
Techniques!

ATDD (Acceptance Test Driven Development)!
BDD (Behaviour Driven Development)!
TDD (Test Driven Development)!
All write specifications first. Why is this important?
EXPLORATORY TESTING

Looking for issues!
Done earlier in the
process
PAIR PROGRAMMING
REFACTORING
Code refactoring is a “disciplined technique for
restructuring an existing body of code, altering its internal
structure without changing its external behaviour”,
undertaken in order to improve some of the nonfunctional
attributes of the software. !
!

Advantages include improved code readability and
reduced complexity to improve the maintainability of the
source code, as well as a more expressive internal
architecture or object model to improve extensibility.!
!

-- Wikipedia entry on Refactoring
“The trouble with quick and dirty
is that dirty remains long after
quick has been forgotten.”

Steven C. McConnell is an author of many software engineering textbooks
including Code Complete, Rapid Development, and Software Estimation.
http://en.wikipedia.org/wiki/Steve_McConnell
DEVELOPMENT TEAM
WORKING TOGETHER
SMALL STORIES
SHARED
UNDERSTANDING
Agreed standards!
Coding conventions!
Shared design!
Simple architecture
COLLECTIVE CODE
OWNERSHIP
We all own the code!
We all keep it clean!
Clean up the garbage, no matter who left it like that!
Freedom to make any change, anywhere in the code
base
HIGH COMMUNICATION
Informational Workspace
CROSS FUNCTIONAL
TEAMS

Everyone should know
a little of everything!
Should everyone be able
to take a vacation? Even
the specialists?
CONFIGURATION
MANAGEMENT

Use version control!
Check in everything that can’t be regenerated!
Check in frequently
BRANCHING

Avoid feature branches!
Avoid anything that requires manual merging
This model assumes one !
branch. !
!
Avoid feature branches.

Production

Monitoring and
Alerts
Rollbacks on
error

Deploy to	

production
Verify expected	

behaviour
Compile and	

Package
Pull from	

master branch
One branch !
per developer

Production

Monitoring and
Alerts

Deploy to production
Verify expected behaviour

Rollbacks on
error

Compile and package
Merge with master branch
Verify expected	

behaviour

Verify expected	

behaviour

Verify expected	

behaviour

Compile and	

Package

Compile and	

Package

Compile and	

Package

Merge with local
copy of master

Merge with local
copy of master

Merge with local
copy of master

Pull from	

Amy’s branch

Pull from	

Bob’s branch

Pull from	

Carol’s branch
DEVELOPMENT TEAM
WORKING WITH
EVERYONE ELSE
RAPID FEEDBACK
PLANNING &
MEASUREMENT
Plan for production
usage!
Capacity planning!
Compliance!
Scalability!
!

Stress testing!
Comparative
measurements
MONITORING & ALERTS
Monitor all production usage and trigger alerts for
abnormal conditions.!
How do operations know what conditions are abnormal?
FEATURE FLAGS

A/B testing!
Hiding incomplete features!
Enabling features based on permissions
COMMON GOAL
How does each group get measured?!
Developers!
Testers!
DBA’s!
Operations staff!
Are those measurements helping or hurting the
overall goal?
AUTOMATION

No more manual
processes!
Full automation of
deploy and rollback,
including database
changes
MORE ADVANCED
AUTOMATION
Provisioning!
Getting a new machine up and running !
Configuration management!
Making changes to a machine already running!
Cluster immune system!
Automated rollbacks if the new deploy doesn’t
meet defined acceptable thresholds
RECAP
Production

Monitoring and
Alerts
Rollbacks on
error

Deploy to	

production
Verify expected	

behaviour
Compile and	

Package
Pull from	

master branch
PRE-REQUISITES
Able to deploy to production at the busiest time of the day
with no visible changes - no unexpected changes, no
downtime!
Have sufficient monitoring to know when something goes
wrong and the ability to rapidly fix it or roll back to a known
good state!
No manual processes after code has been checked in. Every
step is automated.!
Holistic view of the process, from customer request to
production support. Team is bigger than just the devs.
DB migration

hip
ns

ma
fts
ra

Continuous integration

One click deploy

Configuration management

One click rollback

Provisioning

Zero downtime deploy

C

Automation

Courage

Pride of work

Common Goal

Agile modeling
Evolutionary design

Design

Cluster immune
system

Feature flags

Comparative testing

Simple design

Whole
Team

Usability

Measurements
Stress testing

Workin
people g with
o
your de utside
v team

Alerts

Engaged people

Monitoring

Sustainable pace
Regular retrospectives

Capacity
Individuals
Compliance

ATDD

Planning

Continuous
Delivery

Scalability

Executable specifications

BDD
TDD

Rapid Feedback

Frequent check-ins
Single codebase

Continuous improvement

Version control

Functional
Configuration management

Exploratory testing
Performance

Dependency management
Cross-functional teams

Incremental development

Co-located teams
Pair programming

High communication
Daily standups

Refactoring
Dev Team

Coding standards
Collective code ownership
Shared understanding
Informational workspace
Simple architecture

Small Stories

hin
it
g w am
kin te
or ur
W yo

© 2013 Gargoyle Software Inc
“Design and programming are human
activities; forget that and all is lost.”

Bjarne Stroustrup is a Danish computer scientist, most notable for the
creation and the development of the widely used C++ programming language.
http://en.wikipedia.org/wiki/Bjarne_Stroustrup
MORE READING
CONTACTING ME
Mike Bowler!
Agile & Technical Coach !
!

mbowler@GargoyleSoftware.com!
Cell: 905 409-7052!
Twitter: @mike_bowler!
!

Other links for me on Facebook, Google+ etc at!
http://www.GargoyleSoftware.com/mike_bowler
HANDOUTS
DB migration

hip
ns

ma
fts
ra

Continuous integration

One click deploy

Configuration management

One click rollback

Provisioning

Zero downtime deploy

C

Automation

Courage

Pride of work

Common Goal

Agile modeling
Evolutionary design

Design

Cluster immune
system

Feature flags

Comparative testing

Simple design

Whole
Team

Usability

Measurements
Stress testing

Workin
people g with
o
your de utside
v team

Alerts

Engaged people

Monitoring

Sustainable pace
Regular retrospectives

Capacity
Individuals
Compliance

ATDD

Planning

Continuous
Delivery

Scalability

Executable specifications

BDD
TDD

Rapid Feedback

Frequent check-ins
Single codebase

Continuous improvement

Version control

Functional
Configuration management

Exploratory testing
Performance

Dependency management
Cross-functional teams

Incremental development

Co-located teams
Pair programming

High communication
Daily standups

Refactoring
Dev Team

Coding standards
Collective code ownership
Shared understanding
Informational workspace
Simple architecture

Small Stories

Mike Bowler
hin
it
Agile & Technical Coach	

© 2013 Gargoyle Software Inc
g w am
(905) 409-7052	

kin te
r r
mbowler@GargoyleSoftware.com	

Woyou
@mike_bowler
Production

Monitoring and
Alerts
Rollbacks on
error

Deploy to	

production
Verify expected	

behaviour
Compile and	

Package
Pull from	

master branch
Mike Bowler
Agile & Technical Coach	

(905) 409-7052	

mbowler@GargoyleSoftware.com	

@mike_bowler

More Related Content

What's hot

Testing in agile
Testing in agileTesting in agile
Testing in agile
sachxn1
 
Agile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvementAgile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvement
XBOSoft
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Damn... we missed the date again
Damn... we missed the date againDamn... we missed the date again
Damn... we missed the date again
Sudipta Lahiri
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Mike McGarr
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Tieturi Oy
 
A DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software QualityA DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software Quality
TechWell
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
Perforce
 
Exploratory Testing with JIRA | QASymphony Webinar
Exploratory Testing with JIRA | QASymphony WebinarExploratory Testing with JIRA | QASymphony Webinar
Exploratory Testing with JIRA | QASymphony Webinar
QASymphony
 
Continuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedContinuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedAsh Maurya
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
Jean-Philippe Briend
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
QASymphony
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Agile India
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
Naresh Jain
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
drluckyspin
 
QA team transition to agile testing at Alcatel Lucent
QA team transition to agile testing at Alcatel LucentQA team transition to agile testing at Alcatel Lucent
QA team transition to agile testing at Alcatel Lucent
AgileSparks
 
Arguments in favor of a progressive software rewrite
Arguments in favor of a progressive software rewrite  Arguments in favor of a progressive software rewrite
Arguments in favor of a progressive software rewrite
Sylvain Leroy
 
Soft Skills You Need Are Not Always Taught in Class
Soft Skills You Need Are Not Always Taught in ClassSoft Skills You Need Are Not Always Taught in Class
Soft Skills You Need Are Not Always Taught in Class
TechWell
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
Perfecto by Perforce
 

What's hot (20)

Testing in agile
Testing in agileTesting in agile
Testing in agile
 
Agile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvementAgile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvement
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Damn... we missed the date again
Damn... we missed the date againDamn... we missed the date again
Damn... we missed the date again
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
Testaus 2014 -seminaari: Arto Kiiskinen, Mirasys Oy. Case Mirasys: Toiminnoil...
 
A DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software QualityA DevOps Primer: Whole Team Approaches for Better Software Quality
A DevOps Primer: Whole Team Approaches for Better Software Quality
 
The Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous DeliveryThe Challenges & Pitfalls of Database Continuous Delivery
The Challenges & Pitfalls of Database Continuous Delivery
 
Exploratory Testing with JIRA | QASymphony Webinar
Exploratory Testing with JIRA | QASymphony WebinarExploratory Testing with JIRA | QASymphony Webinar
Exploratory Testing with JIRA | QASymphony Webinar
 
Continuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons LearnedContinuous Deployment: Startup Lessons Learned
Continuous Deployment: Startup Lessons Learned
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
QA team transition to agile testing at Alcatel Lucent
QA team transition to agile testing at Alcatel LucentQA team transition to agile testing at Alcatel Lucent
QA team transition to agile testing at Alcatel Lucent
 
Arguments in favor of a progressive software rewrite
Arguments in favor of a progressive software rewrite  Arguments in favor of a progressive software rewrite
Arguments in favor of a progressive software rewrite
 
Soft Skills You Need Are Not Always Taught in Class
Soft Skills You Need Are Not Always Taught in ClassSoft Skills You Need Are Not Always Taught in Class
Soft Skills You Need Are Not Always Taught in Class
 
Shifting Left Webinar Slideshow
Shifting Left Webinar SlideshowShifting Left Webinar Slideshow
Shifting Left Webinar Slideshow
 
Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 

Similar to Continuous Delivery for Agile Teams

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Preetam Palwe
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Peter Marshall
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
Adam Stephensen
 
Enterprise DevOps
Enterprise DevOps Enterprise DevOps
Enterprise DevOps
Liam McDowell
 
Rhonda Software Quality Assurance Services
Rhonda Software Quality Assurance ServicesRhonda Software Quality Assurance Services
Rhonda Software Quality Assurance Services
Rhonda Software
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOps
Perfecto by Perforce
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Jwooldridge
 
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Mike Bowler
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Enkitec
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
Nitin Bhide
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operations
Microsoft Developer Norway
 
Dream QA: Designing the QA team where we'd love to work
Dream QA: Designing the QA team where we'd love to workDream QA: Designing the QA team where we'd love to work
Dream QA: Designing the QA team where we'd love to work
Manuel de la Peña Peña
 
Agile Evolution
Agile EvolutionAgile Evolution
Agile Evolution
Mikalai Alimenkou
 
Agile testing
Agile testingAgile testing
Agile testing
Raj Indugula
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
Sajeewa Dayaratne
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Jwooldridge
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
Willy-Peter Schaub
 
Continuous testing the new must have skill of tomorrow's tech leaders
Continuous testing  the new must have skill of tomorrow's tech leadersContinuous testing  the new must have skill of tomorrow's tech leaders
Continuous testing the new must have skill of tomorrow's tech leaders
Nadav Yeheskel - Looking for a Test/QA engineer
 
XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...
XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...
XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...
XebiaLabs
 

Similar to Continuous Delivery for Agile Teams (20)

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy EnvironmentsPete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
Pete Marshall - casmadrid2015 - Continuous Delivery in Legacy Environments
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 
Enterprise DevOps
Enterprise DevOps Enterprise DevOps
Enterprise DevOps
 
Rhonda Software Quality Assurance Services
Rhonda Software Quality Assurance ServicesRhonda Software Quality Assurance Services
Rhonda Software Quality Assurance Services
 
How to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOpsHow to Embed Codeless Test Automation Into DevOps
How to Embed Codeless Test Automation Into DevOps
 
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
Enterprise Devops Presentation @ Magentys Seminar London May 15 2014
 
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
Continuous Delivery: Responding to Change Faster Than Ever Before - SDEC14
 
Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12Kelly potvin nosurprises_odtug_oow12
Kelly potvin nosurprises_odtug_oow12
 
DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)DevOps - Understanding Core Concepts (Old)
DevOps - Understanding Core Concepts (Old)
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operations
 
Dream QA: Designing the QA team where we'd love to work
Dream QA: Designing the QA team where we'd love to workDream QA: Designing the QA team where we'd love to work
Dream QA: Designing the QA team where we'd love to work
 
Agile Evolution
Agile EvolutionAgile Evolution
Agile Evolution
 
Agile testing
Agile testingAgile testing
Agile testing
 
DevOps in an Embedded World
DevOps in an Embedded WorldDevOps in an Embedded World
DevOps in an Embedded World
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk:  DevOps large and small - Cambridge SatchelManchester ITExpo Talk:  DevOps large and small - Cambridge Satchel
Manchester ITExpo Talk: DevOps large and small - Cambridge Satchel
 
Devops Mindset Essentials
Devops Mindset EssentialsDevops Mindset Essentials
Devops Mindset Essentials
 
Continuous testing the new must have skill of tomorrow's tech leaders
Continuous testing  the new must have skill of tomorrow's tech leadersContinuous testing  the new must have skill of tomorrow's tech leaders
Continuous testing the new must have skill of tomorrow's tech leaders
 
XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...
XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...
XebiaLabs & codecentric Webinar: Deploy Higher Quality Applications Faster (G...
 

More from Mike Bowler

Retrospective Magic - Toronto Agile Conference
Retrospective Magic - Toronto Agile ConferenceRetrospective Magic - Toronto Agile Conference
Retrospective Magic - Toronto Agile Conference
Mike Bowler
 
Retrospective science
Retrospective scienceRetrospective science
Retrospective science
Mike Bowler
 
Brain Talk: More effective conversations through clean language
Brain Talk: More effective conversations through clean languageBrain Talk: More effective conversations through clean language
Brain Talk: More effective conversations through clean language
Mike Bowler
 
Inside Enumerable
Inside EnumerableInside Enumerable
Inside Enumerable
Mike Bowler
 
Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...
Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...
Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...
Mike Bowler
 
Date Once
Date OnceDate Once
Date Once
Mike Bowler
 
Ruby For Java Programmers
Ruby For Java ProgrammersRuby For Java Programmers
Ruby For Java Programmers
Mike Bowler
 

More from Mike Bowler (7)

Retrospective Magic - Toronto Agile Conference
Retrospective Magic - Toronto Agile ConferenceRetrospective Magic - Toronto Agile Conference
Retrospective Magic - Toronto Agile Conference
 
Retrospective science
Retrospective scienceRetrospective science
Retrospective science
 
Brain Talk: More effective conversations through clean language
Brain Talk: More effective conversations through clean languageBrain Talk: More effective conversations through clean language
Brain Talk: More effective conversations through clean language
 
Inside Enumerable
Inside EnumerableInside Enumerable
Inside Enumerable
 
Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...
Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...
Exploring the magic behind dynamic finders: diving into ActiveRecord::Base.me...
 
Date Once
Date OnceDate Once
Date Once
 
Ruby For Java Programmers
Ruby For Java ProgrammersRuby For Java Programmers
Ruby For Java Programmers
 

Recently uploaded

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
Bhaskar Mitra
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
Abida Shariff
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 

Recently uploaded (20)

LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 

Continuous Delivery for Agile Teams

  • 1. CONTINUOUS DELIVERY (IN AN AGILE CONTEXT) Mike Bowler, Agile & Technical Coach Tweeting? Use @mike_bowler and #atmtl2013
  • 3. WHAT IS CONTINUOUS DELIVERY AND WHY SHOULD I CARE?
  • 4. AGILE PRINCIPLES SAY: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”
  • 5. AGILE PRINCIPLES SAY: “Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.”
  • 6. “Wait a minute! My company doesn’t want to deploy that often!” that ant is t port t’s im deliver fas Wha CAN you
  • 8. , Tivoli, . Nagios w, etc PenVie O One master branch Production Monitoring and Alerts Rollbacks on error Deploy to production udson, Verify expected enkins / H J istrano, behaviour S, Cap e shell TF omemad, etc. H Compile and scripts Package Pull from master branch
  • 9. WHAT COULD GO WRONG? We could put something new in production that doesn’t work or we could break something that used to work! We could put a half finished feature into production before it was ready and confuse the users! We could kick the users off the system in the middle of doing their work
  • 10. HOW DID WE DEAL WITH THESE IN THE PAST? We had long manual test cycles between releases! We typically deployed off-hours when nobody was using the system e’re e if w utes easibl 15 min ot f very N ying e deplo
  • 11. PRE-REQUISITES ARE HARD Able to deploy to production at the busiest time of the day with no visible changes - no unexpected changes, no downtime! Have sufficient monitoring to know when something goes wrong and the ability to rapidly fix it or roll back to a known good state! No manual processes after code has been checked in. Every step is automated.! Holistic view of the process, from customer request to production support. Team is bigger than just the devs.
  • 12. DB migration hip ns ma fts ra Continuous integration One click deploy Configuration management One click rollback Provisioning Zero downtime deploy C Automation Courage Pride of work Common Goal Agile modeling Evolutionary design Design Cluster immune system Feature flags Comparative testing Simple design Whole Team Usability Measurements Stress testing Workin people g with o your de utside v team Alerts Engaged people Monitoring Sustainable pace Regular retrospectives Capacity Individuals Compliance ATDD Planning Continuous Delivery Scalability Executable specifications BDD TDD Rapid Feedback Frequent check-ins Single codebase Continuous improvement Version control Functional Configuration management Exploratory testing Performance Dependency management Cross-functional teams Incremental development Co-located teams Pair programming High communication Daily standups Refactoring Dev Team Coding standards Collective code ownership Shared understanding Informational workspace Simple architecture Small Stories hin it g w am kin te or ur W yo © 2013 Gargoyle Software Inc
  • 14. COURAGE Courage to say no to requests that compromise the teams values! Courage to say code quality isn’t high enough! Courage to say these deadlines aren’t realistic! Courage to escalate issues that nobody wants to talk about
  • 15. “Take pride in what you do. The kind of pride I'm talking about is not the arrogant puffed-up kind; it's just the whole idea of caring - fiercely caring.” Arnold Jacob "Red" Auerbach was an American basketball coach of the Washington Capitols, the Tri-Cities Blackhawks and the Boston Celtics. http://en.wikipedia.org/wiki/Red_Auerbach
  • 16. EVOLUTIONARY DESIGN & INCREMENTAL DEVELOPMENT Design and build only what you need today! YAGNI : “You aren’t going to need it”
  • 17. SIMPLE DESIGN “A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a working simple system.” -- Gall's Law
  • 18. ENGAGED PEOPLE Continuous improvement (Sharpening the saw)! Sustainable Pace! Regular retrospectives
  • 19. AUTOMATED TESTS ations ecific ble Sp ecuta Ex A section of executable code that can be run repeatedly to ensure that our production code does what it is supposed to do! Why is it important to automate these?
  • 20. AUTOMATED TESTS ations ecific ble Sp ecuta Ex Techniques! ATDD (Acceptance Test Driven Development)! BDD (Behaviour Driven Development)! TDD (Test Driven Development)! All write specifications first. Why is this important?
  • 21. EXPLORATORY TESTING Looking for issues! Done earlier in the process
  • 23. REFACTORING Code refactoring is a “disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behaviour”, undertaken in order to improve some of the nonfunctional attributes of the software. ! ! Advantages include improved code readability and reduced complexity to improve the maintainability of the source code, as well as a more expressive internal architecture or object model to improve extensibility.! ! -- Wikipedia entry on Refactoring
  • 24. “The trouble with quick and dirty is that dirty remains long after quick has been forgotten.” Steven C. McConnell is an author of many software engineering textbooks including Code Complete, Rapid Development, and Software Estimation. http://en.wikipedia.org/wiki/Steve_McConnell
  • 28. COLLECTIVE CODE OWNERSHIP We all own the code! We all keep it clean! Clean up the garbage, no matter who left it like that! Freedom to make any change, anywhere in the code base
  • 31. CROSS FUNCTIONAL TEAMS Everyone should know a little of everything! Should everyone be able to take a vacation? Even the specialists?
  • 32. CONFIGURATION MANAGEMENT Use version control! Check in everything that can’t be regenerated! Check in frequently
  • 33. BRANCHING Avoid feature branches! Avoid anything that requires manual merging
  • 34. This model assumes one ! branch. ! ! Avoid feature branches. Production Monitoring and Alerts Rollbacks on error Deploy to production Verify expected behaviour Compile and Package Pull from master branch
  • 35. One branch ! per developer Production Monitoring and Alerts Deploy to production Verify expected behaviour Rollbacks on error Compile and package Merge with master branch Verify expected behaviour Verify expected behaviour Verify expected behaviour Compile and Package Compile and Package Compile and Package Merge with local copy of master Merge with local copy of master Merge with local copy of master Pull from Amy’s branch Pull from Bob’s branch Pull from Carol’s branch
  • 38. PLANNING & MEASUREMENT Plan for production usage! Capacity planning! Compliance! Scalability! ! Stress testing! Comparative measurements
  • 39. MONITORING & ALERTS Monitor all production usage and trigger alerts for abnormal conditions.! How do operations know what conditions are abnormal?
  • 40. FEATURE FLAGS A/B testing! Hiding incomplete features! Enabling features based on permissions
  • 41. COMMON GOAL How does each group get measured?! Developers! Testers! DBA’s! Operations staff! Are those measurements helping or hurting the overall goal?
  • 42. AUTOMATION No more manual processes! Full automation of deploy and rollback, including database changes
  • 43. MORE ADVANCED AUTOMATION Provisioning! Getting a new machine up and running ! Configuration management! Making changes to a machine already running! Cluster immune system! Automated rollbacks if the new deploy doesn’t meet defined acceptable thresholds
  • 44. RECAP
  • 45. Production Monitoring and Alerts Rollbacks on error Deploy to production Verify expected behaviour Compile and Package Pull from master branch
  • 46. PRE-REQUISITES Able to deploy to production at the busiest time of the day with no visible changes - no unexpected changes, no downtime! Have sufficient monitoring to know when something goes wrong and the ability to rapidly fix it or roll back to a known good state! No manual processes after code has been checked in. Every step is automated.! Holistic view of the process, from customer request to production support. Team is bigger than just the devs.
  • 47. DB migration hip ns ma fts ra Continuous integration One click deploy Configuration management One click rollback Provisioning Zero downtime deploy C Automation Courage Pride of work Common Goal Agile modeling Evolutionary design Design Cluster immune system Feature flags Comparative testing Simple design Whole Team Usability Measurements Stress testing Workin people g with o your de utside v team Alerts Engaged people Monitoring Sustainable pace Regular retrospectives Capacity Individuals Compliance ATDD Planning Continuous Delivery Scalability Executable specifications BDD TDD Rapid Feedback Frequent check-ins Single codebase Continuous improvement Version control Functional Configuration management Exploratory testing Performance Dependency management Cross-functional teams Incremental development Co-located teams Pair programming High communication Daily standups Refactoring Dev Team Coding standards Collective code ownership Shared understanding Informational workspace Simple architecture Small Stories hin it g w am kin te or ur W yo © 2013 Gargoyle Software Inc
  • 48. “Design and programming are human activities; forget that and all is lost.” Bjarne Stroustrup is a Danish computer scientist, most notable for the creation and the development of the widely used C++ programming language. http://en.wikipedia.org/wiki/Bjarne_Stroustrup
  • 50. CONTACTING ME Mike Bowler! Agile & Technical Coach ! ! mbowler@GargoyleSoftware.com! Cell: 905 409-7052! Twitter: @mike_bowler! ! Other links for me on Facebook, Google+ etc at! http://www.GargoyleSoftware.com/mike_bowler
  • 52. DB migration hip ns ma fts ra Continuous integration One click deploy Configuration management One click rollback Provisioning Zero downtime deploy C Automation Courage Pride of work Common Goal Agile modeling Evolutionary design Design Cluster immune system Feature flags Comparative testing Simple design Whole Team Usability Measurements Stress testing Workin people g with o your de utside v team Alerts Engaged people Monitoring Sustainable pace Regular retrospectives Capacity Individuals Compliance ATDD Planning Continuous Delivery Scalability Executable specifications BDD TDD Rapid Feedback Frequent check-ins Single codebase Continuous improvement Version control Functional Configuration management Exploratory testing Performance Dependency management Cross-functional teams Incremental development Co-located teams Pair programming High communication Daily standups Refactoring Dev Team Coding standards Collective code ownership Shared understanding Informational workspace Simple architecture Small Stories Mike Bowler hin it Agile & Technical Coach © 2013 Gargoyle Software Inc g w am (905) 409-7052 kin te r r mbowler@GargoyleSoftware.com Woyou @mike_bowler
  • 53. Production Monitoring and Alerts Rollbacks on error Deploy to production Verify expected behaviour Compile and Package Pull from master branch Mike Bowler Agile & Technical Coach (905) 409-7052 mbowler@GargoyleSoftware.com @mike_bowler