SlideShare a Scribd company logo
1 of 53
Download to read offline
Practices, mechanisms and
organisational models
that can be applied to any
software project, big or
small, old or new.
Continuous
Delivery in a
Legacy
Environment
- Technical Architect at Planday
- Lead consultant at Lean Software
- 16+ Years in software
development, based in London &
Madrid
Peter Marshall
MAIL
info@leansoftwareservices.com
TWITTER
@petemar5hall
LINKEDIN
https://www.linkedin.com/in/petedmarshall
How many people are practicing
continuous delivery or have a devops
team/culture?
How long would it take your organisation to build
and safely deploy a change that involved just one
small feature or a single line of code?
Agile gave us..
“Continuous
delivery is about
focusing on
technical
excellence”
“Continuous Delivery is a
software development
discipline where you
build software in such a
way that the software can
be released to production
at any time.”
Martin Fowler, May 30, 2013
Key
Characteristics
1. YESTERDAY
Your software is
deployable
throughout its
lifecycle
Key Characteristics
1. YESTERDAY
Your team
prioritises
keeping the
software
deployable over
working on new
features
Key Characteristics
You can perform push-button deployments of any version of your
software to any environment on demand
Key Characteristics
Anybody can get
fast, automated
feedback on the
state of their
systems any time
somebody makes a
change to them
Key Characteristics
A quick look at
The Leading
Workforce
Collaboration
Solution
for shift based
businesses
Driven by simple,
powerful and beautifully
designed SaaS technology
Healthy & organic growth for 11 years
Investment from Creandum in 2014 ($3.75 million)
Global expansion
Founded
in 2004
70+ people
HQ in Copenhagen
Offices in
Oslo
Aalborg
Hanoi
London
New York
Founded in 2004
1. YESTERDAY
“Conquer the world in
the next 12 months!”
which translated to:
“Move into the USA with the
next 6-12 months”
“Be ahead of the game,
always”
“maintain our reputation of
producing quality software”
vs.
“to be able to deliver software quick, easily,
and with very low risk of failure”
“to be able to scale our systems very quickly”
Technical Goals
Web Portal
Models & Controllers
Business Logic
Data Access
Salary
Scheduler
Messaging
Services
Punchclock
REST
Sign Up Android iOS
Planday Monolith
Mobile
Databases
Supplementary Web Apps .net
“Always have at least some
idea of where you are now, and
where you want to go, and
share that with the team,
organisation, and even
customers.”
Where do you
start?
First pass.
Build Agent & Devel
The delivery pipeline
Pre commit tests
Code review
PO/UX review
Branch / Merge
Build
Unit tests
Contract tests
Component tests
Coverage
Static analysis
Component
performance
End to end
component tests
NFR tests
Exploratory Test
performance testing
Story sign off /
Demos
NFRs
Analytics
Monitoring
Production tests
canary or blue /
green release
CI Environments
Developer
Local
Pre-Production Production
Virtualised Full stack environments
Commit Auto-Deploy Promote Release
Build Pipeline:
There can be multiple pipelines, usually per system, should execute in minutes
Commit:
The commit can include changes to the infrastructure, database, or application code.
Outputs:
Software, infrastructure and configuration
Environment manifests
Release notes
stabilise
Remove the
fear. Remove unnecessary
human intervention from
the process.
Remove the magic.
Put simple continuous
integration in place, with build
monitors.
Put a simple deployment
mechanism in place.
Make it easy to clone, build, and
commit code.
first pass
Build Deployment ?
Second pass.
Improve our knowledge of the
state and behaviour of the system.
Simple environment provisioning.
Lets run some tests.
Logging and monitoring.
“A good, easily accessible
event & error monitoring
system is essential for anyone
releasing software. Build an
early warning system into your
environment!”
“Understanding your systems
steady state allows you to react
quickly to any deviation”
second pass
Build & Test
Deployment &
Provisioning Logging & Monitoring
Infrastructure - Environment provisioning
Back to the
business goal.
We had stabilised the system, made it easy to work with, and
now we had to win the business!
Put continuous delivery into ACTION!
Deliver whatever, whenever.
Scale quickly and safely.
Can we do something with our current monolith?
What about microservices, they
could solve all our problems, right?
we have a lot of user experience experiments
to do, we needed to support quick small
experiments. quick releasing.
Would modern UI frameworks be better to
work with than aged .net technologies?
As a business we knew
we would win the game
by focusing on user
experience, over making
or improving existing
features
How we did it
the
strangler
pattern
lipstick on the pig
Web Portal
Models & Controllers
Business Logic
Data Access
Salary
Scheduler
Messaging
Services
Punchclock
REST
Sign Up Android iOS
Planday Monolith
Mobile
Databases
Supplementary Web Apps
Existing Planday Monolith
Domain
Data Mapping /
Access
Salary
Scheduler
Messaging
Services
API
WebServer:IIS
Android iOS
Web Applications
Mobile
Windows
Databases
New Front End Modules (JS using REACT)
Punchclock Sign UpPortal
Existing Front End
broke direct dependencies
Introduced package
management
Introduced load
balancing
Introduced caching at the
application layer
technology geared to
rapid developmentincreased logging,
monitoring & analysis to
cover JS, Server,
Database, &
Infrastructure
adopted domain driven
development
feature toggling
Domain + BL
Data Mapping +
Access
Salary
Scheduler
Messaging
Services
API
WebServer:IIS
Android iOS
Mobile
Windows
Databases
Client side front end modules
Punchclock Sign UpPortal
Integration
Partners
Caching
Client side
Old Monolith
Load
Balancers
Backup
Servers
VM Hosts
Production &
Development
Database
Servers
Storage
Servers
Development
Servers
Production
Servers
Repurposed our infrastructure
Physical
Virtualisation
Organisation
How we restructured the
CPH Development Team
Hanoi Development Team
Teams working very much in silos.
Unaligned.
No process.
No management.
No attachment to the business.
Poor communication.
Before
Design Team
Product Team
Product Teams
Web Mobile API
Supporting Teams
Dev Ops Tech Management
All teams are cross functional with end-
to-end responsibility for one or more
parts of the system.
We use a mixture of scrum and
Kanban. Some teams use sprints,
others use flow based systems.
Common elements occur regardless
such as daily standups, estimation
sessions, & planning sessions.
Our architecture and deployment
strategy allow teams to release on their
own schedule with minimal impact to
others.
Virtual teams appear as and when the
need arises.
After
Marketing
The truth
is in
the data
Tech
Values
We value overall simplicity over localised simplicity.
We value software developed with a focus on
operation and maintenance in production.
Deliver in small batches
Don't do loads of things
Development process
Build > Deploy > Learn cycle
Product requirements are identified by a Product Group and then built by one or more product
teams
Initiatives that support long term business goal
Hypothesis driven with an aim to be proven by specific measurements
Feature toggling mechanisms allow experimentation, exploration and controlled feature launches
Master
Feature
Build the feature Toggle it on or off Measure the impact
smaller,
more
frequent
deliveries
Where are
we now?
Build Agent & Devel
Technical Foundations
Pre commit tests
Code review
PO/UX review
Branch / Merge
Build
Unit tests
Contract tests
Component tests
Coverage
Static analysis
Component
performance
End to end
component tests
NFR tests
Exploratory Test
performance testing
Story sign off /
Demos
NFRs
Analytics
Monitoring
Production tests
canary or blue /
green release
CI Environments
Developer
Local
Pre-Production Production
Virtualised Full stack environments
Commit Deploy Promote Release
Build Pipeline:
There can be multiple pipelines, usually per system
Commit:
The commit can include changes to the infrastructure, database, or application code.
Outputs:
Software, infrastructure and configuration
Environment manifests
Release notes
Learnings
We know we will fail sometimes
Simplicity is key
Common & share vision
Strong leadership
Thank
you!
TWITTER
@petemar5hall
Agile Consultant & Technical
Architect @planday
Peter Marshall
fiveMAIL
info@leansoftwareservices.com
LINKEDIN
https://www.linkedin.com/in/
petedmarshall

More Related Content

What's hot

DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryRahul Tilloo
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsPRATYUSH SINHA
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April MeetupShweta Sadawarte
 
DevOps – The Evolution of Agile
DevOps – The Evolution of AgileDevOps – The Evolution of Agile
DevOps – The Evolution of AgileQualitest
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsSeaLights
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringSushma
 
Engineering DevOps to meet Business Goals
 Engineering DevOps to meet Business Goals Engineering DevOps to meet Business Goals
Engineering DevOps to meet Business GoalsMarc Hornbeek
 
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi SharmaAgile Testing Alliance
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should knowRichard Cheng
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with RubyPierluigi Riti
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegasjaredrrichardson
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsTEST Huddle
 
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.ioSoftware Guru
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your OrganizationDalibor Blazevic
 
DevOps Masterclass Bundle
DevOps Masterclass BundleDevOps Masterclass Bundle
DevOps Masterclass BundleJohn Alex
 

What's hot (20)

Continuous testing for devops
Continuous testing for devopsContinuous testing for devops
Continuous testing for devops
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
DevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT IndustryDevOps - Overview - One of the Top Trends in IT Industry
DevOps - Overview - One of the Top Trends in IT Industry
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps overview 2019-04-13 Nelkinda April Meetup
DevOps overview  2019-04-13 Nelkinda April MeetupDevOps overview  2019-04-13 Nelkinda April Meetup
DevOps overview 2019-04-13 Nelkinda April Meetup
 
DevOps – The Evolution of Agile
DevOps – The Evolution of AgileDevOps – The Evolution of Agile
DevOps – The Evolution of Agile
 
Continuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOpsContinuous Testing - What QA means for DevOps
Continuous Testing - What QA means for DevOps
 
CI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality EngineeringCI/CT/CD and Role of Quality Engineering
CI/CT/CD and Role of Quality Engineering
 
Engineering DevOps to meet Business Goals
 Engineering DevOps to meet Business Goals Engineering DevOps to meet Business Goals
Engineering DevOps to meet Business Goals
 
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
 
DevOps Introduction
DevOps IntroductionDevOps Introduction
DevOps Introduction
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
CI-CD and DevOps with Ruby
CI-CD and DevOps with RubyCI-CD and DevOps with Ruby
CI-CD and DevOps with Ruby
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
The Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOpsThe Evolution of Test Automation for DevOps
The Evolution of Test Automation for DevOps
 
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
¿Qué es DevOps y por qué es importante en el Ciclo de Software? por michelada.io
 
How to implement DevOps in your Organization
How to implement DevOps in your OrganizationHow to implement DevOps in your Organization
How to implement DevOps in your Organization
 
DevOps Masterclass Bundle
DevOps Masterclass BundleDevOps Masterclass Bundle
DevOps Masterclass Bundle
 

Similar to Practices and organisational models for continuous delivery in legacy environments

How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOpsCygnet Infotech
 
How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOpsCygnet Infotech
 
Visual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughAngela Dugan
 
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
 
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 2023SofiaCarter4
 
Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...
Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...
Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...Splunk
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps Chetan Gordhan
 
DevOps for the Discouraged
DevOps for the Discouraged DevOps for the Discouraged
DevOps for the Discouraged James Wickett
 
DevOps at Scale: How Datadog is using AWS and PagerDuty to Keep Pace with Gr...
DevOps at Scale:  How Datadog is using AWS and PagerDuty to Keep Pace with Gr...DevOps at Scale:  How Datadog is using AWS and PagerDuty to Keep Pace with Gr...
DevOps at Scale: How Datadog is using AWS and PagerDuty to Keep Pace with Gr...Amazon Web Services
 
Har du en DevOps i ditt team?
Har du en DevOps i ditt team?Har du en DevOps i ditt team?
Har du en DevOps i ditt team?Solidify
 
Mainframe Automation: A Panel Discussion
Mainframe Automation: A Panel DiscussionMainframe Automation: A Panel Discussion
Mainframe Automation: A Panel DiscussionDevOps.com
 
Webinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringWebinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringOpenCredo
 
06 operations and feedback
06   operations and feedback06   operations and feedback
06 operations and feedbackClemens Reijnen
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationPreetam Palwe
 
Continuous Delivery 9th Bit
Continuous Delivery 9th BitContinuous Delivery 9th Bit
Continuous Delivery 9th BitObsidianSystems
 

Similar to Practices and organisational models for continuous delivery in legacy environments (20)

How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOps
 
How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOps
 
Visual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools WalkthroughVisual Studio ALM and DevOps Tools Walkthrough
Visual Studio ALM and DevOps Tools Walkthrough
 
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
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
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
 
Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...
Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...
Data-Driven DevOps: Mining Machine Data for 'Metrics that Matter' in a DevOps...
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
Ibm innovate ci for system z
Ibm innovate ci for system zIbm innovate ci for system z
Ibm innovate ci for system z
 
DevOps for the Discouraged
DevOps for the Discouraged DevOps for the Discouraged
DevOps for the Discouraged
 
DevOps at Scale: How Datadog is using AWS and PagerDuty to Keep Pace with Gr...
DevOps at Scale:  How Datadog is using AWS and PagerDuty to Keep Pace with Gr...DevOps at Scale:  How Datadog is using AWS and PagerDuty to Keep Pace with Gr...
DevOps at Scale: How Datadog is using AWS and PagerDuty to Keep Pace with Gr...
 
Har du en DevOps i ditt team?
Har du en DevOps i ditt team?Har du en DevOps i ditt team?
Har du en DevOps i ditt team?
 
Mainframe Automation: A Panel Discussion
Mainframe Automation: A Panel DiscussionMainframe Automation: A Panel Discussion
Mainframe Automation: A Panel Discussion
 
Webinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform EngineeringWebinar - Design Thinking for Platform Engineering
Webinar - Design Thinking for Platform Engineering
 
06 operations and feedback
06   operations and feedback06   operations and feedback
06 operations and feedback
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
SaiBhaskar-Resume
SaiBhaskar-ResumeSaiBhaskar-Resume
SaiBhaskar-Resume
 
Thought_Frameworks_Brochure
Thought_Frameworks_BrochureThought_Frameworks_Brochure
Thought_Frameworks_Brochure
 
Continuous Delivery 9th Bit
Continuous Delivery 9th BitContinuous Delivery 9th Bit
Continuous Delivery 9th Bit
 
DevOps
DevOps DevOps
DevOps
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 

Practices and organisational models for continuous delivery in legacy environments

  • 1. Practices, mechanisms and organisational models that can be applied to any software project, big or small, old or new. Continuous Delivery in a Legacy Environment
  • 2. - Technical Architect at Planday - Lead consultant at Lean Software - 16+ Years in software development, based in London & Madrid Peter Marshall MAIL info@leansoftwareservices.com TWITTER @petemar5hall LINKEDIN https://www.linkedin.com/in/petedmarshall
  • 3. How many people are practicing continuous delivery or have a devops team/culture?
  • 4. How long would it take your organisation to build and safely deploy a change that involved just one small feature or a single line of code?
  • 6. “Continuous delivery is about focusing on technical excellence”
  • 7. “Continuous Delivery is a software development discipline where you build software in such a way that the software can be released to production at any time.” Martin Fowler, May 30, 2013
  • 9. 1. YESTERDAY Your software is deployable throughout its lifecycle Key Characteristics
  • 10. 1. YESTERDAY Your team prioritises keeping the software deployable over working on new features Key Characteristics
  • 11. You can perform push-button deployments of any version of your software to any environment on demand Key Characteristics
  • 12. Anybody can get fast, automated feedback on the state of their systems any time somebody makes a change to them Key Characteristics
  • 14. The Leading Workforce Collaboration Solution for shift based businesses Driven by simple, powerful and beautifully designed SaaS technology
  • 15. Healthy & organic growth for 11 years Investment from Creandum in 2014 ($3.75 million) Global expansion Founded in 2004
  • 16. 70+ people HQ in Copenhagen Offices in Oslo Aalborg Hanoi London New York
  • 17. Founded in 2004 1. YESTERDAY “Conquer the world in the next 12 months!” which translated to: “Move into the USA with the next 6-12 months” “Be ahead of the game, always” “maintain our reputation of producing quality software”
  • 18. vs. “to be able to deliver software quick, easily, and with very low risk of failure” “to be able to scale our systems very quickly” Technical Goals
  • 19. Web Portal Models & Controllers Business Logic Data Access Salary Scheduler Messaging Services Punchclock REST Sign Up Android iOS Planday Monolith Mobile Databases Supplementary Web Apps .net
  • 20. “Always have at least some idea of where you are now, and where you want to go, and share that with the team, organisation, and even customers.”
  • 22. Build Agent & Devel The delivery pipeline Pre commit tests Code review PO/UX review Branch / Merge Build Unit tests Contract tests Component tests Coverage Static analysis Component performance End to end component tests NFR tests Exploratory Test performance testing Story sign off / Demos NFRs Analytics Monitoring Production tests canary or blue / green release CI Environments Developer Local Pre-Production Production Virtualised Full stack environments Commit Auto-Deploy Promote Release Build Pipeline: There can be multiple pipelines, usually per system, should execute in minutes Commit: The commit can include changes to the infrastructure, database, or application code. Outputs: Software, infrastructure and configuration Environment manifests Release notes stabilise
  • 23. Remove the fear. Remove unnecessary human intervention from the process. Remove the magic.
  • 24. Put simple continuous integration in place, with build monitors. Put a simple deployment mechanism in place. Make it easy to clone, build, and commit code.
  • 26. Second pass. Improve our knowledge of the state and behaviour of the system.
  • 27. Simple environment provisioning. Lets run some tests. Logging and monitoring.
  • 28. “A good, easily accessible event & error monitoring system is essential for anyone releasing software. Build an early warning system into your environment!”
  • 29. “Understanding your systems steady state allows you to react quickly to any deviation”
  • 30. second pass Build & Test Deployment & Provisioning Logging & Monitoring Infrastructure - Environment provisioning
  • 31. Back to the business goal. We had stabilised the system, made it easy to work with, and now we had to win the business! Put continuous delivery into ACTION!
  • 32. Deliver whatever, whenever. Scale quickly and safely.
  • 33. Can we do something with our current monolith? What about microservices, they could solve all our problems, right? we have a lot of user experience experiments to do, we needed to support quick small experiments. quick releasing. Would modern UI frameworks be better to work with than aged .net technologies?
  • 34. As a business we knew we would win the game by focusing on user experience, over making or improving existing features
  • 37. Web Portal Models & Controllers Business Logic Data Access Salary Scheduler Messaging Services Punchclock REST Sign Up Android iOS Planday Monolith Mobile Databases Supplementary Web Apps
  • 38. Existing Planday Monolith Domain Data Mapping / Access Salary Scheduler Messaging Services API WebServer:IIS Android iOS Web Applications Mobile Windows Databases New Front End Modules (JS using REACT) Punchclock Sign UpPortal Existing Front End
  • 39. broke direct dependencies Introduced package management Introduced load balancing Introduced caching at the application layer technology geared to rapid developmentincreased logging, monitoring & analysis to cover JS, Server, Database, & Infrastructure adopted domain driven development feature toggling
  • 40. Domain + BL Data Mapping + Access Salary Scheduler Messaging Services API WebServer:IIS Android iOS Mobile Windows Databases Client side front end modules Punchclock Sign UpPortal Integration Partners Caching Client side Old Monolith
  • 43. CPH Development Team Hanoi Development Team Teams working very much in silos. Unaligned. No process. No management. No attachment to the business. Poor communication. Before Design Team Product Team
  • 44. Product Teams Web Mobile API Supporting Teams Dev Ops Tech Management All teams are cross functional with end- to-end responsibility for one or more parts of the system. We use a mixture of scrum and Kanban. Some teams use sprints, others use flow based systems. Common elements occur regardless such as daily standups, estimation sessions, & planning sessions. Our architecture and deployment strategy allow teams to release on their own schedule with minimal impact to others. Virtual teams appear as and when the need arises. After Marketing
  • 47. We value overall simplicity over localised simplicity. We value software developed with a focus on operation and maintenance in production. Deliver in small batches Don't do loads of things
  • 48. Development process Build > Deploy > Learn cycle Product requirements are identified by a Product Group and then built by one or more product teams Initiatives that support long term business goal Hypothesis driven with an aim to be proven by specific measurements Feature toggling mechanisms allow experimentation, exploration and controlled feature launches Master Feature Build the feature Toggle it on or off Measure the impact
  • 51. Build Agent & Devel Technical Foundations Pre commit tests Code review PO/UX review Branch / Merge Build Unit tests Contract tests Component tests Coverage Static analysis Component performance End to end component tests NFR tests Exploratory Test performance testing Story sign off / Demos NFRs Analytics Monitoring Production tests canary or blue / green release CI Environments Developer Local Pre-Production Production Virtualised Full stack environments Commit Deploy Promote Release Build Pipeline: There can be multiple pipelines, usually per system Commit: The commit can include changes to the infrastructure, database, or application code. Outputs: Software, infrastructure and configuration Environment manifests Release notes
  • 52. Learnings We know we will fail sometimes Simplicity is key Common & share vision Strong leadership
  • 53. Thank you! TWITTER @petemar5hall Agile Consultant & Technical Architect @planday Peter Marshall fiveMAIL info@leansoftwareservices.com LINKEDIN https://www.linkedin.com/in/ petedmarshall