SlideShare una empresa de Scribd logo
1 de 46
Descargar para leer sin conexión
Continuous Delivery
Enabling Agile
Tomas Riha
Architect @ VGT/WirelessCar
MAJOR project liability
MAJOR Project Liability
Passionate about change and improvement
Skiing feeder
mail: triha74@gmail.com
twitter: @TomasRihaSE
blog: continuous-delivery-and-more.blogspot.com
Agenda
What its all about
Intro to Continuous Delivery
Principles of Continuous Delivery
Look at a Pipe
Impact on Methods and Professions
Importance of Architecture
Scaling Continuous Delivery
What its all about
Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.
What does that mean?
As soon as we have added value to the application it
should be in the hands of the customer.
Are we really delivering as soon as possible?
Pre
Planning
Dev Sys Test Reg Test
Pre
Planning
Dev Sys Test Reg Test
Scrummerfall happens because its hard for developers to have
something deployable for the testers to test.
System testing on something that has not been regression tested is
fundamentally flawed.
Cost of regression test tends to bloat sprint content.
Sprint 2-4 weeks
Are we really delivering as soon as possible?
Delivering every 2-4 weeks when a SET of features have
been completed is NOT delivering value as soon as
possible.
Remind me why do we want to deliver as soon
as possible.
Feedback
Faster feedback, less upfront design, easier to build what the customer wants.
Complexity
Small change sets are low risk, easy to understand and easy to manage.
Cost
Unreleased code is cost without value.
So what is stopping us?
Its hard to...
... system and regression test right at the moment when the
value has been added.
... to even just have an application deploy at the moment
when the value has been added
Continuous Delivery
Build Release Deploy Test Prod
Your application always builds, passes its unit tests,
deploys and passes system tests.
Continuous Integration/Delivery/Deploy
Continuous Integration
Your application always builds and passes its unit tests.
Continuous Delivery
Your application always builds, passes its unit tests, deploys and passes its
system tests making it always ready to deploy to production through a largely
automated process
Continuous Deployment
Your application automatically deploys to production through a fully automated
process
Continuously as in all the time?
Yes!
End of sprint isn't continuously.
Weekly isn't continuously.
Nightly isn't continuously.
Every code commit is continuously!
What Tests? Unit? Component? System?
Yes!
All of it and eventually you will add Rollback, Load and Failover as well.
Principles of Continuous Delivery
1. The process MUST be repeatable, reliable and
independent of key personnel
2. Automate everything
Principles of Continuous Delivery
3. If something is difficult or painful, do i more often
Principles of Continuous Delivery
4. Keep everything in source control AND release it.
Principles of Continuous Delivery
5. Done means released
Principles of Continuous Delivery
6. Build Quality In
Principles of Continuous Delivery
7. Fail Fast
Principles of Continuous Delivery
8. Everybody has responsibility for the release process
Principles of Continuous Delivery
9. Improve continuously
Principles of Continuous Delivery
The pipe - Build once!
Build Release
Build and Unit test then release it!
The pipe - Release everything!
Build Release
Build Release
Build Release
Build Release
Code
DB Scripts
Server Config
Deploy script
Feedback Feedback
The pipe -Bundle released artifacts
Build Release
Build Release
Build Release
Build Release
Assembly
Feedback
The pipe - Use Same Deploy Mechanism
Function TestAssembly Deploy
DB
Server
Function Test
Function Test
Pipe Status
Feedback
Feedback Feedback
The pipe - Use Same Deploy Mechanism
Deploy
DB
Server
Pipe Status
Server
DB
Server Server
DB
Server Server
Deploy
Pre Prod Prod
UAT
FeedbackFeedback Feedback
Continuous Delivery
Build Release Assemble Deploy
Deploy
PreProd/Prod
Test
Summary
We build once
Release everything
Automate everything
Fast feedback
Automate all tests except UAT
Obvious benefits
Continuous Regression testing gives instant feedback.
Continuously deploying to test servers tests deploy mechanism several
hundred times per release.
Always ready to push new release into UAT
We can get customer feedback as soon as value has been added
Continuous Delivery - Feature Verification
Pre
Planning
Dev Reg Test
Continuously
Continuous Regression means that all feature verification is always done
on a functioning application.
Forces Test Driven Development as the gap in time between Reg Test
and Verification of new features leaves untested code in the application.
System Test
When a
feature is
done
Continuous Delivery - Impact on Scrum
Pre
Planning
Dev Reg Test
No need for any code freeze period.
Short sprints are possible since there is no need for long regression test period
Features can be planned at start or just before feature start.
Features can be done and "released" but not delivered until sprint.
Features can be developed serially or in parallel within a sprint.
System Test
Feature cycle
Pre
Planning
Dev Reg Test System Test
Feature cycle
Continuous Delivery - Impact on Scrum
Features can be done and "released" but not delivered until sprint.
Breaks continuous delivery?
Don't we want to continuously deliver to UAT?
We want feedback as soon as possible!
Undelivered code is a cost without value!
IF you stick to scrum do NOT submit to mid sprint releases instead shorten your
sprints.
Continuous Delivery - Impact on Scrum
Scrum is based on developing a feature set without
distraction, mid sprint releases are a huge distraction.
Working towards two deadlines within one sprint causes stress.
Discussion about what features will be done for the mid sprint release are a
distraction and time sink.
Deploying what happens to be ready isnt so bad in theory, in reality Product
owner will expect features at mid sprint.
Continuous Delivery - Feature driven
development
Feature driven development is very natural
Analyze, Design, Develop+Test, Deliver to UAT
Development can be done serial or parallel
No done and unreleased code
Pre
Planning
Dev Reg Test System Test
Feature cycle
Pre
Planning
Dev Reg Test System Test
Feature cycle
Continuous Delivery - Continuous
Responsibility
Developers have to take responsibility for their check ins.
Regression test before commit, make a smoke test suite for fast feedback
Never just change regression tests to make them work
Evolve new tests with the code
Continuous Delivery - Continuous
Responsibility
If we break the pipe we need to fix it ASAP
Things will break, things should break, when it does fix it!
Never leave the pipe red!
Continuous Delivery - Continuous
Responsibility
Portability and visiblity
Pipe has to be portable in order for developers to be able to take responsibility.
Fast feedback has to be visible.
Continuous Delivery & Test Driven
Development
Time Gap between code commit of new feature and
execution of test case needs to be minimal.
If it´s green it needs to go into regression suite ASAP
If there is a bug equally it needs to be reported equally ASAP
Developing tests in parallel with code minimizes the gap.
Continuous Delivery & Test Driven
Development
Who should automate the tests?
Test Design - Done by Testers
Test automation - Done by ????
Coding - Done by Developers
Continuous Delivery & Test Driven
Development
Tomorrow Agile Team Member
Developers with Testing skills
alt
Testers with Development skills
WILL BE SUPER HOT AND EARN SUPER NICE $$$$
:)
Continuous Delivery & Architecture
Architect for testability and change.
Architect around services.
Clearly defined responsibility.
Small components.
Build in testability.
Build strong support for feature flags.
Continuous Delivery & Scalability
Single threaded process does not scale
Scale around number of code committers
Dedicated servers create bottlenecks
Good architecture helps, monoliths don't.
Isolated and parallelized testcases help.
Use cloud nodes!!
If no cloud available build a pool of servers.
Continuous Delivery & Expansion
Each individual that is exposed to CD has to mature
Continuous Delivery is individual maturity.
Each new individual has to mature and learn.
Each new team has to mature and learn.
There are no short cuts for new team members just faster learning.
Benefits
Continuous Regression testing gives instant feedback.
Continuously deploying to test servers tests deploy mechanism several
hundred times per release.
Always ready to push new release into UAT
Test Driven Development
Continuous Responsibility by Developers
Sustainable Quality
Good Reading
Continuous Delivery by Jez Humble & Dave Farley
http://www.amazon.com/dp/0321601912?tag=contindelive-20
Thats it!
Feedback & Any questions you forgot to ask?
http://continuous-delivery-and-more.blogspot.se

Más contenido relacionado

La actualidad más candente

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
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryJohn Ferguson Smart Limited
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
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
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsSudipta Lahiri
 
Continuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshareContinuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshareQualiQuali
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance TestingMairbek Khadikov
 
Continuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallContinuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallPeter Marshall
 
#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
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous DeliveryMike McGarr
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CDAdsmurai
 
Continuous Quality: What DevOps Means for QA
Continuous Quality: What DevOps Means for QAContinuous Quality: What DevOps Means for QA
Continuous Quality: What DevOps Means for QAJeff Sussna
 
5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software FasterDynatrace
 
Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)Rainforest QA
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie Christie
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Amazon Web Services
 
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...Edureka!
 

La actualidad más candente (20)

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...
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
Continuous testing
Continuous testing Continuous testing
Continuous testing
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
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 ?
 
Dev ops is more than CI+CD tools
Dev ops is more than CI+CD toolsDev ops is more than CI+CD tools
Dev ops is more than CI+CD tools
 
Continuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshareContinuous testing webinar 041017 slideshare
Continuous testing webinar 041017 slideshare
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Continuous Performance Testing
Continuous Performance TestingContinuous Performance Testing
Continuous Performance Testing
 
Continuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallContinuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hall
 
#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
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Qa in CI/CD
Qa in CI/CDQa in CI/CD
Qa in CI/CD
 
Continuous Quality: What DevOps Means for QA
Continuous Quality: What DevOps Means for QAContinuous Quality: What DevOps Means for QA
Continuous Quality: What DevOps Means for QA
 
5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster
 
Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)Continuous Testing for CTOs (Webinar Slides)
Continuous Testing for CTOs (Webinar Slides)
 
James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...James Christie CAST 2014 Standards – promoting quality or restricting competi...
James Christie CAST 2014 Standards – promoting quality or restricting competi...
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
Who Is A DevOps Engineer? | DevOps Skills You Must Master | DevOps Engineer M...
 

Similar a Continuous delivery @ hi q

Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQTomas Riha
 
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
 
product Qa workflow
product Qa workflowproduct Qa workflow
product Qa workflowtanvir afzal
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Tomas Riha
 
DevOps with Microsoft Stack
DevOps with Microsoft StackDevOps with Microsoft Stack
DevOps with Microsoft StackDeepti Jain
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMIBM UrbanCode Products
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysDynatrace
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applicationsSunil Dalal
 
What Key Features Lead to Successful Continuous Testing and its Benefits.pdf
What Key Features Lead to Successful Continuous Testing and its Benefits.pdfWhat Key Features Lead to Successful Continuous Testing and its Benefits.pdf
What Key Features Lead to Successful Continuous Testing and its Benefits.pdfpCloudy
 
DevOps drivein - Mind the Gap
DevOps drivein - Mind the GapDevOps drivein - Mind the Gap
DevOps drivein - Mind the GapSerena Software
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous EverythingAndrea Tino
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016Karim Fanadka
 
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
 
How to Implement Continuous Testing in Dev Ops Like a Pro
How to Implement Continuous Testing in Dev Ops Like a Pro How to Implement Continuous Testing in Dev Ops Like a Pro
How to Implement Continuous Testing in Dev Ops Like a Pro Sarah Elson
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Tomas Riha
 
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
 

Similar a Continuous delivery @ hi q (20)

Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
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.
 
product Qa workflow
product Qa workflowproduct Qa workflow
product Qa workflow
 
Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...Continuous delivery its not about the technology, its about the people. @sats...
Continuous delivery its not about the technology, its about the people. @sats...
 
DevOps with Microsoft Stack
DevOps with Microsoft StackDevOps with Microsoft Stack
DevOps with Microsoft Stack
 
Shift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBMShift Left - Approach and practices with IBM
Shift Left - Approach and practices with IBM
 
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code DeploysOur DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
Our DevOps Journey: 6 Month Waterfalls to 1 Hour Code Deploys
 
Continous integration and delivery for single page applications
Continous integration and delivery for single page applicationsContinous integration and delivery for single page applications
Continous integration and delivery for single page applications
 
What Key Features Lead to Successful Continuous Testing and its Benefits.pdf
What Key Features Lead to Successful Continuous Testing and its Benefits.pdfWhat Key Features Lead to Successful Continuous Testing and its Benefits.pdf
What Key Features Lead to Successful Continuous Testing and its Benefits.pdf
 
DevOps drivein - Mind the Gap
DevOps drivein - Mind the GapDevOps drivein - Mind the Gap
DevOps drivein - Mind the Gap
 
Continuous Everything
Continuous EverythingContinuous Everything
Continuous Everything
 
Continuous integration with Jenkins
Continuous integration with JenkinsContinuous integration with Jenkins
Continuous integration with Jenkins
 
Continuous Testing
Continuous TestingContinuous Testing
Continuous Testing
 
Continuous Testing 2016
Continuous Testing 2016Continuous Testing 2016
Continuous Testing 2016
 
DevOps for beginners
DevOps for beginnersDevOps for beginners
DevOps for beginners
 
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
 
Presentation_TDD
Presentation_TDDPresentation_TDD
Presentation_TDD
 
How to Implement Continuous Testing in Dev Ops Like a Pro
How to Implement Continuous Testing in Dev Ops Like a Pro How to Implement Continuous Testing in Dev Ops Like a Pro
How to Implement Continuous Testing in Dev Ops Like a Pro
 
Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014Scaling continuous delivery @ GeeCon 2014
Scaling continuous delivery @ GeeCon 2014
 
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
 

Más de Tomas Riha

Driving change
Driving changeDriving change
Driving changeTomas Riha
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done rightTomas Riha
 
Test Automation
Test AutomationTest Automation
Test AutomationTomas Riha
 
Show me the money!
Show me the money!Show me the money!
Show me the money!Tomas Riha
 
Show me the money! - Draft
Show me the money! - DraftShow me the money! - Draft
Show me the money! - DraftTomas Riha
 
Into the cloud
Into the cloudInto the cloud
Into the cloudTomas Riha
 
Continuous delivery @ Diabol
Continuous delivery @ DiabolContinuous delivery @ Diabol
Continuous delivery @ DiabolTomas Riha
 

Más de Tomas Riha (8)

Driving change
Driving changeDriving change
Driving change
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done right
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Show me the money!
Show me the money!Show me the money!
Show me the money!
 
Show me the money! - Draft
Show me the money! - DraftShow me the money! - Draft
Show me the money! - Draft
 
Dev ops
Dev opsDev ops
Dev ops
 
Into the cloud
Into the cloudInto the cloud
Into the cloud
 
Continuous delivery @ Diabol
Continuous delivery @ DiabolContinuous delivery @ Diabol
Continuous delivery @ Diabol
 

Continuous delivery @ hi q

  • 2. Tomas Riha Architect @ VGT/WirelessCar MAJOR project liability MAJOR Project Liability Passionate about change and improvement Skiing feeder mail: triha74@gmail.com twitter: @TomasRihaSE blog: continuous-delivery-and-more.blogspot.com
  • 3. Agenda What its all about Intro to Continuous Delivery Principles of Continuous Delivery Look at a Pipe Impact on Methods and Professions Importance of Architecture Scaling Continuous Delivery
  • 4. What its all about Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
  • 5. What does that mean? As soon as we have added value to the application it should be in the hands of the customer.
  • 6. Are we really delivering as soon as possible? Pre Planning Dev Sys Test Reg Test Pre Planning Dev Sys Test Reg Test Scrummerfall happens because its hard for developers to have something deployable for the testers to test. System testing on something that has not been regression tested is fundamentally flawed. Cost of regression test tends to bloat sprint content. Sprint 2-4 weeks
  • 7. Are we really delivering as soon as possible? Delivering every 2-4 weeks when a SET of features have been completed is NOT delivering value as soon as possible.
  • 8. Remind me why do we want to deliver as soon as possible. Feedback Faster feedback, less upfront design, easier to build what the customer wants. Complexity Small change sets are low risk, easy to understand and easy to manage. Cost Unreleased code is cost without value.
  • 9. So what is stopping us? Its hard to... ... system and regression test right at the moment when the value has been added. ... to even just have an application deploy at the moment when the value has been added
  • 10. Continuous Delivery Build Release Deploy Test Prod Your application always builds, passes its unit tests, deploys and passes system tests.
  • 11. Continuous Integration/Delivery/Deploy Continuous Integration Your application always builds and passes its unit tests. Continuous Delivery Your application always builds, passes its unit tests, deploys and passes its system tests making it always ready to deploy to production through a largely automated process Continuous Deployment Your application automatically deploys to production through a fully automated process
  • 12. Continuously as in all the time? Yes! End of sprint isn't continuously. Weekly isn't continuously. Nightly isn't continuously. Every code commit is continuously!
  • 13. What Tests? Unit? Component? System? Yes! All of it and eventually you will add Rollback, Load and Failover as well.
  • 14. Principles of Continuous Delivery 1. The process MUST be repeatable, reliable and independent of key personnel
  • 15. 2. Automate everything Principles of Continuous Delivery
  • 16. 3. If something is difficult or painful, do i more often Principles of Continuous Delivery
  • 17. 4. Keep everything in source control AND release it. Principles of Continuous Delivery
  • 18. 5. Done means released Principles of Continuous Delivery
  • 19. 6. Build Quality In Principles of Continuous Delivery
  • 20. 7. Fail Fast Principles of Continuous Delivery
  • 21. 8. Everybody has responsibility for the release process Principles of Continuous Delivery
  • 22. 9. Improve continuously Principles of Continuous Delivery
  • 23. The pipe - Build once! Build Release Build and Unit test then release it!
  • 24. The pipe - Release everything! Build Release Build Release Build Release Build Release Code DB Scripts Server Config Deploy script Feedback Feedback
  • 25. The pipe -Bundle released artifacts Build Release Build Release Build Release Build Release Assembly Feedback
  • 26. The pipe - Use Same Deploy Mechanism Function TestAssembly Deploy DB Server Function Test Function Test Pipe Status Feedback Feedback Feedback
  • 27. The pipe - Use Same Deploy Mechanism Deploy DB Server Pipe Status Server DB Server Server DB Server Server Deploy Pre Prod Prod UAT FeedbackFeedback Feedback
  • 28. Continuous Delivery Build Release Assemble Deploy Deploy PreProd/Prod Test Summary We build once Release everything Automate everything Fast feedback Automate all tests except UAT
  • 29. Obvious benefits Continuous Regression testing gives instant feedback. Continuously deploying to test servers tests deploy mechanism several hundred times per release. Always ready to push new release into UAT We can get customer feedback as soon as value has been added
  • 30. Continuous Delivery - Feature Verification Pre Planning Dev Reg Test Continuously Continuous Regression means that all feature verification is always done on a functioning application. Forces Test Driven Development as the gap in time between Reg Test and Verification of new features leaves untested code in the application. System Test When a feature is done
  • 31. Continuous Delivery - Impact on Scrum Pre Planning Dev Reg Test No need for any code freeze period. Short sprints are possible since there is no need for long regression test period Features can be planned at start or just before feature start. Features can be done and "released" but not delivered until sprint. Features can be developed serially or in parallel within a sprint. System Test Feature cycle Pre Planning Dev Reg Test System Test Feature cycle
  • 32. Continuous Delivery - Impact on Scrum Features can be done and "released" but not delivered until sprint. Breaks continuous delivery? Don't we want to continuously deliver to UAT? We want feedback as soon as possible! Undelivered code is a cost without value! IF you stick to scrum do NOT submit to mid sprint releases instead shorten your sprints.
  • 33. Continuous Delivery - Impact on Scrum Scrum is based on developing a feature set without distraction, mid sprint releases are a huge distraction. Working towards two deadlines within one sprint causes stress. Discussion about what features will be done for the mid sprint release are a distraction and time sink. Deploying what happens to be ready isnt so bad in theory, in reality Product owner will expect features at mid sprint.
  • 34. Continuous Delivery - Feature driven development Feature driven development is very natural Analyze, Design, Develop+Test, Deliver to UAT Development can be done serial or parallel No done and unreleased code Pre Planning Dev Reg Test System Test Feature cycle Pre Planning Dev Reg Test System Test Feature cycle
  • 35. Continuous Delivery - Continuous Responsibility Developers have to take responsibility for their check ins. Regression test before commit, make a smoke test suite for fast feedback Never just change regression tests to make them work Evolve new tests with the code
  • 36. Continuous Delivery - Continuous Responsibility If we break the pipe we need to fix it ASAP Things will break, things should break, when it does fix it! Never leave the pipe red!
  • 37. Continuous Delivery - Continuous Responsibility Portability and visiblity Pipe has to be portable in order for developers to be able to take responsibility. Fast feedback has to be visible.
  • 38. Continuous Delivery & Test Driven Development Time Gap between code commit of new feature and execution of test case needs to be minimal. If it´s green it needs to go into regression suite ASAP If there is a bug equally it needs to be reported equally ASAP Developing tests in parallel with code minimizes the gap.
  • 39. Continuous Delivery & Test Driven Development Who should automate the tests? Test Design - Done by Testers Test automation - Done by ???? Coding - Done by Developers
  • 40. Continuous Delivery & Test Driven Development Tomorrow Agile Team Member Developers with Testing skills alt Testers with Development skills WILL BE SUPER HOT AND EARN SUPER NICE $$$$ :)
  • 41. Continuous Delivery & Architecture Architect for testability and change. Architect around services. Clearly defined responsibility. Small components. Build in testability. Build strong support for feature flags.
  • 42. Continuous Delivery & Scalability Single threaded process does not scale Scale around number of code committers Dedicated servers create bottlenecks Good architecture helps, monoliths don't. Isolated and parallelized testcases help. Use cloud nodes!! If no cloud available build a pool of servers.
  • 43. Continuous Delivery & Expansion Each individual that is exposed to CD has to mature Continuous Delivery is individual maturity. Each new individual has to mature and learn. Each new team has to mature and learn. There are no short cuts for new team members just faster learning.
  • 44. Benefits Continuous Regression testing gives instant feedback. Continuously deploying to test servers tests deploy mechanism several hundred times per release. Always ready to push new release into UAT Test Driven Development Continuous Responsibility by Developers Sustainable Quality
  • 45. Good Reading Continuous Delivery by Jez Humble & Dave Farley http://www.amazon.com/dp/0321601912?tag=contindelive-20
  • 46. Thats it! Feedback & Any questions you forgot to ask? http://continuous-delivery-and-more.blogspot.se