The famous depiction of Dev throwing work over the wall to Ops is etched in the minds of early DevOps adopters. It showcased the need for merging Dev and Ops teams into unified DevOps teams to collaborate better for high-speed application releases. But in reality, for almost a decade now, DevOps adoption has focused on engineering automation to develop CICD pipelines for applications. Thus, creation of unified DevOps teams took a backseat.
In hindsight, it probably was the right approach for that period since, without end-to-end automation, the speed of releases was not really high enough to demand a merged Dev and Ops team. By working in Agile iterations, the size of releases was cut down, but manual activities and handovers still resulted in longer release cycles. Multiple agile sprint cycles were then clubbed to form a final release. Essentially with no faster releases, there was no need for Dev and Ops to collaborate frequently, and hence the need to break the wall between Dev and Ops was not felt.
But with CICD automation and, in some cases, with extreme no-touch automation, the increase in speed of releases has become a reality. The frequency of releases has improved from once in nine months to once a week or even faster, on-demand. Such high-speed applications now have to take notice of the frequent Dev-to-Ops handover challenges to support the newer releases. There is pressure surmounting on Ops teams to maintain the same service levels in production despite the flux with frequent releases. This increasing frequency of application releases has made a strong case for unified DevOps teams. And we observe that more and more organizations are looking towards forming such teams for their digital applications at a minimum.
Associate Vice President and Head of DevOps COE at Infosys Limited.
Challenges in forming a unified team and how to address those
However, creating unified teams is not as simple as making Dev and Ops sit together across the table and calling them one team. There are some key considerations for forming successful unified DevOps teams.
Firstly, unless there is an explicit effort taken on culture and mindset change, it will not be easy to make Dev and Ops work on each other’s tasks with the same commitment. Mindset change is needed to make them realize the larger goal and overcome the barrier of rating certain tasks superior to others. A good ‘DevOps coach’ can help change this mindset through techniques like enablement, business interactions, setting up common KPIs and metrics for the entire team, and removing any performance measurements for individual Dev or Ops tasks.
Secondly, the ‘DevOps coach’ need to be supported by organizational change where a common product owner is identified for a unified DevOps team. The product owner who understands Dev and Ops tasks’ importance and can prioritize one over the other as per business needs plays a crucial role in the team. Without such a common product owner, there will always be a task prioritization challenge, and teams will still play individual Dev or Ops roles.
Thirdly, just forming one team by combining Dev and Ops won’t result in a team of DevOps professionals. Both Dev and Ops require cross-skilling through a very structured training approach. It is not just a simple objective to teach a developer how to perform operations tasks and vice versa. Developers will also need comprehensive training on support processes, SLAs, issue analysis, and troubleshooting. Most importantly, they need a broader domain and system knowledge to locate and resolve issues rightly. Similarly, it is not just enabling operations members to code as there are different levels of operation support, like L1, L2, & L3 which have their own levels of coding expertise, it is not practical to expect all of them to start coding. ‘DevOps coach’ needs to create a plan for each level of operations support with a scope of gradually adding Dev activities. For example, L3 support staff can probably pick up coding very quickly and start contributing to user stories. But an L2 person cannot take up user stories immediately, so a gradual learning path that first enables one to work on L3 tasks and then user stories would be better. A good DevOps coach can create such customized learning paths and roles-responsibilities plan to ensure that we get a truly cross-functional team over time.
Lastly, while it looks easy to get a training plan on paper, finding time for a very busy Dev and Ops teams to learn new skills and work on other area tasks while not impacting their current velocity or SLAs is a tough ask. Where do they start first? Should one deprioritize some of the developer user stories and ask developers to contribute to Ops tasks so that Ops gets the bandwidth to learn coding skills? Or is it the Ops members who take the lead? A good DevOps coach can make contextual decisions on how enough bandwidth is created for teams to get cross-skilled with minimal impact on the business.
People transformation
To summarize, if one thought that CICD engineering automation was the tough part of DevOps adoption, then it is definitely not the case. People transformation has always been a very subjective topic and does not come with a predefined formula for success. Forming unified DevOps teams is much easier said than done. But paying keen attention to how these teams are created under an able DevOps coach’s guidance can amplify DevOps benefits for any application.
We’ve featured the best collaboration platform for teams.
This article was produced as part of TechRadarPro’s Expert Insights channel where we feature the best and brightest minds in the technology industry today. The views expressed here are those of the author and are not necessarily those of TechRadarPro or Future plc. If you are interested in contributing find out more here: https://www.techradar.com/news/submit-your-story-to-techradar-pro
https://cdn.mos.cms.futurecdn.net/D4YBMfcEsNT7BhaNJJgm2A-1200-80.jpg
Source link