The combination of software development with information technology operations, more commonly known as DevOps, is a term that has been bounced about by IT departments for the last decade. Despite the range of benefits this process can offer to businesses, including greater customer responsiveness, faster lead times and enhanced ability to scale and respond to market change, DevOps is often overlooked by organisations due to its complex and daunting appearance.
Whilst it is rare in today’s progressively digital era to come across an organisation that has not adopted a single technology or practice that has become part of DevOps, for some businesses, fear of failure continues to hold them back. For organisations at the beginning of their DevOps journey, knowing where to start can be a roadblock in itself.
Whilst every business will have unique needs and challenges when approaching DevOps transformation, there are five stages that, in my experience, most organisations pass through when adopting an effective DevOps strategy.
1) Preparation will be key
Before setting out on a DevOps transformation an organisation needs to be prepared. One of the most important elements of this stage is ensuring that the goals of the transformation have been communicated across the organisation, that there is buy-in, that management will support staff in the challenges ahead and that this is transparent to staff.
A successful DevOps transformation relies on a business’s most valuable resource: its workforce. Organisational and technical change will often put significant demands on them and so having their confidence that the transformation will succeed and their willingness to change old processes and attitudes, is vital.
Before setting out on a transformation path, it is therefore essential that a business clearly communicates the goals of the process with its staff. Essentially, the primary DevOps goal is to optimise the flow of value from idea to end user, and with this, comes a cultural change that must take place for a company to be successful. Whilst culture is a big focus, the DevOps goal is to make the delivery of value more efficient and effective whether that’s TTM, Reliability, Predictability or maximising skill re-use. Getting expert support, to not only answer concerns but also run workshops to increase understanding of DevOps practice can also be pivotal to success.
2) Ensuring inventory visibility
Before a business can start the process of change, it is essential to have a clear and comprehensive picture of existing technologies and an assessment of their complexity. This list can then be used to identify ways to remove unnecessary complication, for example by eliminating duplication where different tools or processes do the same thing, getting rid of in-house products that are no longer fit for purpose and moving to standard technologies, tool sets and configuration methods across the organisation.
It’s important to help create clear schedules for the review and consolidation of technologies and let teams take the initiative in choosing which technologies to keep and how to manage the migration with agreed priorities and realistic deadlines.
At this part of the process it’s also essential to turn migration goals into milestones and celebrate their success. Early wins can deliver measurable cost and time savings to reassure senior stakeholders and also provide a less-pressured stage to build collaborative and constructive processes. Use this as opportunity to boost team morale and secure longer term buy-in before the more ambitious transformation begins.
3) Managing cultural change
The success of the consolidation and standardisation process can typically cause a range of problems that are often a surprise to the organisation. For instance, increased efficiency can place unprecedented strain on parts of the business, its processes, the application architecture and the infrastructure.
Meanwhile, removing known bottlenecks can reveal previously unknown inefficiencies, while if improvement is uneven (as is likely), morale and collaboration between teams may fluctuate as the finger of blame is pointed.
These issues can be addressed through the improvement of DevOps processes and culture. Many staff, at this stage, are likely to see technical remedies as far more important than culture improvements, but it is vital to show them that cultural change enables technical improvement.
The business must therefore reduce bureaucracy, give teams autonomy to decide on solutions and encourage a blame-free culture. Ultimately, cultural change has to happen from the top down.
4) Automation will save time, and money
As efficiency and productivity continue to increase, there will be increasing strain on the infrastructure.
This is not least due to fact that the application of development good practice to infrastructure code is a relatively young and immature discipline. It is also usually the trickiest to address and the hardest to make scalable. Even moving to the cloud does little to help if infrastructure provisioning is not sufficiently automated.
A high level of automation must be developed and applied to infrastructure configuration and provisioning. The infrastructure also needs pervasive monitoring and logging, with automated responses to alerts about significant state changes and good data analysis to reveal trends. Without this, substantial time and money can be lost through inefficiency and inappropriate scaling.
5) Using self-service to drive team productivity
When a business feels its regular automation and monitoring challenges have been solved, it should put them to the test by providing teams with self-service capabilities. Self-service infrastructure automation will increase team productivity and in time free up operations staff, so that they can focus more time on developing automation solutions. Businesses need to bear in mind though that to achieve this level of automation, staff will need to be upskilled or people with relevant skills recruited. However, it’s important to note that the upskilling of staff isn’t just the upskilling of technologies (AWS, Azure), it’s also about financial accountability, technological and architectural adherence and security.
If at this stage the disciplines of immutable infrastructure haven’t been adopted, now is the time to do so. Re-evaluate infrastructure automation and configuration patterns, looking for things that are no longer appropriate or necessary on immutable infrastructure, and enforce a discipline of no manual intervention for maintenance of servers/virtual machines/network infrastructure. Automated testing and monitoring should also be reviewed to ensure complete confidence in both.
Businesses undergoing DevOps transformation can expect to come across a range of new opportunities as well as challenges from adopting this new technology. Whilst innovation and market growth will eventually lead to a more technical change, cultural changes will be a permanent gain. This however, can only be achieved if they are preserved. Businesses must work to create a DevOps culture amongst employees by reinforcing new attitudes and behaviours.
To do so, businesses must put in place processes and demonstrate the benefits they can receive by embracing DevOps transformation. From more space to think and use their initiative, to greater support and reward for work that removes technical debt. By ensuring employees are onboard businesses will be ready to embrace the many rewards presented by a successful DevOps transformation.
Gordon Cullum, CTO, Mastek