SlideShare a Scribd company logo
@paul_boocock paulboocock@codeweavers.net
One Trunk, One Pipeline, One Truth
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within Six Months?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within Three Months?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within One Month?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within One Week?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within One Day?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within One Hour?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within 30 Minutes?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
Within 15 Minutes?
Question
How long would it take your business to safely deploy a change that involves
one line of code to the production environment?
How Low?!?
Cycle Time
Lowering Cycle Time is something to strive for
Can be achieved through automation
Creating a reliable, predictable, visible and largely automated process
with well understood risks.
Caveats
Co-located team (works best)
SaaS Platform perhaps makes this easier?
Unknown how well it scales beyond mid sized development teams
Will probably require some time upfront
No branching (and no merging!)
Lets talk about Version Control
One Trunk
Continuous Integration
Source Control (Centralised)
Commit Frequently
Automatic Builds
Automated Tests
Staging Environment
Build Fast
Build Every Commit
Make it visible
Commit & Deploy Frequently
Date Commits
Staging
Deploy
Production
Deploy
Monday 0 0 0
Tuesday 154 119 115
Wednesday 220 70 56
Thursday 236 123 157
Friday 79 47 51
w/c 1st May 2017
Bank
Holiday!
The Pipeline
So with all these features in place, how does it all stitch together?
The Truth
This means our local environment is only a few commits ahead of live
This effectively gives us one truth for our entire codebase
We’re always in sync with one another
A few extra ideas for you…
Early Feedback
The build and tests should be fast – go parallel if possible
Test coverage should be high – aim for 75%+
If it breaks we cannot continue
Prevents defects getting to production
Every commit can be released
Every commit should be safe enough to be deployed to production
Commits should be as small as possible – single file?!?
Our statistics shows fewer failures with smaller commits
Every commit can be released
Usually leads to better code quality and maintainability
Can use feature toggles if required but try to avoid
Blue Green Deployments are a nice way to avoid these
Working software over comprehensive documentation
Deploy Frequently
Every commit should be deployable
So deploy them!
Get early feedback on feature from clients
Allows customers to change the direction
Ensure any issues can be found earlier
Done when released
Deliverables are not done until they are at least in production
Kanban board reflects this
Only done when delivering value to the customer
Customer should be involved!
Customer collaboration over contract negotiation
Responding to change over following a plan
CI Essentials
Unable to check in when build is broken
Run all tests before committing
Never go home on a broken build
Be ready to revert
Don’t comment out failing tests
Take responsibility
Everybody is responsible
Ensure that everybody is involved in deploying their commits
Take ownership of your own work
Fail early / feedback fast so you can fix it quickly
No one person responsible for deployment
Remove the barriers in your teams
Pair Programming
Not doing it? Start! Or at least try it.
Our statistics shows fewer failures when pairing
Your quality will increase
You will go faster
Individuals and interactions over processes and tools
Your computer is disposable
Imagine a world where your computer gets re-imaged every evening
A clean slate to work from every morning
How would your way of working change?
To summarise…
Iterate & delivery quickly
Reduce bottlenecks
Increases visibility
Work Sustainably
And occasionally…
Break things (but we can fix them quickly!)
Thank you!

More Related Content

What's hot

Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
JAXLondon_Conference
 
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Manuel Padilha
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Cristian Andreica
 
Agile Software Development for Non-Developers
Agile Software Development for Non-DevelopersAgile Software Development for Non-Developers
Agile Software Development for Non-Developers
hamvocke
 
Software Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterSoftware Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it better
Tasktop
 
Seven Mistakes During Devops Implementation
Seven Mistakes During Devops ImplementationSeven Mistakes During Devops Implementation
Seven Mistakes During Devops Implementation
JanBask Training
 
Devops1
Devops1Devops1
Devops1
Yassine NOURI
 
Agile brazil2013poised
Agile brazil2013poisedAgile brazil2013poised
Agile brazil2013poisedrebeccajp42
 
DevOps: Why Should We Care?
DevOps: Why Should We Care?DevOps: Why Should We Care?
DevOps: Why Should We Care?
Kasun Kodagoda
 
Understanding devops
Understanding devopsUnderstanding devops
Understanding devops
James Samuel
 
DevOps – the future of Agile – why, what, how? Agile Israel 2014
DevOps – the future of Agile – why, what, how? Agile Israel 2014DevOps – the future of Agile – why, what, how? Agile Israel 2014
DevOps – the future of Agile – why, what, how? Agile Israel 2014
Yuval Yeret
 
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Site Reliability Engineering (SRE) - Tech Talk by Keet SugathadasaSite Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Keet Sugathadasa
 
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Agile Lietuva
 
Jan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsJan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wants
Agile Lietuva
 
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionEuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Devoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolutionDevoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolution
Bert Jan Schrijver
 
Titas Lapinskas - Technical Team Leader in Agile
Titas Lapinskas - Technical Team Leader in AgileTitas Lapinskas - Technical Team Leader in Agile
Titas Lapinskas - Technical Team Leader in Agile
Agile Lietuva
 
Myths of Product Development
Myths of Product DevelopmentMyths of Product Development
Myths of Product Development
Shoaib Shaukat
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentation
Nikolas Vourlakis
 
Continuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a TimeContinuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a Time
TechWell
 

What's hot (20)

Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
 
Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)Doing agile with an ISO-20000 Telco (AgilePT 2015)
Doing agile with an ISO-20000 Telco (AgilePT 2015)
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Agile Software Development for Non-Developers
Agile Software Development for Non-DevelopersAgile Software Development for Non-Developers
Agile Software Development for Non-Developers
 
Software Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it betterSoftware Developer Productivity: What we know and how to make it better
Software Developer Productivity: What we know and how to make it better
 
Seven Mistakes During Devops Implementation
Seven Mistakes During Devops ImplementationSeven Mistakes During Devops Implementation
Seven Mistakes During Devops Implementation
 
Devops1
Devops1Devops1
Devops1
 
Agile brazil2013poised
Agile brazil2013poisedAgile brazil2013poised
Agile brazil2013poised
 
DevOps: Why Should We Care?
DevOps: Why Should We Care?DevOps: Why Should We Care?
DevOps: Why Should We Care?
 
Understanding devops
Understanding devopsUnderstanding devops
Understanding devops
 
DevOps – the future of Agile – why, what, how? Agile Israel 2014
DevOps – the future of Agile – why, what, how? Agile Israel 2014DevOps – the future of Agile – why, what, how? Agile Israel 2014
DevOps – the future of Agile – why, what, how? Agile Israel 2014
 
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Site Reliability Engineering (SRE) - Tech Talk by Keet SugathadasaSite Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
Site Reliability Engineering (SRE) - Tech Talk by Keet Sugathadasa
 
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
 
Jan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wantsJan de Vries - How to convince your boss that it is DevOps that he wants
Jan de Vries - How to convince your boss that it is DevOps that he wants
 
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolutionEuregJUG 2016-01-07 - Swimming upstream in the container revolution
EuregJUG 2016-01-07 - Swimming upstream in the container revolution
 
Devoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolutionDevoxx BE 2015 - Swimming upstream in the container revolution
Devoxx BE 2015 - Swimming upstream in the container revolution
 
Titas Lapinskas - Technical Team Leader in Agile
Titas Lapinskas - Technical Team Leader in AgileTitas Lapinskas - Technical Team Leader in Agile
Titas Lapinskas - Technical Team Leader in Agile
 
Myths of Product Development
Myths of Product DevelopmentMyths of Product Development
Myths of Product Development
 
Software testing presentation
Software testing presentationSoftware testing presentation
Software testing presentation
 
Continuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a TimeContinuous Delivery in a Legacy Shop—One Step at a Time
Continuous Delivery in a Legacy Shop—One Step at a Time
 

Similar to One trunk one pipeline one truth

Dev ops culture and practices
Dev ops culture  and  practicesDev ops culture  and  practices
Dev ops culture and practices
AnkaraCloud
 
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 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
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.au
evanbottcher
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
DBmaestro - Database DevOps
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
Mohamed Samy
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Stein Inge Morisbak
 
Top DevOps Best Practices for a Successful Transition in 2023
Top DevOps Best Practices for a Successful Transition in 2023Top DevOps Best Practices for a Successful Transition in 2023
Top DevOps Best Practices for a Successful Transition in 2023
SofiaCarter4
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
Michele Orselli
 
Boast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CDBoast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CD
Zoe Gilbert
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
LGS, GBHS&IC, University Of South-Asia, TARA-Technologies
 
Q!Digitz
Q!Digitz Q!Digitz
Continuous everything
Continuous everythingContinuous everything
Continuous everything
TEST Huddle
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
Nitin Bhide
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryXebiaLabs
 
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
XebiaLabs
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Joseph Wang
 
Continuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessContinuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps Success
TechWell
 
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
 
Patterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updatesPatterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updates
DISHAMESWANIA
 

Similar to One trunk one pipeline one truth (20)

Dev ops culture and practices
Dev ops culture  and  practicesDev ops culture  and  practices
Dev ops culture and practices
 
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 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
 
From Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.auFrom Monoliths to Microservices at Realestate.com.au
From Monoliths to Microservices at Realestate.com.au
 
Continuous delivery best practices and essential tools
Continuous delivery best practices and essential toolsContinuous delivery best practices and essential tools
Continuous delivery best practices and essential tools
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Top DevOps Best Practices for a Successful Transition in 2023
Top DevOps Best Practices for a Successful Transition in 2023Top DevOps Best Practices for a Successful Transition in 2023
Top DevOps Best Practices for a Successful Transition in 2023
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
Boast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CDBoast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CD
 
Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment Continuous Integration vs Continuous Delivery vs Continuous Deployment
Continuous Integration vs Continuous Delivery vs Continuous Deployment
 
Q!Digitz
Q!Digitz Q!Digitz
Q!Digitz
 
Continuous everything
Continuous everythingContinuous everything
Continuous everything
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous DeliveryWebinar: Demonstrating Business Value for DevOps & Continuous Delivery
Webinar: Demonstrating Business Value for DevOps & Continuous Delivery
 
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
Measure Your DevOps Success: Using Goal-based KPIs to Drive Results and Demon...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps SuccessContinuous Testing: A Key to DevOps Success
Continuous Testing: A Key to DevOps Success
 
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...
 
Patterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updatesPatterns and Antipatterns for Software updates
Patterns and Antipatterns for Software updates
 

More from Paul Boocock

The Toyota Way in Action
The Toyota Way in ActionThe Toyota Way in Action
The Toyota Way in Action
Paul Boocock
 
Creating an agile, adaptive, and forward thinking company
Creating an agile, adaptive, and forward thinking companyCreating an agile, adaptive, and forward thinking company
Creating an agile, adaptive, and forward thinking company
Paul Boocock
 
Writing RESTful Web Services
Writing RESTful Web ServicesWriting RESTful Web Services
Writing RESTful Web Services
Paul Boocock
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests Effectively
Paul Boocock
 
Codeweavers Development - The Toyota Way
Codeweavers Development - The Toyota WayCodeweavers Development - The Toyota Way
Codeweavers Development - The Toyota Way
Paul Boocock
 
Releasing the dopamine
Releasing the dopamineReleasing the dopamine
Releasing the dopamine
Paul Boocock
 
Clean Code Pt I
Clean Code Pt IClean Code Pt I
Clean Code Pt I
Paul Boocock
 
Habits
HabitsHabits
Habits
Paul Boocock
 
Bringing the cloud into the classroom
Bringing the cloud into the classroomBringing the cloud into the classroom
Bringing the cloud into the classroom
Paul Boocock
 

More from Paul Boocock (9)

The Toyota Way in Action
The Toyota Way in ActionThe Toyota Way in Action
The Toyota Way in Action
 
Creating an agile, adaptive, and forward thinking company
Creating an agile, adaptive, and forward thinking companyCreating an agile, adaptive, and forward thinking company
Creating an agile, adaptive, and forward thinking company
 
Writing RESTful Web Services
Writing RESTful Web ServicesWriting RESTful Web Services
Writing RESTful Web Services
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests Effectively
 
Codeweavers Development - The Toyota Way
Codeweavers Development - The Toyota WayCodeweavers Development - The Toyota Way
Codeweavers Development - The Toyota Way
 
Releasing the dopamine
Releasing the dopamineReleasing the dopamine
Releasing the dopamine
 
Clean Code Pt I
Clean Code Pt IClean Code Pt I
Clean Code Pt I
 
Habits
HabitsHabits
Habits
 
Bringing the cloud into the classroom
Bringing the cloud into the classroomBringing the cloud into the classroom
Bringing the cloud into the classroom
 

Recently uploaded

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 

Recently uploaded (20)

Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

One trunk one pipeline one truth

  • 2. Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 3. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within Six Months?
  • 4. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within Three Months?
  • 5. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within One Month?
  • 6. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within One Week?
  • 7. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within One Day?
  • 8. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within One Hour?
  • 9. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within 30 Minutes?
  • 10. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? Within 15 Minutes?
  • 11. Question How long would it take your business to safely deploy a change that involves one line of code to the production environment? How Low?!?
  • 12. Cycle Time Lowering Cycle Time is something to strive for Can be achieved through automation Creating a reliable, predictable, visible and largely automated process with well understood risks.
  • 13. Caveats Co-located team (works best) SaaS Platform perhaps makes this easier? Unknown how well it scales beyond mid sized development teams Will probably require some time upfront No branching (and no merging!)
  • 14. Lets talk about Version Control
  • 16. Continuous Integration Source Control (Centralised) Commit Frequently Automatic Builds Automated Tests Staging Environment Build Fast Build Every Commit Make it visible
  • 17. Commit & Deploy Frequently Date Commits Staging Deploy Production Deploy Monday 0 0 0 Tuesday 154 119 115 Wednesday 220 70 56 Thursday 236 123 157 Friday 79 47 51 w/c 1st May 2017 Bank Holiday!
  • 18. The Pipeline So with all these features in place, how does it all stitch together?
  • 19. The Truth This means our local environment is only a few commits ahead of live This effectively gives us one truth for our entire codebase We’re always in sync with one another
  • 20. A few extra ideas for you…
  • 21. Early Feedback The build and tests should be fast – go parallel if possible Test coverage should be high – aim for 75%+ If it breaks we cannot continue Prevents defects getting to production
  • 22. Every commit can be released Every commit should be safe enough to be deployed to production Commits should be as small as possible – single file?!? Our statistics shows fewer failures with smaller commits
  • 23. Every commit can be released Usually leads to better code quality and maintainability Can use feature toggles if required but try to avoid Blue Green Deployments are a nice way to avoid these
  • 24. Working software over comprehensive documentation
  • 25. Deploy Frequently Every commit should be deployable So deploy them! Get early feedback on feature from clients Allows customers to change the direction Ensure any issues can be found earlier
  • 26. Done when released Deliverables are not done until they are at least in production Kanban board reflects this Only done when delivering value to the customer Customer should be involved!
  • 27. Customer collaboration over contract negotiation Responding to change over following a plan
  • 28. CI Essentials Unable to check in when build is broken Run all tests before committing Never go home on a broken build Be ready to revert Don’t comment out failing tests Take responsibility
  • 29. Everybody is responsible Ensure that everybody is involved in deploying their commits Take ownership of your own work Fail early / feedback fast so you can fix it quickly No one person responsible for deployment Remove the barriers in your teams
  • 30. Pair Programming Not doing it? Start! Or at least try it. Our statistics shows fewer failures when pairing Your quality will increase You will go faster
  • 31. Individuals and interactions over processes and tools
  • 32. Your computer is disposable Imagine a world where your computer gets re-imaged every evening A clean slate to work from every morning How would your way of working change?
  • 33. To summarise… Iterate & delivery quickly Reduce bottlenecks Increases visibility Work Sustainably And occasionally… Break things (but we can fix them quickly!)