The Doppler Quarterly Special Edition 2019 | Page 68

The build process should perform security and coding standards scans. Testing should be automated and part of the build process. The build process should produce a score for security, programming standards and quality. The build should fail if any one of those scores are not at an acceptable level. The goal of this approach is to not let issues progress downstream, because it is much more expensive and time consuming to fix defects later in the lifecycle. DevOps Maturity After evaluating our client’s capabilities in the area of people, process and technology, we provide a maturity score. The score is a snapshot of the client’s current state of maturity. Next, we provide a list of gaps in each area that shows the delta between the current state and the desired future state. Clients often want to start with a maturity of level 3 so that they can get to a con- sistent, secure and reliable state for deployments, while achieving a higher level of agility. ACME Maturity Model Score: 1.74 Maturity Level Level 1 Ad-Hoc Level 2 Repeatable People • Silo based • Blame, finger pointing • Dependent experts • Lack of accountability Process • Manual process • Tribal knowledge Level 4 Measured Level 5 Optimized • Processes established within • Automated builds • Automated tests • Collaboration exists • Processes are automated • Shared decision making across SDLC Continuous Delivery • Shared accountability • Standards across organization • Proactive monitoring • Collaboration backed on shared • Metrics collected and analyzed metrics with a focus Continuous on remov- Deployment against business goals ing bottlenecks • Visibility & predictability • A culture of continuous • Self service automation improvement • Risk & cost optimization Continuous Operations permeates through the • High degree of experimentation Figure 2: Maturity Model Matrix 66 | THE DOPPLER | SPECIAL EDITION 2019 deployments • Manual testing • Environment silos • Managed communications Continuous Integration • No standards • Limited knowledge sharing • Can repeat what is known, but organization • Manual builds and is the norm • Unpredictably reactive can't react to unknowns Level 3 Defined Technology inconsistencies written as part of story development • Painful but repeatable releases • Automated build & test cycle for every commit • Push button deployments • Automated user & acceptance testing • Build metrics visible and acted on • Orchestrated deployments with auto rollbacks • Non-functional requirements defined and measured • Zero downtime deployments • Immutable infrastructure • Actively enforce resiliency by forcing failures