With evolution becoming a constant in the world of IT, it is clear that those who remain loyal to outdated working models will continue to struggle to innovate and remain behind the competitiveness curve.
However, moving down the path of transformation can also be tricky. It can be easy to get blinded by immediate benefits only to find yourself coming to a grinding halt later. “This methodology doesn’t work” then becomes the most common lament. At least, that has been a common lament for DevOps, a methodology that brings developers and operations closer and helps them work more harmoniously.
Then why does DevOps transformation receive so much flack? Perhaps because as Gordon Haff, technology evangelist, Red Hat puts it "Technology is easy. It's people who are hard.”
One of the most common reasons why DevOps transformation seems unsustainable is because organizations expect it to miraculously solve all problems. These transformations hit major hurdles and fail because organizations approach these without understanding what they should be trying to achieve.
Growing a DevOps initiative beyond a few teams often seems to increase the risk of failure owing to complexity and ambiguity. Such risks deter many organizations from adopting this practice.
DevOps has quantifiable technical and business benefits – shorter development cycles, increased deployment frequency, and faster time to market being some of them.
However, its reliance on increased communication and collaboration also makes it a catalyst for cultural change within an organization.
To ensure sustainable DevOps transformation and for it to deliver its promised value here are a few things to focus on.
DevOps, holistically, is a business-driven approach to software delivery. It is all about taking a business capability from idea to production and providing business value to customers, capturing relevant feedback, and then reacting to the same with agility.
Organizations have to first identify what they want to achieve from their DevOps transformation. Moving along the transformation path without having an end-goal in mind only leads to more chaos and confusion.
Reduced time to market, lower maintenance, increased information security, decreased downtime, greater scalability, or enhanced global reach are some of the goals to aim for. These goals help in determining the business impact and consequently influence the technology choices.
DevOps sustainability depends a lot on aligning the vision for continuous delivery to the business vision. This vision has to be broad enough to cover all DevOps aspects and yet refined enough to guide decisions in the consequent change processes.
However, along with this, it is very important to communicate this vision across the organization so that teams can internalize the cultural values of transparency, continuous delivery, collaboration, communication, and processes. It helps people understand revised concepts of collaboration and the benefits of reduced process complexity. This also drives the importance of people over process and technology and establishes a culture of accountability and ownership.
Shifting an organization towards DevOps is a complex process and, hence, needs a clear roadmap in place. When embarking on this journey it is essential to take impactful but calibrated steps to create a blueprint of the ideal DevOps transition.
This starts from identifying the need to implement the DevOps, understanding the business goals it will fulfill, creating the vision, identifying the tools and technologies, establishing technology-enabled processes, project priorities, and timelines, and the necessary infrastructure shifts to operationalize DevOps.
Once the vision and the roadmap have been created and then clearly communicated comes the next vital component to ensure sustainable DevOps transformation – empowering teams.
To build the DevOps culture and ensure that elements like collaboration and reduced complexity and transparency diffuse into the organization, it is imperative to remove the obstacles that come in their way. For example, a rigid approval system or complex processes will be obstacles to the DevOps transition by limiting the ability of teams to experiment with new tools and technologies.
It is essential to replace all tools, technologies, and systems that undermine the vision and the DevOps roadmap. Simultaneously it is also important to encourage risk-taking and non-traditional ideas or activities that are directed towards a common goal – that of creating streamlined processes to deliver business value.
Choosing the right pilot to demonstrate quick wins also contributes to the DevOps transition. Selecting projects that create business value and tie in with the motivation to implement DevOps help in securing quick and tangible wins.
Once the pilot selections have been done then the teams need to create a blueprint of the desired state. A detailed execution sprint plan has to then emerge from this blueprint.
To maintain a sustainable DevOps transition, organizations should not bite off more than they can chew. Leveraging small projects helps a great deal more than choosing a large and complex project since the former leads to quick wins and generates momentum internally.
By tapping the information and experience derived from successful pilot projects, organizations can then change the systems, structures, and processes that do not feed into the DevOps model of continuous delivery. This makes the pipeline more efficient.
Consolidating these improvements effectively helps in removing bottlenecks to the delivery process and makes change management more seamless.
Continuous improvement is the hallmark of DevOps. Hence, for successful DevOps transformation, it’s important to institutionalize the new approaches for the DevOps culture and agenda by clearly articulating the connections that feed into the continuous delivery model.
Having the right metrics that are linked to top-level KPI’s help in scaling DevOps beyond a few pilots and assist in cementing it as the new culture by making it easier to measure success.
The tools and technology landscape will need change to shift successfully to DevOps. Given that DevOps leans heavily towards automation, the tools and technologies framework have to enable the same. Virtual infrastructures such as cloud, containers, and tools such as source code repository, build servicer, configuration management, are important to build the DevOps vocabulary.
Automated tools to monitor, log and introspect services both pre and post-deployment become essential for DevOps success. These tools and technologies ecosystem and automation help in driving efficiencies, reducing human error, increase reliability in the completion of tasks, improve testing, and speed up releases.
Once upon a time, IT was a tool to run a business. Today, IT has become the whole business since it has become the silver bullet that enables efficiency and smart work.
DevOps is a portmanteau of developers and operations to increase speed, frequency, and reliability of building, testing, and releasing software. The delusion that DevOps is all about tools, technology, and automation and that it will magically make development smoother is a mirage. DevOps is not an off-the-shelf solution. It is about changing the way organizations build applications. And for that, it is essential to have the right benchmarks and the right expectations that contribute to building a culture of experimentation, learning, and collaboration throughout the organization.