Most large-scale DevOps initiatives fail to succeed. A report from Gartner predicts that “through 2022, 75 percent of DevOps initiatives will fail to meet expectations due to issues around organizational learning and change.” According to the analyst house, one reason for this is that organizations have too high and unrealistic expectations of what implementing a DevOps approach will bring. These high expectations exist because when organizations decide to take the DevOps path, it is often in an attempt to emulate the success they have seen in big webscale companies. The reality is however, that for the vast majority of companies, their circumstances are so far removed from the Apples, Googles and Microsofts of this world that attempting to follow their example will only lead to tears.
It is understandably tempting for a company to look at the tech giants of today and think that by copying exactly what they do, success is guaranteed. In fact, what these organizations are not considering is that often by virtue of not being born in the modern era they are shackled by issues preventing the same level of success. Most have a large legacy infrastructure to manage, are unable to attract the same kind of top-shelf talent and subject to regulatory burdens. This is often accompanied by a lack of willingness to change their business processes to fully integrate a DevOps mindset into their organization. Even when a company does recognize that changes are needed, too often they are implemented and managed poorly.
Taking stock and managing change
When making the decision to implement a new model, framework or methodology, you first need to understand your own organization, the way it works and the reasons behind this. What processes already exist and is there a reason things are done in this way? For example, in highly regulated sectors such as finance and healthcare, there are probably regulatory and compliance issues which will prevent a copy and paste job of frameworks that have been successful elsewhere. How are your IT teams set up and how is this different from the setup of large webscale companies? What organizational scar tissue exists? It is essential that you understand your own context as well as that of the companies you are looking to emulate from the very beginning. Be willing to be flexible, either finding ways to adapt your own processes to new models or frameworks, or adapt them to fit your specific context.
Most importantly, change needs to be managed properly. It is okay to take your time. No organization will be able to transform their teams overnight into highly functioning, fine-tuned, agile DevOps operators. Changes need to be delivered in small batches, getting stakeholders involved early on and setting metrics from the start. Feedback cycles need to be quick and frequent allowing for efficient and effective remediation of issues as and when they inevitably arise.
To hire or not to hire?
One hurdle many organizations will face is that if they are looking to adopt a cutting-edge framework, this will require cutting-edge skills, which may not exist in their current workforce. At this point organizations will have a choice to make; do we hire new talent, or do we upskill our existing workforce? It is undeniable that getting some fresh blood into any company can be a force for good. No organization should be closed to the idea of broadening their workforce and letting in new people, new skills and new ideas. However, companies with a lesser degree of digital maturity need to be honest with themselves. Will they even be able to attract the kind of talent that they need to have a successful implementation of DevOps and modern frameworks for success? Will they be able to afford the salaries necessary to hire an expert in Kubernetes? And even if they can, why would an expert in Kubernetes want to work for a company at the very beginning of its journey into the modern world?
In fact, there are very good reasons why you don’t necessarily want to be hiring top talent anyway. Often, DevOps implementations fail in organizations because they are approached as technical issues. However, they shouldn’t be. They are socio-technical issues. And it is undeniable that it is easier and more efficient to train existing staff in new technical skills than it is to train new staff in the social understanding of your organization. Don’t forget that any organization’s employees are experts in their own organizations. They understand the social context, they know ‘who is who’, ‘what is what’ and where the stationary cupboard is. Nurturing your people and training them in the skills they need will not only foster a healthier relationship with your team but also make you better placed for the implementations of new frameworks to be successful. Once you have succeeded in this, your organization will also be far more desirable to that top-self talent.
Doing the work
Ultimately, when adopting a new framework or model, be it DevOps, Agile, SRE, or just about anything, you have to do the work to understand how that framework should be tweaked to take into account the context of your business. For DevOps, this means taking the time to learn what it actually means as a loose collection of practices; culture, automation, measurement and sharing. Organizations need to be prepared to take the necessary steps to change, not just the mindset of their teams, but also invest in their development. If they need new skills, then a company needs to do what it can to ensure that they are equipped with the resources to learn these skills. Finally, to implement DevOps frameworks effectively, it must be approached with a DevOps mindset: Examine and measure the whole system, create and amplify feedback loops, to give participants a way to provide feedback and act upon it. Where possible, integrate automation and always remember that this is a process of continuous learning and evolution.
Nigel Kersten, Customer Success, Puppet