Developers having a testers mindset


Published on September 23, 2024 by David Wardlaw

Testing Software Development Quality

6 min READ

THis post will talk about why a developer should have a testing mindset as well as describe some of the benefits of it.

So what is a mindset?

People say that developers cannot test because they don’t have a testers mindset. I have heard this before - “You need a tester because they have a testers mindset” - well obviously, they wouldn’t be very good testers if they had any other mindset. Now I’m not sure why people think this, maybe it’s a self-preservation thing because if developers test then you don’t need testers right? Correct!!! But you will need someone to coach and mentor the developers in quality and testing, so an ideal role for someone that used to be a tester.

Now mindset is defined as:

A mindset refers to an established set of attitudes of a person or group concerning culture, values, philosophy, frame of reference, outlook, or disposition. It may also arise from a person’s worldview or beliefs about the meaning of life.

From https://en.wikipedia.org/wiki/Mindset

Different Types of Mindsets

Now there are 2 common mindsets that you may have heard of. These are Fixed and Growth.

These are defined as:

Someone with a growth mindset views intelligence, abilities, and talents as learnable and capable of improvement through effort. On the other hand, someone with a fixed mindset views those same traits as inherently stable and unchangeable over time

From https://online.hbs.edu/blog/post/growth-mindset-vs-fixed-mindset

What does that look like? Well below are some examples:

Fixed MindsetGrowth Mindset
Either I’m good at it or I’m notI can learn to do anything I want
That’s just who I am. I can’t change itI’m a constantly evolving work in progress
If you have to work hard, you don’t have the abilityThe more you challenge yourself, the smarter you become
If I don’t try, then I won’t failI only fail when I stop trying
That job position is totally out of my leagueThat job position looks challenging. Let me apply for it

From https://www.verywellmind.com/what-is-a-mindset-2795025

Adversity

Now think of all the great things that have been achieved by those facing adversity. Sport has great examples of people that have achieved incredible things in the face of adversity. If these people had a fixed mindset they never would have achieved what they did.

Michael Jordan is seen as the greatest basketball player in the history of the game. However it was not all smooth sailing and he was cut from his high school basketball team. That did not stop him though and because he had a growth mindset he overcame that set-back and went on to become one of the greatest basketball players ever. Now if he had the fixed mindset then who knows what he would have become. Now not everyone is going to have a growth mindset and become one of the greatest athletes of all time. However, with a growth mind set change is possible.

Now lets get back to how this relates to software development and testing…..

When I hear that “developers cant test because they don’t have the testing mindset” my blood boils. The best testers I have met have been developers and these developers have the testing mindset as well as a developers one. The reason why they have both? Well the reason is because they have a growth mindset where they have improved their testing skills and knowledge through effort and work. Yes testers have different experience and have learnt different things. This is because they have taken the testers career rather than a developers, but developers skills can be leant. Would we switch it around and say that testers cannot be developers because they don’t have the developers mindset? Of course we wouldn’t so why do we say it about developers and testing? Yes to get a developers mindset as a tester tales effort and work but it can be done and it can also be done by a developer to get a testers mindset. If a developer gets a testers mindset they can become a much better developer. I would take a not so good developer with testing skills than an exceptional developer without a testing mindset. Remember testing is not just testing to see whether the functionality woks its about asking questions about the feature, thinking about it from a users perspective as well as being involved throughout the SDLC.

So how does a developer be a better developer with a testing mindset?

Lets say some elements of a testers mindset are:

  • Empathy
  • Critical thinking
  • Exploratory behaviour

How can this help a developer become better……..

Empathy

When developing changes the developer can think how a user would feel when using the feature. They can use this to maybe change the flow of a feature or how a user performs a specific task. This will help build quality in at an earlier stage

Critical Thinking

A developer can use the critical thinking skills to question, analyse, interpret and evaluate the code that they are modifying when writing a new feature. This may help spot bugs and lead to refactoring.

Exploratory Behaviour

When testing their change the developer can perform more exploratory type testing to help find issues or highlight things that need to be bought to the product owner or designer.

Why should developers have testing mindsets?

In short it can negate the need for as many testers or even for a tester at all. What does this do? Its help increase the speed of feedback loops which in turn enables teams to get their changes out quicker to the customer. If you still need testers it may be that you can move them to specialist areas - such as performance and security. Or a new role could be created called quality coach/quality lead that helps not just one team but multiple teams in their quality and testing journey.

How can a developer gain a testers mindset?

Now there are things that you can do to help a developer get that testing mindset. These are things that make the testing easier but also enable a developer to learn. These are things such as:

  • Get them involved throughout the SDLC for features
  • Having a quality lead or coach to help them when they need it
  • Give them the autonomy to try things from a testing perspective.
  • Provide resources and material to help grow their testing knowledge