Why we need to deploy super duper often?
less queues
no waiting till next scheduled release
more tasks get done
Speed
Developer satisfaction
code with feauture is isolated
less planings
less stress
PO’s satisfaction
validate your hypotheses faster
create more A/B tests
sell your features earlier
get more money $$
Quality improvement
Bugs can be found faster
Bugs can be fixed faster
More concentrated testing
Less risks
Recruitment
Hey, we deploy every day!
Centralized Workflow
Feature Branch Workflow
Manual testing(before) Prod
Staging
Manual testing(after) Prod
Staging-feature-1
feature-branch-1
Staging-feature-2
feature-branch-2
Staging-feature-3
feature-branch-3
Scrum Board
5 columns brings queues
The way to production
Open In Progress Under review QA Done Release
Wait for review
Wait for QA
Wait for next scheduled releasePlanning
Actual work
How it should be
No QA*
No Review*
*Possible, bot not required, merged into In Progress
Wait a moment...
QA is not required?
There should be a lot of bug requests from users
When we can release that?
PO/Manager(before) (after)
Is it in production?
Split big tasks to fit 1-2 days release cycle
Split application to services
Don’t plan and estimate
too much
Useful links
https://github.com/debitoor/tcmergehttps://github.com/debitoor/teamcity-mergehttps://waffle.ioYouTube: How to deploy to production 10 timer a day