7 Prerequisites for a Successful DevOps Journey
7 Prerequisites for a Successful DevOps Journey
Make sure your enterprise has these seven factors, like a DevOps Capability Maturity Model, lean and agile practices, and automation.
Join the DZone community and get the full member experience.Join For Free
DevOps is one of the core capabilities sought after by most enterprises. DevOps facilitates innovation by providing tools and processes to try out new ideas rapidly. It provides flexibility to scale high, low, and wide as needed. It optimizes development and operations to streamline common day-to-day functions. More importantly, it helps to react fast in recovering and makes the business operational.
Even though organizations recognize these great tangible benefits, many struggle to understand how to embark on this journey. Many struggle to understand what DevOps is in its entirety. Followed by organizations who don’t have clarity on where to start, what are the transition points and where do they want to be? Those few organizations who embarked on the journey face a great challenge. Wherever the organization is in this journey, it is a given that it takes time, effort, and finances to achieve any level of maturity. Below are seven key prerequisites which will help organizations to approach the journey in the right direction by giving them a strong, focused start, eventually saving them time, effort, and cost.
- DevOps Capability Maturity Model: This applies to all organizations at all stages of maturity in their DevOps journey. Each organization is unique, hence the Maturity Model needs to be tailored to suit the organization. The Open Group, CMMI, P3M3, and PRINC2 are some of the common frameworks we can leverage to create an organization-specific DevOps Capability Maturity Model (DCMM). At the onset, once an organization-specific model is developed, we can map the current maturity of the organization accurately. This will help us to identify the transition points and the aspired target maturity based on time and budget allocated. This mapping also provides a clear bird’s-eye view of the entire path we are taking with clear signposts in the form of transition points. Outputs from this model greatly help stakeholders and sponsors to clearly understand the journey and insights into ROI. This step also helps IT leadership and management to pull all the resources needed to kick-start the DevOps journey.
- Culture: This is the most critical aspect of the journey, but most often, it is given little attention or even neglected. Most often, organizations spend time on software, hardware, policies, and processes but fail to see the importance of the employees who are going to be a big part of the execution and adoption — and also, its customers, who are the ultimate beneficiaries of the journey. Some of the key aspects of culture are the organization's definition of success, aspired goals, management style, cooperation between teams, trust between members of teams, work-life balance, security posture, support for innovation, tolerance for failures, how issues/errors/defects are resolved, tech scope management, new feature rollouts, skills development, and customer satisfaction. There are pros and cons to all of these aspects, but it is critical to understand these dynamics. If we know who we are, we will know our strengths and shortcomings, which helps us prepare to utilize strengths and overcome the shortcomings.
- Agile: Agile is the guard rail which keeps the organization safe throughout the DevOps journey. Hence, organizations should plan for an agile implementation by providing proper training and certifications to its employees. Having incipient knowledge at the enterprise level can greatly accelerate the DevOps journey to reach the target maturity at a faster phase. Core agile concepts such as iterative short incremental approach facilitate a rapid feedback cycle, providing valuable insight into implemented approaches. These insights will enable data-driven decisions to embrace a particular approach or to abandon that approach, without spending more time and effort. An agile approach can be customized to most, if not all the components of the DevOps journey.
- Lean: Lean is the secret passage which considerably minimizes spending on the DevOps journey. If an organization has a brilliant idea, farm it out to the loyal customer base and observe the pulse; this will give an idea of whether to invest or abandon before a lot of effort and finances are spent. The DevOps journey requires each critical process to be evaluated and value stream mapping to be done to eliminate any steps which do not add value and fix any step which is adding delays. This is a continuous process which needs to be conducted from time to time and improve it in every iteration of the journey. Always be creative, innovative, and optimize everything you already do on a regular basis. Innovating new things is critical to the success of the business, but there is a delicate balance with respect to innovation and cost. Care should be taken to innovate to an extent to market it and get the feedback. Depending on the feedback, we can go to full-blown investment or dismantle the product. DevOps should be positioned to maintain this balance.
- Automation: Many folks associate DevOps with automation. This has been a key component of IT for a long time and solved many tough problems. Today’s IT demands make automation indispensable. We can use automation for every IT function; the bottom line is, if something is repeatable, then automate it. There are innumerable tools available to augment the automation toolchain, but care should be taken to select appropriate tools. A thorough analysis of your IT portfolio has to be conducted with the target maturity state in view to finalize the tools. In most cases, this critical analysis should result in one single robust toolchain which can support all the organization's business scenarios. Multiple toolchains are not recommended as they not only cause confusion, but are also non-economical and a maintenance nightmare. Selecting an experienced solution provider is recommended to perform analysis and toolchain build-out.
- Metrics: These are the indicators which keep an organization on track to achieve its goals on time, with the quality and velocity intended in the vision. It is highly recommended that an organization not only go through the capability maturity model to realize its vision, but also come up with an actual vision statement to have the focus needed. Before we start on the DevOps journey, we need to benchmark all the critical KPIs which are identified in the DCMM. Along the DevOps journey, we need to collect these measurements and constantly evaluate them. A comprehensive and thorough analysis of all these measurements is required at the end of each transition point. This will help organizations to retrospect where they are with the journey and focus on the areas where improvements are needed. This also helps map the achievements to the transition point, thereby validating adherence to the envisioned roadmap.
- Organizational Structure: Regardless of planning, methodologies, and roadmaps, organizations still face a great challenge to succeed in DevOps because of the rigid nature of their organizational structure. The DevOps journey demands top-level leadership involvement and sponsorship to successfully reach the target maturity. The selected leaders/champions should have enough authority and proven leadership to reach across traditional organizational boundaries such as departments, LOBs, and vendors to bring about standardization and break down silos. It is recommended to try out a few structures at a very small scale, even though it will take time, rather than doing a big bang change, as the latter can cause a catastrophe if we miscalculate. Finalizing an organization structure is tedious and should be an agile process, ready to negotiate and adapt for the greater good. Finally, the organization needs to realize that traditional business models are changing rapidly to embrace digital transformation, for which DevOps is a key capability, hence the finalized structure should be so positioned to embrace DevOps by enabling innovation and customer centricity.
Opinions expressed by DZone contributors are their own.