Shifting left, shifting right - where to shift next? - part 3

So where to shift now that testers are part of reviewing the business cases, participate in creation of user stories and backlog grooming, have the ability to use monitoring in different environments, and everything in between, meaning participate in different parts of the software development and delivery life cycle?

Well, I think that we could benefit a lot from trying to look at where we generate mistakes. If we sum up the development life cycle, regardless of how often you release, or whether you follow a  waterfall, agile, or devops approach, it all starts with some ideas, business cases, requirements on a higher level, before going into the process of refining the requirements, developing, testing and releasing the changes to the end-users. We previously shifted left and right trying to mitigate and correct issues that occur along the way in the process, without looking into where these mistakes originated.

All of the ideas or requirements start in someones mind, with all the baggage that follow along, meaning all your assumptions, your views, interpretations and understandings (or misunderstandings) of the world, and all subconscious biases.
Every software defect ever created, started life inside some person’s mind [Brown]

"Think about that for a moment. We spend our whole careers looking for defects, but we never once look for them in the place where they are generated... 
 ...we end up searching for them on web pages and within lines of code. If we look at all of the major advances in software testing - structured testing, boundary value analysis, black box and white box testing, test coverage, et cetera – not one of these advances is concerned with what is happening inside our minds, where all defects begin their life." [Brown]

Back to cognitive biases
Cognitive science has identified a whole series of patterns in how we make mistakes, and labeled them as cognitive biases. Most of the mistakes that we make are just a product of how our minds work. Even there are no official overview or index of all the 200+ cognitive biases identified, here is a short list of some cognitive biases that can affect our decisions:


We can benefit quite a lot just by being aware of these in the first place, not only testers but the entire software development team, so that we are able to recognize biases when they occur in different parts of the development life cycle. However, one thing is certain, they will always be there, some easily identified, other perhaps more subtle, but it will be up to each of us to recognize them, point them out and make the rest of the team aware of them. Think about the biases when discussing and contributing in other tasks throughout the development life cycle. Sometimes it could be worth to consider, "how would I explain this to a 5-year old", in order to mitigate for some hidden assumptions, but one should of course use this with caution.

Where to shift next, shifting inwards?
Perhaps this is shifting even more left, or perhaps shifting inwards? What ever we will end up labeling it, this is still something that software development and engineering practices have not fully embraced and incorporated in our daily work. Going forward I will try to experiment a bit with raising the awareness of the cognitive biases in different arenas, and try to capture if there are any improvements on the general development life cycle, and quality when the knowledge about these biases are more familiar. How to do this, and measure this is yet to be figured out. Even though according to [Mohanani etal] raising awareness that our reasoning is biased has no effect on mitigating cognitive biases, I am willing to give it a try and conclude for my self in the given environments.

If  you missed the first and second part, you can find them here:

Resources
[Brown] - Brown, Andrew - Why We Make Mistakes - eBook - https://huddle.eurostarsoftwaretesting.com/resources/people-skills/eurostar-best-paper-2017-make-mistakes-human-error-cognitive-biases/
[Picture 1] - http://www.businessinsider.com/cognitive-biases-that-affect-decisions-2015-8
[Mohanani etal] - https://pdfs.semanticscholar.org/065f/6343cb8a0c740efe43217b0e8965d3fea335.pdf

PS. some more links if you are interested in exploring more about cognitive biases in software development

Comments

Popular posts from this blog

How do I stay "up to date" on software testing related stuff?

Shifting left, shifting right - where to shift next? - part 2

Does the language we speak shape the way we think?