The other aspect of CI/CD that bugs me is the dramatic increase in complexity. I thought KISS and Occam's Razor would kill the CI/CD efforts.
I’m honestly really surprised to hear that view. If anything, I’ve found it much simpler. For some insight as to how my current team works:
- feature development happens on git branches
- all pushes to github are automatically tested on CI, built, and produce a deployable artifact
- any artifact can be deployed to a fully-featured staging environment
- Builds from the master branch are automatically deployed to production
- the product owner is responsible for acceptance testing the feature in the staging environment
- a PR into the master branch is raised for code review
- when this branch is never, after product owner approval, the feature is live.
It’s delightfully simple and entails no release schedule. Large features can be placed behind feature flags and allow other teams to activate feature for user groups as required.
Honestly I can’t imagine going back to releases ever again.
Occam's razor
https://simple.wikipedia.org/wiki/Occam%27s_razor
Suppose there exist two explanations for an occurrence. In this case the simpler one is usually better.
(I was trying to say "If there are two ways to release a product, the simpler way should be better".)
I’m honestly really surprised to hear that view. If anything, I’ve found it much simpler. For some insight as to how my current team works:
- feature development happens on git branches - all pushes to github are automatically tested on CI, built, and produce a deployable artifact - any artifact can be deployed to a fully-featured staging environment - Builds from the master branch are automatically deployed to production - the product owner is responsible for acceptance testing the feature in the staging environment - a PR into the master branch is raised for code review - when this branch is never, after product owner approval, the feature is live.
It’s delightfully simple and entails no release schedule. Large features can be placed behind feature flags and allow other teams to activate feature for user groups as required.
Honestly I can’t imagine going back to releases ever again.