This is a maturity model for how people do continuous delivery.

Areas which we should evaluate:

  1. Ticketing processes
    • is work tracked in tickets?
    • does ticket workflow model actual getting-to-prod workflow?
    • WIP limits?
    • flow framework?
  2. Deployment
    • Running tests before deploy?
    • Using atlas?
    • Using ECD?
    • Using canaries?
    • Using custom metrics for canaries?
    • Using ECD all the way to prod?
  3. Source authoring (unsure of ordering)
    • Peer review?
    • automated tests?
    • small batches?
    • feature flags?
  4. 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

  1. come up with model
  2. how do we measure the model

Accelerate capabilities

  1. Use version control for prod artifacts
  2. Automate deployments
  3. Implement continuous integration (regular checkins which are tested & build is kept green)
  4. trunk based development (<3 active branches; <1day lifetime)
  5. test automation
  6. test data management ?
  7. shift left on security (security reviews in design/demo, using security approved libraries, testing security features in automated testing suite)
  8. Do CD (Keep the system deployable at all times. Can do prod deploy at any time, on demand.)
  9. Loosely coupled architecture (can deploy independent of other teams)
  10. architect for empowered teams (teams can choose their tools)
  11. gather & implement customer feedback
  12. flow of work is visible through value stream (should be able to see the status of products / features)
  13. work in small batches (work items should take <= 1 week)
  14. foster & enable team experimentation (teams can try ideas w/o outside approval)
  15. lightweight change approval process (peer review, not CABs)
  16. monitor across application & infra (proactive, not just alerting when things go wrong)
  17. proactive system health monitoring (use threshold & rate of change warnings)
  18. improve process & manage work w/ WIP limit
  19. Visualize work to monitor quality
  20. suppor generative culture (westrum model)
  21. encourage support & learning (is learning considered essential for progress? Is it a cost or investment?)
  22. support/facilitiate collaboration among teams (break down silos; dev/ops/gis)
  23. provide resources/tools that make work meaningful (work is challenging/meaningful/you’re empowered/have the right tools)
  24. support/embody transformational leadership (vision, intellectual stimulation, inspirational communication, supportive leadership, personal recognition.)