Continuous delivery @åf consult
-
Upload
tomas-riha -
Category
Documents
-
view
191 -
download
4
description
Transcript of Continuous delivery @åf consult
![Page 1: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/1.jpg)
Continuous DeliveryEnabling Agile
![Page 2: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/2.jpg)
Tomas Riha
Architect @ VGT/WirelessCarMAJOR Project Liability
Passionate about change and improvementSkiing feeder
mail: [email protected]: @TomasRihaSE
blog: continuous-delivery-and-more.blogspot.com
![Page 3: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/3.jpg)
Agenda
Intro to Continuous Delivery
Principles of Continuous Delivery
Look at a Pipe
Impact on Scrum
Feature Driven Development
Impact on Developers and Testers
![Page 4: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/4.jpg)
Continuous Delivery
Build Release Deploy Test Prod
Your application always builds, passes its unit tests, deploys and passes system tests.
![Page 5: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/5.jpg)
Why we want frequent releases
Faster Time to market
Easier to understand impact of deliveryLower complexity due to less changes
Unreleased code is cost without value
![Page 6: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/6.jpg)
Continuous Integration/Delivery/Deploy
Continuous Integration Your application always builds and passes its unit tests.
Continuous DeliveryYour 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 DeploymentYour application automatically deploys to production through a fully automated
process
![Page 7: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/7.jpg)
Continuously as in all the time?
Yes!
End of sprint isn't continuously. Weekly isn't continuously. Nightly isn't continuously.
![Page 8: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/8.jpg)
What Tests? Unit? Component? System?
Yes!
All of it and eventually you will add Rollback, Load and Failover as well.
![Page 9: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/9.jpg)
Principles of Continuous Delivery
1. The process MUST be repeatable and reliable
![Page 10: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/10.jpg)
2. Automate everything
Principles of Continuous Delivery
![Page 11: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/11.jpg)
3. If something is difficult or painful, do i more often
Principles of Continuous Delivery
![Page 12: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/12.jpg)
4. Keep everything in source control AND release it.
Principles of Continuous Delivery
![Page 13: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/13.jpg)
5. Done means released
Principles of Continuous Delivery
![Page 14: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/14.jpg)
6. Build Quality In
Principles of Continuous Delivery
![Page 15: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/15.jpg)
7. Fail Fast
Principles of Continuous Delivery
![Page 16: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/16.jpg)
8. Everybody has responsibility for the release process
Principles of Continuous Delivery
![Page 17: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/17.jpg)
9. Improve continously
Principles of Continuous Delivery
![Page 18: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/18.jpg)
The pipe - Build once!
Build Release
Build and Unit test then release it!
![Page 19: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/19.jpg)
The pipe - Release everything!
Build Release
Build Release
Build Release
Build Release
Code
DB Scripts
Server Config
Deploy script
Feedback Feedback
![Page 20: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/20.jpg)
The pipe -Bundle released artifacts
Build Release
Build Release
Build Release
Build Release
Assembly
Feedback
![Page 21: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/21.jpg)
The pipe - Use Same Deploy Mechanism
Function TestAssembly Deploy
DB
Server
Function Test
Function Test
Pipe Status
Feedback
Feedback Feedback
![Page 22: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/22.jpg)
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
![Page 23: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/23.jpg)
Continuous Delivery
Build Release Assemble Deploy Deploy PreProd/ProdTest
SummaryWe build once
Release everythingAutomate everything
Fast feedbackAutomate all tests except UAT
![Page 24: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/24.jpg)
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
![Page 25: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/25.jpg)
Common problem with many Agile projects
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
![Page 26: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/26.jpg)
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
![Page 27: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/27.jpg)
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
![Page 28: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/28.jpg)
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?Undelivered code is a cost without value!
IF you stick to scrum do NOT submit to mid sprint releases
![Page 29: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/29.jpg)
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.
![Page 30: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/30.jpg)
Continuous Delivery - Feature driven development
Feature driven development is very naturalAnalyze, 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
![Page 31: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/31.jpg)
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
![Page 32: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/32.jpg)
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!
![Page 33: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/33.jpg)
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.
![Page 34: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/34.jpg)
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 ASAPIf there is a bug equally it needs to be reported equally ASAP
Developing tests in parallel with code minimizes the gap.
![Page 35: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/35.jpg)
Continuous Delivery & Test Driven Development
Who should automate the tests?
Test Design - Done by TestersTest automation - Done by ????Coding - Done by Developers
![Page 36: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/36.jpg)
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 $$$$:)
![Page 37: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/37.jpg)
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
![Page 38: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/38.jpg)
Good Reading
Continuous Delivery by Jez Humble & Dave Farley
http://www.amazon.com/dp/0321601912?tag=contindelive-20
![Page 39: Continuous delivery @åf consult](https://reader030.fdocuments.us/reader030/viewer/2022020122/54b7696b4a7959a23c8b4881/html5/thumbnails/39.jpg)
Thats it!
http://continuous-delivery-and-more.blogspot.com/2013/02/talk-at-af-consult-2013-01-12.html
Feedback & Any questions you forgot to ask?