Once heralded as ‘next big thing’, it is now universally agreed that DevOps has revolutionised testing and development - and it is here to stay. DevOps, the culture and set of processes that bring development and operations teams together, promise significant benefits for those who do it well; shorter development cycles, faster innovation, reduced deployment failures, improved communication and collaboration - and ultimately, the increased efficiencies which drive competitive advantage and improved customer service.
But striving to mature Agile and DevOps processes is easier said than done. At the moment just 28–30 per cent of the teams that aim to mature their DevOps practices are successful.
So, what are the bottlenecks? And how can organisations eliminate these issues and successfully drive mature DevOps activities?
A look at the obstacles
The DevOps journey is essential for companies who want to retain competitive advantage in a cut-throat, hyper-competitive, business landscape - but it calls for fundamental change to culture, processes and technologies. The complexity is significant - there are many moving parts: continuous measurement of usage, efficiency and cost, automation of processes, continuous monitoring towards continuous improvement, and much more.
For many, though, the most immediate and pressing concern is that maturing DevOps requires massive cultural change at the heart of an organisation. At Perfecto, we know that in order to be successful, leaders must address this challenge from the outset - ensuring that executives across a business understand and support the move, recognising that DevOps is not just a set of principles, but a critical tool for digital transformation. Staff must work collaboratively in a changed (and flattened) organisational structure, and understand that, in this environment, there’s more flexibility to problem-solve and ultimately to shape a 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.
Overcoming the hurdles
So, the challenge can’t be underestimated. But we do believe that 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.
But all of that sounds insurmountable. So, when we work with customers to facilitate this change, we drill down into the above checklist to provide five key steps to success.
1. Continuous production monitoring to identify usage trends and production issues
These activities drive consistent feedback to management and developers, helping the entire team to adjust the service in various ways, quickly, and based on customer needs.
2. 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 need 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.
3. Conduct a customer base usability lab when applicable
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.
4. 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.
5. 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.
6. 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:
So, there's a lot to consider, and it’s a complex road to getting it right. But, ultimately, we believe that 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.
Eran Kinsbruner, chief evangelist, Perfecto
Image Credit: Profit_Image / Shutterstock