In my previous blog post, I discussed that DevOps is an organizational change which brings Operations and Development teams together, enabling teams to continuously deliver value. It is clear why organizations adopt DevOps, but the transition to a full DevOps culture is difficult to complete and there are many challenges to circumvent on your journey to adoption. Let’s discuss some of the ways to easily avoid these pitfalls.
Before adopting DevOps, it is imperative that you take a step back and identify the biggest blockers for a DevOps culture. Mendix has identified four important focus areas in which to make improvements and prevent further challenges:
- Corporate Change [Program]
- Automate & Measure
- Microservice & Architecture
- Agile & Mode 2 Evolution
Most organizations won’t be able to address all those challenges at the same time, which is alright. DevOps should be a smooth and natural change, forcing this transition in all areas of the organization will likely create a lot of resistance.
Before you start the transition towards DevOps you need to review the four key areas and be prepared to make changes. DevOps is a large organizational and cultural change, and for a successful adoption, change in both process and mindset is critical. Without changing how you approach DevOps, your team will quickly run into roadblocks.
But good news! Addressing roadblocks doesn’t have to be hard if you build a transition plan for the following areas:
Corporate Change Program
Start an Organizational Change program by building dedicated DevOps teams to take ownership of new & existing applications. Shift departmental priorities to align with the DevOps mindset. Introduce additional tools and methods for support, such as CICD tools or the IT4IT framework.
Automate and Measure
To keep up the rapid pace of change, DevOps should not be relying on the traditional and long procurement or provisioning cycles between changes. It is important to have a basic level of automation in place when starting DevOps. The minimum is to have some automation in the hosting, provisioning, and deployment. Using a container framework to run your applications will allow the team to update and change the software when needed. Once the basic tools are in place, focus on being able to collect objective measurements on where the team is spending time, and continuously optimize the most time consuming and tedious processes.
Microservices & Architecture
Some architectures don’t lend themselves for DevOps. In a large Monolithic or SOA solution, it becomes more difficult to define the exact area the team is responsible for and making the team responsible for the entire landscape will only create smaller silos within your organization. This can often become a struggle during adoption.
Start small, and choose to start with a solution that supports the DevOps vision around ownership and continuous improvement. Microservices are a great example of an architecture that allows for DevOps.
Agile & Mode 2 Evolution
In order to successfully adopt DevOps, it is imperative that agile is engrained in the organization. At the very least, ensure that you set up a bimodal organization and enable your Mode 2 team to fully adopt the agile mindset prior to adopting DevOps.
DevOps is an evolution of agile, and for a successful transition from agile, everybody involved with the DevOps team should support the Agile mindset. This includes everyone from the team members all the way up to the executive level, with the people who need to make sure to set targets and budgets compatible with the DevOps mindset.
5 Ways to Successfully Adopt DevOps
There are many things that you should focus on while making the transition to DevOps. The following five topics will have the biggest impact on the success of your adoption of the DevOps culture:
- Start with people that have T-shaped interests and skills
There will be I-shaped people in your organization and these people can function very well in a DevOps organization, but to set up the initial approach you need people that are interested in improving the full application lifecycle.
- Allow time for automation and improvements
DevOps without automation tools is a myth and you will need to make sure that the team has time available to continuously automate and improve the most time-consuming processes. At the start of your DevOps adoption, this will relatively take a lot more time. Try and leverage existing platforms and technologies that provide this out-of-the-box.
- Focus on culture and ideology
Work closely with the team to enable them in all their initiatives. This will allow them to own the processes and products that they work on, making them more willing to focus on both the Development & Operations side of the process.
- Keep the same small teams
Don’t break up the teams or create combinations of teams. Long-lived teams are even more important with DevOps than with an agile methodology. Create strong teams, and assign work based on team capability rather than individuals.
- Setup a new Mode 2 process for the new team
If you were to mix the approach of the new initiatives into your old support or maintenance cycle, the team will likely be restricted by that approach and fall back to the traditional way of working. Instead, create a new Mode 2 process for the new team and initiatives.
How do I get started?
Start Small! As with everything in the agile approach, start with a manageable chunk of work. Don’t attempt to make all the changes at once. People will struggle to find the right balance with the new processes and tools, and it’s very likely that you’ll encounter a lot of resistance to the change.
Build one or two DevOps teams with willing individuals to start the new initiative and slowly scale this through your organization. Keep the common pitfalls in mind, and continuously adjust and improve your methodology while rolling it out in your organization.