Monday, September 25, 2017

What is the role of a DevOps coach? Part 1(4) : What is #DevOps ?

By : Liat Palace  (Director, Delivery Technology Office Agile/DevOps Coaching Team Lead – Amdocs)  & Shirly Ronen Harel (Co-Founder & Agile / DevOps Coach -WeChange)
The first major issue we encounter when we start implementing DevOps is the need to gain a basic understanding of what DevOps is and what it brings.
I’ve been asked many times: Is it something that will disappear after a while? Why is it so important and why is it different?

Our friend Thomas Cagley @TCagley, in his article DevOps Primer: Definition, states that if you ask 20 people the definition of DevOps, you will get 12 different definitions and 10 people who are not familiar with the term. 

He then quotes David Herron, who provided a simple definition: “(DevOps is)…an integrated approach to software delivery that include process, tools, technology, resources.”"
For a long time it was a world of size, and big organizations had a clear advantage over small ones, sometimes even a monopoly.

Now with the fast pace of changes in the market, the game has changed. The organizations that are fast enough to react to changes and stay relevant have the advantage.
In a fast moving environment, where speed is a necessity and quality is not negotiable, organizations need to find a way to move from ideation to delivery as fast as they can, with the highest quality.

Which actions should be taken to move towards adopting DevOps?

First we need to remove some barriers. There are barriers between Dev (that wants to change the code, and add to it) and Ops (that wants to keep everything stable). We need to break down and adjust the boundaries between the developers and the operations people, so that they work together. We want to deliver products with good quality and fast time to production, and at the same time create trust between these groups.

We then need to remove some more barriers. The whole ecosystem should speak the same language and move the organization towards the same goal.

Marketing, finance, HR, learning services, procurement, and legal should all change in order to support rapid delivery and the DevOps changes.


For example, we see situations where the finance budget plan is approved once a year, and cannot be aligned with the rapid changes the DevOps chain requires.


So we can add tools. We can add them everywhere, making sure that there is no break down on the way to production. Tools play an important role in building awareness of quality. We can create continuous integration for every line of code, continuous delivery for any functionality added and tested, health monitoring, better logs and more. 

But I’m afraid that tools are not enough. Why?
Because we need to know where to employ these tools. What is a valuable application of these tools? How do we determine this? We need to know our production line. We need to identify production line bottlenecks, understand and set up the right process. Imagine we are a chocolate factory - we can add cocoa but still not deliver chocolate if the mixer isn’t working properly.

Tools, processes and barriers are only a small part of it. Why? Because we need people to be part of DevOps adoption. And they need to have the right mindset to be able to deliver the right feedback.

Why? Because in a rapidly changing environment, we need people to give us feedback from every part of the production line, whenever needed. In this complex environment, issues arise, change and being develop differently throughout the production line. Therefore we need people to understand the DevOps mindset and raise flags, when necessary. We need to quickly identify problems and solutions. We can only do this when we have the right mindset, and when everyone is on board and knows what they need to do and why. In this complex environment we need all the different professional perspectives to be available to us for fast decision making. We need to know where to use our tools according to accurate feedback and recognized bottlenecks, what to change and why. Without the right people and mindset, we are limited in our ability to do so. To reach this state, everyone needs to work together to create a culture of collaboration, to deliver value fast. Without the right mindset, we may still succeed, but will still generate a great deal of waste in the process, and reach our goals more slowly.

In extreme cases (and I have seen such cases), the entire organization gets stuck due to a lack of collaboration, to the point where they are not able to deliver.

So what is DevOps?

"DevOps means that there are no walls, no gates, no transitions, and no ceremony between Development and Operations. They are seamlessly integrated (when viewed from ’above‘) into a single, value delivering, IT entity." 
“(DevOps is)…an integrated approach to software delivery that include process, tools, technology, resources.”

DevOps includes rapid collaborative development without hassles, continuous testing, continuous deployment and continuous monitoring, and it can't work without a proper mindset in place, one that aims to allow everyone to collaborate to deliver value faster.

It cannot work without E2E organizational support to make it happen. This means that DevOps is not only about Dev to Ops; it involves the entire organization’s culture and functions: HR, Sales, Marketing and more.
This is a huge challenge, but it is doable.

 Part 2: What is Holistic #DevOps ?





No comments:

Post a Comment