THis post will talk about why a developer should have a testing mindset as well as describe some of the benefits of it.
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
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 Mindset | Growth Mindset |
---|---|
Either I’m good at it or I’m not | I can learn to do anything I want |
That’s just who I am. I can’t change it | I’m a constantly evolving work in progress |
If you have to work hard, you don’t have the ability | The more you challenge yourself, the smarter you become |
If I don’t try, then I won’t fail | I only fail when I stop trying |
That job position is totally out of my league | That job position looks challenging. Let me apply for it |
From https://www.verywellmind.com/what-is-a-mindset-2795025
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.
Lets say some elements of a testers mindset are:
How can this help a developer become better……..
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
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.
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.
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.
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: