By Marc Hornbeek, Trace3 Principal Consultant – DevOps
October 2019 will mark the 10th anniversary of the first DevOpsDays where “DevOps”, as a word, began to catch on. In the world of Information Technology 10 years is a long time and it is quite evident based on the amount of change that has transpired since then. To name a few, we have seen the maturing of CI/CD automation and many innovations such as: Application Release Automation, containers, Cloud infrastructure orchestration, DevSecOps, DevOps Database, DevOps Governance, and Micro-Services to name a few. These innovations have become part of “mainstream DevOps”. This evolution is continuing with AIOps, Machine Learning, Value Stream Management, and others. Each of these innovations have not only made DevOps more powerful, but also more complex.
As a consultant, working on DevOps projects through its lifecycle I have learned that complexity can plague the success of DevOps within an organization. Complexity cannot be avoided as DevOps is complex and will likely continue to be; however, the key to avoiding failure through your DevOps journey is to engage the complexity by using DevOps tenets to implement DevOps. Do not try to boil the ocean. Instead, at each leg in the journey, take inventory of where you are in terms of current goals, state, and best practices. Fine-tune your direction and build your solution using proven continuous delivery methods. A comprehensive, yet efficient assessment of your current state is key for ensuring complexity has not gotten out of hand and the organization is focused on success criteria that meet the needs of the business.
I use a 27-factor assessment model. The factors are the cross-product of current best practices for Three Dimensions (People, Process and Technology) with Nine Pillars (Leadership, Culture, Application Development, Continuous Integration, Continuous Testing, Infrastructure-on-Demand, Continuous Security, Continuous Monitoring and Continuous Delivery. The following explain the scope of the Nine Pillars.
Leadership: Gain insight and understanding of your leadership practices and how leadership can improve DevOps adoption and performance.
Culture: Identify opportunities to improve cross-functional collaboration and communication across your organization.
Application Development: A practical analysis of application development practices identifies improvements for your DevOps performance.
Continuous Integration: Analysis of branching and software integration workflows and tools identifies bottlenecks and improvements for builds and packaging processes.
Continuous Testing: Analysis of end-to-end software testing, verification workflows, and tools identifies bottlenecks and improvements for accelerating testing while improving the coverage and quality of tests.
Infrastructure on Demand: Analysis of systems and services for orchestrating and hosting applications and DevOps workloads provides insights to improve performance and utilization of resources.
Continuous Monitoring: Analysis of end-to-end monitoring workflows and tools for applications, releases metrics, and infrastructure provides improved visibility for all business and technical stakeholders.
Continuous Security: Analysis of security practices and tools identifies opportunities to integrate security practices into the continuous delivery pipeline.
Continuous Delivery / Deployment: Analysis of delivery and deployment practices identifies improvements for safer, faster, and more efficient releases.
Each combination of Pillar and Dimension have associated best practices that are used to score relevance and current state relative a DevOps goal agreed by the organization. An example for the Continuous Security Pillar was published previously here https://devops.com/9-pillars-of-continuous-security-best-practices/.
The 27 factors assessment for an application is an important input to a future state value-stream map workshop. The value-stream map is then transformed into a roadmap and implementation plan.
This assessment approach facilitates stakeholder acceptance because they are involved in the process at each step. The result is aligned to their priorities and goals and the solution roadmap is directly traceable to stakeholder inputs. The approach is flexible enough to evolve over time and can be customized to suit the priorities of an organization. For those that argue that 27 factors is too many and too complex, I must say the complexity of DevOps itself requires a comprehensive assessment approach.
This article described a comprehensive, efficient, and evolvable assessment approach that covers 27 critical success factors for success with DevOps. While DevOps offers immense value for software development, delivery and deployment, a rigorous and thorough assessment with up-to-date best practices is essential to accomplish DevOps goals. Each organization is different and has different DevOps goals and requirements. The changes to The Three Dimensions (People, Process and Technologies) vary according to the results of each DevOps assessment.
To learn how Trace3 can support your DevOps journey visit us at https://www.trace3.com/expertise/devops