About me: I am an Agile and Lean coach with background in software testing and a strong interest in the human aspects
of processes and organizational change. Currently I also hold the position of Director
of Operations at a leading software startup, where my responsibilities include
building the right processes with the right mindset, along with direct
management of DevOps. Connect with me on LinkedIn: il.linkedin.com/pub/shirly-ronen-harel/0/653/249
What
does DevOps have to do with the software testing mindset?
If
you ask people from the industry what DevOps is, you get many different and
interesting answers. And no wonder this is the case, since DevOps is still a
relatively young approach (2009), born out of the painful need to deliver fast, high-quality product in a
complex and rapidly changing environment. Personally, I have adopted the standpoint
that sees DevOps as an integrated approach, combining culture and tools aimed
to get things done, within complex fast moving environments, with an emphasis on
culture and mindset.
The
software testing practices and mindset have radically changed since the early
days of Agile and Lean. Today there is no doubt that the software testing
practices and mindset are an inseparable part of DevOps culture. There are people
who will argue that there is no difference between the Agile software testing
mindset and the DevOps culture mindset, and to an extent I can agree; nevertheless,
in this post I have decided to put a special spotlight on the software testing
mindset within the DevOps world, to try and understand this mindset, see where these
practices came from, how they have developed and how it is all connected to a
single culture.
So
I will divide my thoughts into 3 parts
Part
1 : Why culture is part of DevOps
So
let’s get started.
Part 1 : Why culture is part of DevOps
'Dev
ops', 'Mindset', 'Software Testing' - each of these three terms has an entire
world of practice and culture relating to it. Before taking them all three
together as one topic ('DevOps in the software testing mindset"), I would
like to explain each one separately, giving each its respective place.
Let’s
start with the mindset.
What
is a mindset?
Please take few minutes to watch this brilliant video, "Always #LikeAGirl".
Please take few minutes to watch this brilliant video, "Always #LikeAGirl".
"In my work as a
documentarian, I have witnessed the confidence crisis among girls and the
negative impact of stereotypes first-hand," said Lauren Greenfield,
filmmaker and director of the #LikeAGirl video. "When the words 'like a
girl' are used to mean something bad, it is profoundly disempowering. I am
proud to partner with Always to shed light on how this simple phrase can have a
significant and long-lasting impact on girls and women. I am excited to be a
part of the movement to redefine 'like a girl' into a positive
affirmation."
This video illustrates how one’s mindset and
preexisting set of assumptions can change behavior, self-esteem, the way we act
and what we do.
From Wikipedia : Mindset is defined in professional
literature as
…a set of assumptions, methods, or notations held by one or more people or groups of people that is so established that it creates a powerful incentive within these people or groups to continue to adopt or accept prior behaviors, choices, or tools . (http://en.wikipedia.org/wiki/Mindset)
…a set of assumptions, methods, or notations held by one or more people or groups of people that is so established that it creates a powerful incentive within these people or groups to continue to adopt or accept prior behaviors, choices, or tools . (http://en.wikipedia.org/wiki/Mindset)
Another extreme and terrifying example can be
seen in the following article, wherein an Indian minister argues that sometimes
rape is justified (http://www.newindianexpress.com/columns/t_j_s_george/In-India%E2%80%94And-In-No-Other-Country%E2%80%94Rape-is-Justified-By-Home-Ministers-MPs-Casteists.-It%E2%80%99s-Our-Shame/2014/07/27/article2350035.ece).
This is a mindset. A mindset that will allow certain
behaviors to perpetuate, a mindset that will lead to certain types of
legislation, maybe even to violence or death, it will determine the way in
which this society treats woman and human rights. It determines the way people
explain behavior or treat rape. Just by reading the comments attached to this
article one can witness this mindset and realize just how far-fetched it seems
when examined from another culture’s mindset.
The preexisting assumptions and beliefs that
are held by developers, testers, analysts, product managers or anyone else involved
in producing working software will dictate the way they believe they should or
should not work together. It will ”dictate" the tools they will choose to
use as well as their team members, methods and procedures.
In a world of rapidly changing environments,
where DevOps is a necessity, we will need to create the right mindset to enable
DevOps to answer these new environments’ needs: producing high-quality product
fast.
But what is DevOps?
My
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 definitions
and 10 people that don’t know the term DevOps.
He
then quotes: "David Herron, provided a simple definition, “(DevOps
is)…an integrated approach to software delivery that include process, tools,
technology, resources.”"
Why is that?
In a fast moving environment, where the customer
has very little patience to wait but quality is not negotiable, organizations
needs to find the way to move from A (the point of the idea) to B
(the point of delivery) as fast as they can with the highest quality.
Satisfying customers and at the same time reacting to rapid new demands at the
right speed, quality and with grace. It's no simple feat to accomplish.
Can we do it? Can we release changes to
customers every month? Week? Maybe every day? How can we make sure that quality
will not be compromised and that the changes are well integrated?
First we need to remove some barriers. The
barriers between Dev (that wants to change the code, add to it) and Ops (that
wants to keep everything stable). We need to break and adjust the boundaries between the developers and
the operations people, we want them to work together. We want to deliver
something with good quality, fast time to production and at the same time
create trust between those groups.
So we can add tools. We can add them everywhere, making sure
things are not breaking down on the way to production. Tools will surely do a
great deal of work in building awareness to 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 tools are not enough. They are
great but they are not enough. Why?
Because
we need to know where to employ these tools. What will be 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, to understand the
process and set the right process. Imagine
we are a chocolate factory, we can add cocoa but still not deliver chocolate
because the mixing machine is not working properly.
And tools, processes and barriers are only a small part
of it, why? Because we need the people to be part of it. 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 the people to give us feedback from every part of the
production line at any time needed. In this complex environment, things may come up, change and develop differently
all throughout the production line. Therefore we need the people to be aware,
to raise flags. We need the problems to be identified fast, as well as the solutions.
We can only do so when we have the right mindset. Only when they
are on board, know 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 will be limited in our ability to do so. In order to reach this state
all these people need to work together to create this culture of collaboration for
delivering high value fast. Without the right mindset we may still succeed, but
we still be generating much waste in the process and reach our goals slower
then we could have.
In
some extreme cases (and I have seen such) the entire organization will be stuck
due to lack of collaboration, to the point of not being 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.
Thanks for sharing this informative content , Great work
ReplyDeleteLeanpitch provides online training in Advanced Scrum Master during this lockdown period everyone can use it wisely.
Advanced Scrum Master Training