Can Testers and Programmers be friends?

Today is Valentine’s Day and as they say “the love is in the air”, but why this air never reaches the testers and programmers who are in the same team. Can we ever be friends?

The software testing guru (a.k.a. in Urdu/Hindi as “Ustaadoon Kay Ustaad” ) James Bach in one of his lectures on software testing, mentions that we as Testers don’t hate Programmers. We actually love them, just like a loving wife would let her husband know of a stain on his shirt before he leaves the home to avoid him from any embarrassment.


(the original photo is here: )

But why Programmers never perceive a bug that way? And why Testers joke about them in all of their private discussions? This is really strange that the two persons who were supposed to solve the problem together and scale up the Quality of the release, are fighting with each other.

If you think that we can turn things around and can be friends, here are some suggestions:

  • Try to understand each other

The only problem is that both Programmers and Testers have a different point of view. That difference is actually healthy as both of them wear different hats and come up with suggestions on how to improve things.

So if you are a Tester and see a weird issue next time, rather than saying “that damn lazy programmer” you can go to that person and try to understand their point of view.  And if you are a Programmer and see a silly bug next time, rather than saying “that stupid tester” you can go to that person and understand their point of view. Consider inviting Testers to review your design and consider inviting Programmers to review your test cases.

  • Appreciate each others work

Both Testers and Programmers spend significant amount of time and energy improving the software. The intent of each one is to build and ship a quality release that keeps their company successful.

So if you are a Tester, in your next test report or a review meeting don’t just mention areas that are not working but also mention areas that are solid. Do appreciate programmers if they fix a big chunk of bugs in short periods of time. That will result in more productivity. And if you are a Programmer, when you see a real killer issue reported by the tester don’t yell at that person rather thanks for bringing this up before the release. Remember that person saved you from the public embarrassment of a shirt with stain. Also avoid saying “that’s not a bug” and rather say “Thanks for reporting a bug”.

In one of first trainings we conduct in our office to new hires in testing team says “Programmers are friends, not foes”. So building that culture from both sides really helps.

  • Highlight the problem not the person

Mentioning names and using nouns like I vs. you in any bug reports, meetings or conversations can take an issue to the personal levels. No one is talking bad about a person but the real contention is the issue.

So if you are a Tester, in your next bug report rather than saying “the issue is reproducing on my box” mention that “on a box that has windows 7 64 bit, the issue is reproducible”. And if you are a Programmer, in your next comments rather than saying “you should use the correct data set as input” mention that “the issue is related to the bad data input”.

I’m not alone who is taking the white flag to the other camp, there are testers who are even writing love letters to the programmers 🙂 And there is nice discussion on StackExchange.

So fellows, do you think that “in greater interest of Software Quality” we should be friends?


Tags: ,

24 responses to “Can Testers and Programmers be friends?”

  1. Ather Imran says :

    Good one. One is surprised how many issues in life – both personal and professional – are resolved using ’empathy’ as the first line of defense. That what really “Try to understand each other is”. Empathy! An organization with empathy is like a relationship without love (I had to mention love since its a valentine day! -:)

    I attribute the differences between programmers and testers as always taking a narrow view of things. Its failure to look at the thing from an organizational perspective. They are different in terms of skills and focus of work and thats how it should be – this is the fundamental principle of “Specialization of Labor” on which organizations are built. However, while everyone can keep their focus, the objective is the same – success of the organization.

    I give the analogy of a car with myriad of parts. Engine, fuel system, gear system, steering, wheels, speed controller. Every part has its specific function and excels in it. But they all contribute to make the car run efficiently and serve its purpose. Testers and Programmers playing the blame game is like fuel tank fighting with the wheels.

    Good read!


  2. Taimur says :

    Nice …. the core point is not only to understand each other … but just to understand both have same goals to achieve. If this understanding is mutually adopted each gear of the organization works perfect. If this lieu the senior management should play the role of lubricants to reduce friction between gears of their organization.

    really nice jotting of views.


  3. operationtimeout says :

    I have been preaching testers that your relationship with developers is like a doctor to a patient. You (testers) are the doctors and Developers are the patients. A Doctor has to have patience while dealing with the patients because a patient can be aggressive, abusive (sometimes), irritating and insulting etc., but you have to be calm and tackle the situations because that is part of your job. Have you ever seen a doctor losing his patience? Very rarely right? Because he knows that he is talking to a patient not a normal one. If you keep this in mind your life would be much easier.

    With all due respect, developer is a patient because his code has problems, sometimes serious problems and you have to identify those. You have to listen to him, understand his psychology, and understand a better way to communicate that your work has problems.

    I understand and agree with what you’ve mentioned above for establishing a better relationship with developers but they can’t be friends and I would say they shouldn’t be friends. They have to have good terms but not necessarily be friends.


    • majd says :

      Thanks for the comments. I respect your opinion but do not agree.

      Saying Programmers as patients is a bit harsh in my opinion. Programmers, at least the ones I know, never write bad code intentionally and miss out things for not being Quality conscious. We as friends can bring that perspective into the code and thus making the solution more successful.


  4. Qudoos says :

    Nice post. I do sense a bit of frustration between the relationship. 🙂 There are so many factors that come to mind. Team dynamics is complex. This is not just programmers vs. testers, it happens almost every place where two teams have to do something together. Just treating each other with respect and not crossing the line is all it should take to keep moving forward. Check out the form, storm, norm and perform stages of dynamic teams. ( If you stick together you are bound to succeed. You dont want to be in the “form” stage too often as “storm” is natural.

    Another thing worth mentioning is to practice “being the worst”. This comes from a great book “Apprenticeship Patterns” not just good for programmers but folks from every field.

    Liked by 1 person

  5. Waseem says :

    The most valuable admission is that of testers being the loving wife in this software relationship :). If only both sides realize that, things might be a lot smoother.


  6. Brian Heys says :

    I think you suggestion to highlight the problem not the person is a very valid one. A lot of the silo mentality that comes from programmers and testers being in two different camps is due to the blame culture that is prevalent in so many organisations today.

    Good post. Some great observations.


    • majd says :

      Thanks Brian and I’m glad that you liked it. In one of the team I worked, the team used to say ‘it’s an issue in Joe’s code or John’s code’. We changed it to say ‘it’s an issue in import feature or consolidate feature’ and that eased the tension.


  7. Adeel says :

    Very nice Majd. As I have also experienced this in my team developer as a friend.
    When developer and tester are on same table can take product in a better way as both knows what is required in there areas. I am lucky to work in an organization where developer are appreciating not irritating.


  8. ffahad61 says :

    be diplomatic never let developer think that you are reporting bug to insult him or question his skill never say “yaar bara bug nikala hain report kardeya daikh laina ” instead be diplomatic and say this ” yaar thora sa bug agaye hain baki sub set hai agar samajna mai koi problem ayee to mujhee bulaa laina i will help you ” . its a must skill for tester to be diplomatic and cool as cucumber 😛


  9. Efe says :

    Nice one.

    Although i think the issue sometimes is not just about understanding themselves and all that, sometimes i think the developers after they have put in much effort to do a “perfect” coding they do not expect testers to find bugs and when testers find bugs they find it difficult to accept them.

    However, I believe the items listed above helps a lot.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.