SlideShare a Scribd company logo
1 of 48
@paul_boocock paulboocock@codeweavers.net
Continuously Delivering Software
to Big Brands
Step 1.
Introduce myself!
Step 2.
Talk about the fundamentals
Step 3.
How do we do it at Codeweavers?
Continuously Delivering Software to Big Brands
• Some Northern fella…
Academy Leader
Who am I?
Delivering software to a production environment is often
one of the most riskiest and stressful parts of the software
lifecycle.
Delivering Software
How can we:
• Reduce Risk?
• Eliminate Tedious Work?
• Increase Confidence?
For many organisations,
releasing software is:
• Manually Intensive
• Error Prone
• Risky
Big Brands
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?!?
Question
How long would it take your business to safely deploy a
change that involves one line of code to the production
environment?
This is known as your Cycle Time
Question
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.
Cycle Time
Technologies
The foundation of what we will talk about today
Vital to have a solid CI environment before moving
onto continuous delivery
Continuous Integration
Source Control
Commit Frequently
Automatic Builds
Automated Tests
Staging Environment
Continuous Integration
Build Fast
Build Every Commit
Make it visible
Source Control
Commit Frequently
Automatic Builds
Automated Tests
Staging Environment
Continuous Integration
Build Fast
Build Every Commit
Make it visible
Unable to commit 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
The Essentials
CI Build Process
Total Build Time: ~4 Minutes
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
Early Feedback
Every commit should be safe enough to be deployed to
production
Usually leads to better code quality and maintainability
Can use feature toggles if required but try to avoid
Every commit can be released
Manual Deployment
Has to be manually tested to ensure everything works
Leads to tense release day
Prone to human error
Take hours assuming everything goes well
Deployment
The alternative…
Automate your deploys
Only human element is to pick the environment and press deploy
Will lead to a repeatable and reliable deployment process
No reliance on the deploy expert at work
Deployment
Isn’t just the way we deploy, it’s essential to our business
• Commit and build
• Deploy to staging environment
• Deploy to live
Continuous Delivery
Every commit should be deployable
So deploy them!
Get early feedback on feature from clients
Ensure any issues can be found earlier
Deploy Frequently
Day Commits
Staging
Deploy
Production
Deploy
Friday 72 181 14
Thursday 126 115 23
Wednesday 134 86 25
Tuesday 94 37 11
Monday 131 62 27
Deliverables are not done until they are at least in
production
Kanban board reflects this
Only done when delivering value to the customer
Done when released
Ensure that everybody is involved in deploying their code
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
Everybody is responsible
So with all these features in place, how does it all stitch
together?
Developer Journey – From Story to Live
Move on to next MMF
(Minimum Marketable Feature)
Developer Journey – From Story to Live
Write some code!
Developer Journey – From Story to Live
Commit Frequently
Developer Journey – From Story to Live
Monitor the build on CI (~4 Minutes)
CruiseControl.NET & Nant scripts automate this
Developer Journey – From Story to Live
If successful deploy to staging (~2 Minutes)
Developer Journey – From Story to Live
If successful deploy to production (~4 Minutes)
Developer Journey – From Story to Live
And we’re live!
If everything goes
smoothly, from
commit to production in
15 minutes
Developer Journey – From Story to Live
Keep things visible
Keep things visible
Started tracking Cycle Time in 2016 to see how long it takes a
code change to go live
Currently averages at 7.32 hours from commit to live
Cycle Time
What does it give us?
Iterate & deliver quickly
Reduces bottlenecks in the delivery pipeline
Increases visibility
Work Sustainably
Continuous Delivery helps towards working with
Sustainable Pace
Sustainable Pace
What does it give us?
Iterate & delivery quickly
Reduce bottlenecks
Increases visibility
Work Sustainably
And occasionally…
Break things (but we can fix them quickly!)
What do our clients get from it?
Continuous Delivery
Jez Humble & David Farley
ISBN13: 978-0-321-60191-9
The Bible

More Related Content

What's hot

Agile at Salesforce From theory to practice, how to be agile at scale
Agile at Salesforce From theory to practice, how to be agile at scaleAgile at Salesforce From theory to practice, how to be agile at scale
Agile at Salesforce From theory to practice, how to be agile at scaleSalesforce Engineering
 
Accelerate agilely with salesforce
Accelerate agilely with salesforceAccelerate agilely with salesforce
Accelerate agilely with salesforceSumma
 
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 revolutionBert 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 revolutionBert Jan Schrijver
 
How technical excellence helps in LeSS adoption
How technical excellence helps in LeSS adoptionHow technical excellence helps in LeSS adoption
How technical excellence helps in LeSS adoptionAnton Bevzuk
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Tomas Riha
 
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
 
Continuous Deployment (english)
Continuous Deployment (english)Continuous Deployment (english)
Continuous Deployment (english)Titas Norkūnas
 
NextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionNextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionBert Jan Schrijver
 
Software Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionSoftware Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionBert Jan Schrijver
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation WorkshopJules Pierre-Louis
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...Vincent Biret
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategiesHylke Stapersma
 
The Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyThe Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyXebiaLabs
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and BuildsBhavin Javia
 
Continuous business goal validation
Continuous business goal validationContinuous business goal validation
Continuous business goal validationHylke Stapersma
 
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 SugathadasaKeet Sugathadasa
 
We thought we were doing continuous delivery and then...
We thought we were doing continuous delivery and then... We thought we were doing continuous delivery and then...
We thought we were doing continuous delivery and then... Suzie Prince
 

What's hot (20)

Agile at Salesforce From theory to practice, how to be agile at scale
Agile at Salesforce From theory to practice, how to be agile at scaleAgile at Salesforce From theory to practice, how to be agile at scale
Agile at Salesforce From theory to practice, how to be agile at scale
 
Accelerate agilely with salesforce
Accelerate agilely with salesforceAccelerate agilely with salesforce
Accelerate agilely with salesforce
 
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
 
How technical excellence helps in LeSS adoption
How technical excellence helps in LeSS adoptionHow technical excellence helps in LeSS adoption
How technical excellence helps in LeSS adoption
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.
 
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 ?
 
Continuous Deployment (english)
Continuous Deployment (english)Continuous Deployment (english)
Continuous Deployment (english)
 
NextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolutionNextBuild 2015 - Swimming upstream in the container revolution
NextBuild 2015 - Swimming upstream in the container revolution
 
Software Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolutionSoftware Development 2020 - Swimming upstream in the container revolution
Software Development 2020 - Swimming upstream in the container revolution
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
 
Dev ops
Dev opsDev ops
Dev ops
 
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...#SPSDetroit 2017  improving #DevOps using #microsoft business productivity to...
#SPSDetroit 2017 improving #DevOps using #microsoft business productivity to...
 
Continuous delivery test strategies
Continuous delivery test strategiesContinuous delivery test strategies
Continuous delivery test strategies
 
The Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the JourneyThe Business Case for DevOps - Justifying the Journey
The Business Case for DevOps - Justifying the Journey
 
Continuous Integration and Builds
Continuous Integration and BuildsContinuous Integration and Builds
Continuous Integration and Builds
 
Continuous business goal validation
Continuous business goal validationContinuous business goal validation
Continuous business goal validation
 
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
 
We thought we were doing continuous delivery and then...
We thought we were doing continuous delivery and then... We thought we were doing continuous delivery and then...
We thought we were doing continuous delivery and then...
 

Similar to Continuous Delivery Software Big Brands

One trunk one pipeline one truth
One trunk one pipeline one truthOne trunk one pipeline one truth
One trunk one pipeline one truthPaul Boocock
 
Continuous everything
Continuous everythingContinuous everything
Continuous everythingTEST Huddle
 
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 successAdam Stephensen
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationPreetam Palwe
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - FunaroCodemotion
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014David Funaro
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi qTomas Riha
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQTomas Riha
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuousMichele Orselli
 
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 2014Jwooldridge
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsMohamed Samy
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Tomas Riha
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryEberhard Wolff
 
Continuous Delivery (The newest)
Continuous Delivery (The newest)Continuous Delivery (The newest)
Continuous Delivery (The newest)Eduards Sizovs
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
How To Ensure Quality With Automation
How To Ensure Quality With AutomationHow To Ensure Quality With Automation
How To Ensure Quality With AutomationMindbowser Inc
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev opsAgile Montréal
 
Dev ops culture and practices
Dev ops culture  and  practicesDev ops culture  and  practices
Dev ops culture and practicesAnkaraCloud
 

Similar to Continuous Delivery Software Big Brands (20)

One trunk one pipeline one truth
One trunk one pipeline one truthOne trunk one pipeline one truth
One trunk one pipeline one truth
 
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
 
Continuous everything
Continuous everythingContinuous everything
Continuous everything
 
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
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Continuous delivery @ hi q
Continuous delivery @ hi qContinuous delivery @ hi q
Continuous delivery @ hi q
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
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
 
Introducing Continuous Integration Using Vsts
Introducing Continuous Integration Using VstsIntroducing Continuous Integration Using Vsts
Introducing Continuous Integration Using Vsts
 
Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...Continuous delivery its not about the technology, its about the people. @pipe...
Continuous delivery its not about the technology, its about the people. @pipe...
 
Five (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous DeliveryFive (easy?) Steps Towards Continuous Delivery
Five (easy?) Steps Towards Continuous Delivery
 
Continuous Delivery (The newest)
Continuous Delivery (The newest)Continuous Delivery (The newest)
Continuous Delivery (The newest)
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
How To Ensure Quality With Automation
How To Ensure Quality With AutomationHow To Ensure Quality With Automation
How To Ensure Quality With Automation
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Dev ops culture and practices
Dev ops culture  and  practicesDev ops culture  and  practices
Dev ops culture and practices
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 

More from Paul Boocock

The Toyota Way in Action
The Toyota Way in ActionThe Toyota Way in Action
The Toyota Way in ActionPaul 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 companyPaul Boocock
 
Writing RESTful Web Services
Writing RESTful Web ServicesWriting RESTful Web Services
Writing RESTful Web ServicesPaul Boocock
 
Writing Tests Effectively
Writing Tests EffectivelyWriting Tests Effectively
Writing Tests EffectivelyPaul Boocock
 
Codeweavers Development - The Toyota Way
Codeweavers Development - The Toyota WayCodeweavers Development - The Toyota Way
Codeweavers Development - The Toyota WayPaul Boocock
 
Releasing the dopamine
Releasing the dopamineReleasing the dopamine
Releasing the dopaminePaul Boocock
 
Bringing the cloud into the classroom
Bringing the cloud into the classroomBringing the cloud into the classroom
Bringing the cloud into the classroomPaul 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

costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 

Recently uploaded (20)

costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 

Continuous Delivery Software Big Brands

  • 2. Step 1. Introduce myself! Step 2. Talk about the fundamentals Step 3. How do we do it at Codeweavers? Continuously Delivering Software to Big Brands
  • 3. • Some Northern fella… Academy Leader Who am I?
  • 4. Delivering software to a production environment is often one of the most riskiest and stressful parts of the software lifecycle. Delivering Software How can we: • Reduce Risk? • Eliminate Tedious Work? • Increase Confidence? For many organisations, releasing software is: • Manually Intensive • Error Prone • Risky
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. How long would it take your business to safely deploy a change that involves one line of code to the production environment? How Low?!? Question
  • 15. How long would it take your business to safely deploy a change that involves one line of code to the production environment? This is known as your Cycle Time Question
  • 16. 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. Cycle Time
  • 18. The foundation of what we will talk about today Vital to have a solid CI environment before moving onto continuous delivery Continuous Integration
  • 19. Source Control Commit Frequently Automatic Builds Automated Tests Staging Environment Continuous Integration Build Fast Build Every Commit Make it visible
  • 20.
  • 21.
  • 22. Source Control Commit Frequently Automatic Builds Automated Tests Staging Environment Continuous Integration Build Fast Build Every Commit Make it visible
  • 23. Unable to commit 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 The Essentials
  • 24. CI Build Process Total Build Time: ~4 Minutes
  • 25. 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 Early Feedback
  • 26. Every commit should be safe enough to be deployed to production Usually leads to better code quality and maintainability Can use feature toggles if required but try to avoid Every commit can be released
  • 27. Manual Deployment Has to be manually tested to ensure everything works Leads to tense release day Prone to human error Take hours assuming everything goes well Deployment
  • 28. The alternative… Automate your deploys Only human element is to pick the environment and press deploy Will lead to a repeatable and reliable deployment process No reliance on the deploy expert at work Deployment
  • 29. Isn’t just the way we deploy, it’s essential to our business • Commit and build • Deploy to staging environment • Deploy to live Continuous Delivery
  • 30. Every commit should be deployable So deploy them! Get early feedback on feature from clients Ensure any issues can be found earlier Deploy Frequently Day Commits Staging Deploy Production Deploy Friday 72 181 14 Thursday 126 115 23 Wednesday 134 86 25 Tuesday 94 37 11 Monday 131 62 27
  • 31. Deliverables are not done until they are at least in production Kanban board reflects this Only done when delivering value to the customer Done when released
  • 32. Ensure that everybody is involved in deploying their code 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 Everybody is responsible
  • 33. So with all these features in place, how does it all stitch together? Developer Journey – From Story to Live
  • 34. Move on to next MMF (Minimum Marketable Feature) Developer Journey – From Story to Live
  • 35. Write some code! Developer Journey – From Story to Live
  • 36. Commit Frequently Developer Journey – From Story to Live
  • 37. Monitor the build on CI (~4 Minutes) CruiseControl.NET & Nant scripts automate this Developer Journey – From Story to Live
  • 38. If successful deploy to staging (~2 Minutes) Developer Journey – From Story to Live
  • 39. If successful deploy to production (~4 Minutes) Developer Journey – From Story to Live
  • 40. And we’re live! If everything goes smoothly, from commit to production in 15 minutes Developer Journey – From Story to Live
  • 43. Started tracking Cycle Time in 2016 to see how long it takes a code change to go live Currently averages at 7.32 hours from commit to live Cycle Time
  • 44. What does it give us? Iterate & deliver quickly Reduces bottlenecks in the delivery pipeline Increases visibility Work Sustainably
  • 45. Continuous Delivery helps towards working with Sustainable Pace Sustainable Pace
  • 46. What does it give us? Iterate & delivery quickly Reduce bottlenecks Increases visibility Work Sustainably And occasionally… Break things (but we can fix them quickly!)
  • 47. What do our clients get from it?
  • 48. Continuous Delivery Jez Humble & David Farley ISBN13: 978-0-321-60191-9 The Bible