DevOps, the culture and set of processes that bring development and operations teams together, is now universally viewed as the secret sauce to balancing the need for quality and velocity in software releases. It promises significant benefits for those who do it well bringing shorter development cycles, faster innovation, reduced deployment failures, improved communication and collaboration – and ultimately, the increased efficiencies which drive competitive advantage.
For most of us in software development, it’s the ultimate goal – moving from traditional, waterfall approaches to iterative development, agile, scaled agile, and finally, DevOps. DevOps moves the focus from development to delivery – a subtle but important distinction.
But striving to mature Agile and DevOps processes is easier said than done and many companies simply aren’t managing it. At the moment just 28 to 30 per cent of the teams that aim to mature their DevOps practices are successful.
So, what are the bottlenecks? What does success look like, and how do we get there? How can organisations eliminate these issues and successfully drive mature DevOps activities?
Hurdles to overcome
The complexity of the DevOps journey is significant as there are many moving parts: continuous measurement of usage, efficiency and cost, automation of processes, continuous monitoring towards continuous improvement, and much more. Fundamental changes are needed to culture, processes and technologies, and we know that in order to be successful, leaders must address these challenges from the outset.
For many, the most immediate and pressing concern is that maturing DevOps requires massive cultural change and ensuring that executives across a business understand and support the move to DevOps is crucial. They must recognise that DevOps is not just a set of principles, but a critical tool for digital transformation. For staff on the ground, the change is great. They must overcome the dev versus ops mentality, work collaboratively in a changed (and flattened) organisational structure, and understand that, in this environment, there’s more flexibility to problem-solve and ultimately shape product design and development from the outset.
Besides culture, process is crucial element of key DevOps success. In a DevOps environment, automaton is employed to develop a continuous integrated delivery platform that can be tested and monitored automatically – but the complexity of such a system leaves many executives struggling to know where to start. Understanding the route to introducing automation, and how to revise processes across an entire software development life cycle (SDLC), is vital.
The final hurdle is in selecting the right technology facilitate a move to DevOps – such as configuration management tools, continuous delivery platforms and automated testing itself. Leaders must decide the process and criteria for selecting tools, how they’ll be managed and how (or if) to limit the number of tools which should be used within an organisation. Moreover, IT leaders should be watching for which tools make sense for the future, to avoid being left behind.
Practical steps for success
So, the challenge can’t be underestimated. However, the process can be broken down into a finite number of recommended practices. These include ongoing collaboration with customers for validations of new functionalities and feedback, following coding guidelines for tests and production code throughout the pipeline, continuous measurement, monitoring and analysis, efficiency and cost analysis – and good governance and control:
- Continuous monitoring – Continuous production monitoring to identify usage trends and production issues drives consistent feedback to management and developers, helping the entire team to adjust the service in various ways, quickly, and based on customer needs.
- Cost analysis – Continuously measuring the cost of the product and being able to optimise it for efficiency impacts revenue and the success of the entire team. To analyse cost, there needs to be tools in place that can measure and collect production analytics, usage trends, and available inhouse knowledge of costs of development and support for the product.
- Usability testing – The value-add to this kind of activity is enormous. Usability labs with your customers will confirm or reject whether your feature spec meets their desired outcomes and that your implementation is easy to use and intuitive. During the usability lab, the R&D team and the UX expert will gather input from the customers that will help define the new products.
- Define your feature rollout plans – Depending on the size of the feature and its value, the DevOps team will decide whether to gradually expose a feature, do an early access, or release it with an entire product iteration as is. Each path will have its pros and cons; the leadership team needs to make a calculated and risk-based decision.
- Match the technology stack to your product requirements – Build an efficient tool ecosystem that can support development, testing, and monitoring activities. When evaluating tools, consider both open-source as well as proven commercial tools. Perfecto uses a large set of technologies throughout its overall DevOps activities and continuously seeks additional solutions that can optimise and enhance its objectives.
- Build a solid test plan – Having a plan behind your overall DevOps activities is key for success. The method of assuring quality must involve various pillars, including:
- Treating test code as production code — with all this entails
- ATDD — Acceptance Test Driven Development as a key practice to assure quality
- Strict code merge process to assure master is always stable
- Green CI (a must)
- Continuous code reviews throughout the coding life cycle — check for coding guidelines, memory leaks, peer reviews, and more.
- Test for backward compatibility across releases
- Assure that Dev environment = production environment to reduce escaped defects and mitigate quality risks.
- Include testing — and especially test automation — as part of the MVP or feature definition of done
So, there’s a lot to consider, and it’s a complex road to getting it right. But, leaders who don’t adequately support DevOps within their organisations — whether it’s in getting the right tools, hiring the right teams, employing the right processes or backing new ways of working — will pay dearly for their decisions in the long term.
Software and IT Ops teams around the world realise that incorporating DevOps practices into their work cultures helps them to evolve into a faster and more innovative version of their former selves. Pursuing this change can be uncomfortable because it calls for teams to move out of their comfort zones and because it presents significant technical and process challenges. However, the companies that stay the course and commit to change will ultimately reap massive rewards, and that’s why the DevOps challenge is so crucial.