Over the last few years I’ve been involved in a number of digital Initiatives, hoping to leverage the promise offered by DevOps to gain a competitive advantage. As it turns out, DevOps done right is not the silver bullet it is often made out to be.
While many digital initiatives are categorized as paths to success, only a handful actually allow you to realize the value of DevOps, improving customer experience and getting new software solutions into the hands of customers sooner. Some promising digital initiatives left us questioning whether DevOps could actually deliver business value.
While the DevOps path can be challenging, there is no doubt that as a philosophy, DevOps enables digital transformation by increasing the velocity at which software can be delivered. DevOps done right allows companies to respond to market changes faster.
When embracing DevOps initiatives, there are a few fundamental things to keep in mind, in order to make the path less challenging and ensure your DevOps are actually delivery value to your business.
Define your definition of DevOps done right success.
What does DevOps mean? There is no single existing definition. DevOps (Development and Operations) means different things to different people, depending on their role, experience, and the organisation in which they work. By clearly outlining your definition of DevOps from the beginning, you avoid wasting endless hours of discussions over what DevOps means and the value it can bring to your organisation.
The primary areas of DevOps are:
- Infrastructure Automation; scripting the provisioning and configuration of infrastructure components.
- Continuous Testing; an end-to-end testing approach created to achieve four capabilities: test early, test faster, test often and automate.
- Continuous Delivery; automating release management so software can be deployed readily at any time.
- Continuous Monitoring; an end-to-end monitoring approach to ensure software is operating at optimum levels, including self-monitoring and analytics gathering.
Understanding what DevOps means to you will help you create a common language within your business, ensuring everyone in your team is on the same page so you can focus on working toward and achieving common goals.
Understand your company’s cultural landscape.
DevOps is more than a set of methodologies, frameworks or tools. It’s a philosophical way to solve a business problem by breaking down traditionally siloed working environments, creating cross-functional teams that are wholly accountable for success, quality, and increasing velocity.
Transitioning to a DevOps working environment is more than simply changing job titles and reporting lines. A DevOps transition involves a deep seated cultural shift, changing the way people have been working and the way companies have been doing business for decades. DevOps encourages you to move away from isolated, singular perspectives and experiences with little awareness or collective learning, to create a shared culture of collaboration, velocity and collective learning.
Before starting your DevOps journey, it is critical to assess the current cultural landscape, including Vendor Relationships, to ensure your initiatives have the right level of support. The key to fostering a strong DevOps culture is awareness and engagement from every member of your team.
Build your toolchain.
Working in DevOps extends on the foundations of process and people brought forth by Agile methodologies, adding the elements of data and technology for a holistic approach to software delivery. New technology drives innovations, and building a flexible strategy that focuses on adaptability to change is a critical component of any DevOps journey. Modern tools, processes and architectures enable continuous deployment at scale, and self-healing systems.
There is a continuously evolving selection of DevOps tools available in the market today. By investing in appropriate tools that align with your business objectives, accounting for existing processes, your culture landscape, your technology stack, and your architecture patterns, you will be well setup to establish a healthy DevOps toolchain.
Define your metrics.
Many DevOps transformations focus on the culture and technology, failing to acknowledge one of the most critical elements: measurement. Metrics and measurement of implemented strategies are an essential aspect of any technology transformation, enabling a data-driven approach. The right metrics provide the necessary data you require for continuous development and transformation, allowing you to identify the most and least effective methods, and adapt as necessary.
Metrics also provides a clearly defined format for capturing, reporting and measuring data, making it easier to communicate and share information across teams within your business. To establish meaningful metrics that indicate the success of your DevOps strategy, you will need to identify the challenges that you are trying to solve within the context of your definition of DevOps and your cultural landscape.
DevOps is all about continuous delivery of quality software. You may want to consider using a combination of the following metrics to determine DevOps success:
- Deployment Frequency / Time
- Lead Time
- Automated Tests Passing %
- Defect Escape Rate
- Error Rates
- Incidents and Requests
- Application Usage / Traffic
- Application Response Times
- Mean Time To Detection (MTTD) / Mean Time To Recovery (MTTR)
DevOps done right: Inspect and adapt.
DevOps is a journey of continuous improvement. By learning how to overcome your specific challenges, you will be better equipped to deliver quality software quickly. DevOps done right is a combination of people, tools, and metrics working together to continuously deliver quality software, by fostering a culture where software and product development and process improvement are approached with an experimental mindset.
The quality of your software is your key differentiator in the digital transformation age. DevOps allows us to place customer engagement at the heart of our digital transformation strategy, shortening development cycles and increasing the speed of innovation, to enhance the customer experience.
I have experienced the frustration of attempting to implement DevOps as part of a broader digital transformation strategy, in an organisation that lacked a shared DevOps definition and a culture ready for change. I hope that by keeping these fundamental things in mind you can ensure that your path to DevOps is a little less bumpy and avoid having an experience similar to mine.