SlideShare uma empresa Scribd logo
1 de 34
@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!

Mais conteúdo relacionado

Mais procurados

Agile brazil2013poised
Agile brazil2013poisedAgile brazil2013poised
Agile brazil2013poised
rebeccajp42
 

Mais procurados (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
 

Semelhante a One trunk one pipeline one truth

Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
Stein Inge Morisbak
 
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
XebiaLabs
 

Semelhante a 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
 

Mais de Paul Boocock

Mais de 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
 

Último

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 

Último (20)

%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 

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!)