In my last blog I discussed four key areas that are usually used to measure the performance of an IT organization. This blog will explore the strategies to help your company adopt DevOps practices.
The first question you should ask yourself is Why? Why should DevOps be part of your IT strategy? In his excellent blog, my colleague Justin Rodenbostel talks about identifying goals before a solution can be chosen. For example, you goal might be to align technology with your organization’s strategic objectives in order to deliver innovative solutions to customers more rapidly.
Start with a high level assessment
Defining high level goals is a good start, but you then have to define focus areas. Sometime focus areas are obvious. But to create realistic and achievable action items, you need to perform an honest assessment of your current state. This assessment itself should be done at multiple levels. The first level involves defining a matrix that describes the current state at a high level. For example this high level matrix might cover the following areas:
- It takes us 12 months to take a new product to market.
- It can take us multiple days to fix outages in high-priority systems.
- Overall business satisfaction is low due to the time it takes us to deploy new code to production.
Pick your focus areas
Once you have a high level assessment completed, it’s time to create some focus areas and a strategy to target those areas. This will collectively define your ideal state (some call it end state). This ideal state can be short term or long term, and needs to be flexible so the business can adjust to current needs. This flexibility also means it can adjust to meet future needs. Here are some examples of an ideal state:
- Time for new product to market should take 6 weeks
- Reduce time from code commit to code running in production-like environment by 50%
- Fix all outages within 4 hours
Start sharing across the organization
So by now all the technical and non-technical management should be on board with DevOps and be fully aware of the DevOps principles and methodologies. With the leadership on board, all the high-level goals, assessment, current state, and ideal state must be shared with rest of the organization. This should not be a matrix only visible to upper management. In order to successfully adopt DevOps in an organization, these goals must be shared with everyone.
In our experience, DevOps is best implemented using a top-down approach. Executive sponsorship and support of DevOps is essential for any successful DevOps adoption throughout the enterprise. Every employee must understand why they have been asked to implement DevOps practices. If they don’t understand why, they will always be reluctant to implement real change and keep reverting back to old ways of doing things, frankly because they are more comfortable with it.
Assess your products
Now what? How do you really start implementing DevOps practices across teams? The answer depends on how large your organization is. Earlier, I talked about performing assessments at multiple levels. For most medium to large organizations, this will typically mean performing a deeper assessment of all the products/applications in IT. It can be a self-assessment by employees in the company but in order for it to be effective and unbiased, it should be done by a consulting firm.
In my next blog I’ll cover what this deeper level assessment entails. But the primary purpose of this assessment is to establish a baseline and identify gaps in order to put together a detailed remediation roadmap. It will further refine focus areas but now we can be more specific on what we want to achieve and better yet how to achieve it.