DevOps plays a vital role closing the gap for the Operations team by integrating the two teams to focus on a common goal. It is a cultural shift fueled by communication and collaboration.
There is no “one way” or “right way” to implement DevOps. But most people jump to tooling when thinking about DevOps when actually; the MOST IMPORTANT element is the culture and the people. In order to successfully bring two teams together, you have to start with the people first.
Start with having all teams focus on the end customer. Sounds simple right? But if you dive into it, you will find that often, different teams think their customer is someone different. Many may think that their customer is the next group “down the assembly line” or that their main customer is their business partner making the request.
But broadening their scope and aligning their vision to the true end customer creates a common belief that can help spur the cultural change needed to foster a truly cross-functional team.
With the common vision, begin including each group in more discussions. Address operational concerns earlier in development. Involve the development team farther into deployment and testing. Seek to merge both the people and processes involved in application development with the people and processes involved in setting up and supporting the application. Changing the “definition of done” to include infrastructure and ensuring code works in deployment.
From a development perspective, developers keep deployment in mind. The team improves by implementing procedures to make sure code is high quality and optimized for quick deployment and support. This requires some cross functional awareness and learning to expand their understanding of the infrastructure and system, enabling developers to build a better awareness of how the decisions they make impact downstream processes and deployment.
From an Operational team perspective, infrastructure is addressed as soon as development begins. Environments are created in repeatable processes that are streamlined and automated. Development, testing, and QA environments are exactly the same as live systems. Any infrastructure concerns need to be pushed earlier so that deployment process becomes part of design and testing.
This comes with process standardization. The quality, validation, and release management steps needs to move from an ad hoc, each time “we do something just a little bit different” approach, to a defined, mapped, and versioned process. Take the time to understand this. Map, define, and optimize the process. The resulting deployment methodology will help align the teams, speed up the process, and is vital to creating a reliable continuous delivery cycle.
The resulting enhanced communication results in a cultural shift towards more collaboration and partnership. More reusable operations stories are brought into the Agile process. The end result is a reduction in deployment times, a much faster release cadence, and a higher level of value to both customers and the organization as a whole. Yet without people/process changes, an organization will not fully get the benefits of DevOps by implementing tools alone.