XP teams take every iteration commitment seriously by delivering working software. Continuous Delivery of working product increments and early releasing gives concrete feedback about the state of the system at any time and also increases customer satisfaction.
2. Presented By &
Introduction
It's an initiative for gathering people
interested in Agile, eXtreme
Programming (aka: XP), Scrum,
Coding, etc.
The Idea of XP Days was found at
November 2019 and since that we
have conducted lots of knowledge
sharing meetups and webinars.
Agile Arena is an Agile Consulting and Training company. We
specialize in agile adoption and transformation for companies
and teams through:
• Designing their agile adoption programs
• Executing our programs and guiding the team through their
journey to sustainable agility .
• We also provide training for teams and individuals to help
them coping with the agility trend in the market.
4. Presented By &
AGENDA
Challenges of building software.
Why is software delivery painful. While it shouldn't
Agile as a continuous experimentation process
Continuous delivery and feedback loops
Principals of Continuous delivery
Implementation of Continuous delivery
Impact on software architecture
Impact on teams
Discussion
7. Presented By &
Uncertainty
“Software is easy to make, except when you want it to do something new. And then, of
course, there is a corollary: The only software that's worth making is software that does
something new.” Scott Rosenberg, Dreaming in Code
A startup is a human institution designed to create a new product or service
under conditions of extreme uncertainty.” Eric Ries
Unlike when building a house, when it comes to software it's almost impossible to know
what you want. And even if you did know, it would be impossible to know how long each
part would take to do. Patrick Gleeson, Working with Coders: A Guide to Software Development for the
Perplexed Non-Techie
13. Presented By &
Execution Challenges
Humans make mistakes!
Deployment “drama”
Long Cycle time
Not enough experimentation
Lack of innovation
Non value-adding activities
14. Presented By &
What is Continuous Delivery
The ability to get changes of all types into
production, or into the hands of users, safely
and quickly in a sustainable way.
15. Presented By &
Agile manifesto
Working software over comprehensive documentation
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the
shorter timescale.
Working software is the primary measure of progress.
16. Presented By &
How quick?
Mean time between deployments:
11.6 Seconds
Max. deployments in a single hour:
1079
Mean number of hosts simultaneously
receiving a deployment
1000
30 Deployments per day
200+ People
10000 deployments in 2011
17. Presented By &
Continuous Delivery is a...
Holistic approach to SW development
The whole value chain
Shortest path from business idea to customer value
19. Presented By &
Principles of Continuous Delivery
Build quality in.
Work in small batches
Computers perform repetitive tasks, people
solve problems
Relentlessly pursue continuous improvement
Everyone is responsible
21. Presented By &
Implementation of Continuous Delivery
Repeatable, reliable process for releasing software
Computers perform repetitive tasks, people solve problems
Automate almost everything
Static analysis
Test
Infra
Deployment
22. Presented By &
Implementation of Continuous Delivery
Keep (Almost) Everything under source control
Trunk based development
Trunk is always deployable
Check in to trunk at least daily
Trunk
Feature
/ Task
23. Presented By &
Implementation of Continuous Delivery
If it hearts, do it more often
“If releasing is hard, people will always find a reason not to release.”
Gereon Hermkes, Scaling Done Right: How to Achieve Business Agility with Scrum@Scale and Make the
Competition Irrelevant
Everybody is responsible for the release process
Visibility
24. Presented By &
Process - Deployment pipeline
VCS
TDD
CI Build
+ automated tests
Artifact
repo
Acceptance
testing
(automated)
Component
Performance
Testing
Production
+ APM
System
Performance
Testing
Manual Testing
Staging
26. Presented By &
Impact on Architecture
Quality attributes: meet cross functional requirements
Availability:
Rolling deployment
Stateless when possible
DB replicas
Deployability
Asynchronous architecture
Caching & invalidation
27. Presented By &
Impact on Architecture
Don’t break your clients. Including internal clients
API versions
Consumer driven contract testing
Try to avoid orchestrated deployments
28. Presented By &
Impact on Architecture
Configurations are stored on the environment
Environment variables
Parameters / secrets store
Observability
Logs
Metrics
APM
29. Presented By &
Patterns of Continuous Delivery
Expand/Contract:
Add new stuff first then remove old versions:
New static content
New API version
Expanded DB schema
Then deprecate old ones
Blue-Green deployments
Also a great test for DR
Deployment != Release
Feature toggles
Canary releasing:
Slowly rolling out the change to a small subset of users before rolling it out to the entire
infrastructure and making it available to everybody
30. Presented By &
Team structure
Narrow focused teams with clear responsibilities
Features / not layers
Cross-team collaboration is usually harder
You build it – you own it/run it.