Scaling up effectively by embracing DevOps transformation
Despite being deemed as a typical tech buzzword, “DevOps” – the process of combining software development and information technology operations to shorten development lifecycle – brings clear benefits. Faster lead times from commitment to deployment, greater customer responsiveness and the ability to scale and respond to market changes are just a few advantages businesses can expect by embracing DevOps transformation.
However, whether an organisation is contemplating a minor improvement on its current software delivery pipeline or a major transformation, the process of DevOps is often overlooked. So, why isn’t every business using DevOps practices? Gordon Cullum, chief technology officer of digital services firm Mastek, reflects on the matter below.
In reality, it is rare, these days, for an organisation not to have adopted any of the technologies and practices that have become part of DevOps. But often a company can be unsure of where to start, how to continue, and equally afraid of failure at any point along the journey. This article summarises the typical stages that, in my experience, most organisations pass through as they adopt DevOps strategies in the attempt to improve their technology and processes. Every business will have unique needs and challenges, but there are recognisable stages common to most.
Fail to prepare – prepare to fail
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.
Scaling up effectively by embracing DevOps transformation
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 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.
Visibility will be key
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.
Streamlining DevOps processes
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.
“Managing a DevOps culture is not the same as creating one; processes must be put in place that boost new attitudes and behaviours.”
– Gordon Cullum, CTO of Mastek
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.
Upskilling the workforce
A business should put its regular automation and monitoring to the test by providing teams with self-service capabilities when it feels its challenges have been solved. Team productivity will increase with self-service infrastructure automation 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 security, financial accountability and technological and architectural adherence.
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.
The next step for DevOps transformation…
When embracing DevOps transformation, as with any technological advancement, new challenges and opportunities will be presented. Market growth and innovation will eventually generate more technical change, but the cultural changes should be long lasting and a permanent gain, however, this can only be accomplished if they are preserved. Managing a DevOps culture is not the same as creating one; processes must be put in place that boost new attitudes and behaviours.
A business will continue to reap the rewards of DevOps transformation by demonstrating to staff that the sustained duration of change will result in more space to think and use their initiative. With people being at the heart of any successful business, having employees onboard will be vital when scaling up effectively.