This is a maturity model for how people do continuous delivery.
Areas which we should evaluate:
- Ticketing processes
- is work tracked in tickets?
- does ticket workflow model actual getting-to-prod workflow?
- WIP limits?
- flow framework?
- Deployment
- Running tests before deploy?
- Using atlas?
- Using ECD?
- Using canaries?
- Using custom metrics for canaries?
- Using ECD all the way to prod?
- Source authoring (unsure of ordering)
- Peer review?
- automated tests?
- small batches?
- feature flags?
- Monitoring / post production
Potential resources: https://minimumcd.org/faq/ https://www.informit.com/articles/article.aspx?p=1621865 https://cloud.google.com/architecture/devops/devops-tech-continuous-delivery#implementing_continuous_delivery Maturity Models by Fowler
minimum devops accelerate capabilities mobile arch has a “scorecard” which does something like this
- come up with model
- how do we measure the model
Accelerate capabilities
- Use version control for prod artifacts
- Automate deployments
- Implement continuous integration (regular checkins which are tested & build is kept green)
- trunk based development (<3 active branches; <1day lifetime)
- test automation
- test data management ?
- shift left on security (security reviews in design/demo, using security approved libraries, testing security features in automated testing suite)
- Do CD (Keep the system deployable at all times. Can do prod deploy at any time, on demand.)
- Loosely coupled architecture (can deploy independent of other teams)
- architect for empowered teams (teams can choose their tools)
- gather & implement customer feedback
- flow of work is visible through value stream (should be able to see the status of products / features)
- work in small batches (work items should take <= 1 week)
- foster & enable team experimentation (teams can try ideas w/o outside approval)
- lightweight change approval process (peer review, not CABs)
- monitor across application & infra (proactive, not just alerting when things go wrong)
- proactive system health monitoring (use threshold & rate of change warnings)
- improve process & manage work w/ WIP limit
- Visualize work to monitor quality
- suppor generative culture (westrum model)
- encourage support & learning (is learning considered essential for progress? Is it a cost or investment?)
- support/facilitiate collaboration among teams (break down silos; dev/ops/gis)
- provide resources/tools that make work meaningful (work is challenging/meaningful/you’re empowered/have the right tools)
- support/embody transformational leadership (vision, intellectual stimulation, inspirational communication, supportive leadership, personal recognition.)