Friday, May 22, 2015

The Agile Testing Mindset in the DevOps World. Part 1 : Why culture is part of DevOps?

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:

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". 

"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 . (
Another extreme and terrifying example can be seen in the following article, wherein an Indian minister argues that sometimes rape is justified (

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?

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.

Thursday, May 21, 2015

It's Not Just Standing Up -The Daily Standup Meeting

Wednesday, May 20, 2015

Towards an Effective Sprint Review Meeting

It's not that easy to have a good sprint demo. It's also sometimes overlooked and not appreciated for its value.  The sprint demo should be the most exciting part of Scrum. It’s when the team gets to show everyone all the value they’re delivering. That’s worth investing a little time to do well. Here's 'why', 'when' ,and 'how'.

Friday, May 15, 2015

It's a booster for coaching results!

Change (and adapting to it) needs to become an ingrained habit and this is a simple way to do so with any coaching technique.

Coaching is becoming widely acknowledged and people realize just how effective it can be.
Coaches use various types of tools and methods for life coaching, personal coaching, career coaching and many more…after all, Coaching is about getting the very best out of someone and enabling them to make decisions that will improve their life.

This book is a tool, a booster to use with all of these different coaching methods. It's  a booster for coaching results, to allow every coach in every  field and level of coaching, to take the coaching to a new level, suitable for dealing with a rapidly changing environment.

The world around us is changing, and fast. It is becoming more and more complicated and the pace of technological change is one of the highest in recorded history. Naturally, this new reality creates new challenges. The goals that we want to achieve, for example, can be ever-changing – and therefore seem unachievable. 
To face these challenges, we need strategies that will help us regain a feeling of control over our goals, and help us reach them. We need ideas that will enable us grow and flourish, while at the same time help us face the uncertainties of change. 
The need to develop new strategies and ideas, and adapt to changes, is at the heart of many coaching processes. Why? Because as coaches, we recognize our coachees' universal need to deal with change. They need to understand what needs to be changed, and they need to learn how to both preserve their newfound behavior so that it doesn't dissipate within a week or two, and how to easily change again when needed. 
Based on Lean and Agile methods, our Coaching Booster teaches people how to see change as a habit, and embrace change as a way of life. This book will help people leave their comfort zone, turn dealing with new changes into a habit, and help them change our their habits effectively and quickly, all while demonstrating how it can be repeated in the future.
Lean and Agile methods boost productivity, promote innovation and have been tested (and proven) in real-life situations. They have achieved better results than any other method so far. The Booster also introduces a framework that helps you coach easier, working together with your coachees towards the goals they have developed themselves. 
The Booster is written to be simple and intuitive, showing you how to simplify the complex environment of change in which we live. This makes it easier for us to set goals and establish a vision, as well as cope with changes. 
It's not that the questions we ask, as coaches, are not suitable anymore; it's not that the goals and value we help the customer realize have lost their relevance; it’s the way we manage the flow that leads to achieving these goals that has become unsuitable for rapidly changing environments.
Anyone can use it, anyone can take the framework suggested, follow a few simple principles and apply it to any kind of coaching method.
This book was written out of our experience as Agile coaches, dealing with rapidly changing environments. All we did is merely collect these amazing tools and present them here for your use.
Enjoy :)