Time and time again I bump into opinions, quotes, tweets and comments saying directly or indirectly testers are responsible for quality of software products. People who think so claim software error(s) that reach end user is testers’ fault and testers are the ones who can save the user. I strongly disagree with that.
Saying testers are (solely) responsible for software quality is same as saying a nurse is responsible for patient’s health before and after a sloppy operation.
I think this situation comes from the often used job title QA (Quality Assurance) and it’s variances: QA Engineer, QA tester, Quality Engineer, Quality Tester. Key word is assurance.
I especially like job title Quality Engineer as if there is Inferior or Poor-Quality Engineer. Quality Tester is a good one too, does he test quality or is it implied that there are Inferior Testers too? If job title is simply “tester” how did we end up tying it up to quality at all?
To some this assurance means simple bug hunting. In some radical examples developer slips through unfinished work on purpose hoping corner cases won’t be noted during business acceptance and won’t be encountered in production. Development process turns into hide and seek, cat and mouse game.
Such people think that testers need to test more to improve software quality. If that would be true than it would be also true that you can lose weight by weighing yourself more.
— Alanna Mooney (@alannamooney) October 1, 2015
To others assurance means having a veto right for release. In 8.5 years in IT I never encountered testers who had veto right. I’ve seen testers (and truth be told developers) scream to stop release, but management and marketing thought differently. I’ve seen people and team quit companies because of that, but still never seen a tester who vetoed a release.
Some think that testers should chase developers and encourage them to fix bugs. I believe it comes from pre-agile days when Project Manager (PM) would push developers to implement more and more (buggy) features and testers would need to buy/win/please some time from developers to fix some bug. Project Managers were usually evaluated on scope delivered on time, when testers were blamed for all the bug slipped to production. Been there, done that! 😦
Project based development is now almost extinct and most teams run some sort of agile process. Though, it seems developers are now evaluated on delivering scope on time and tester are evaluated for quality of delivery. That was the case at my previous job in an agile/scrum company two years ago.
While it is pretty obvious to most testers (and all those job titles testers have), it is, sadly, not so obvious to other members of software development process. I’d like to refute this opinion by what I think is a good, but lengthy (and sometimes leaky) analogy.
if nurses were testers
Imagine that on a typical Wednesday, several days late from agreed time, a nurse would be given a patient to check his health and be responsible that he gets well and does not die.
- In best case scenario, there would be a paper describing patients problem. More commonly, there will be a post-it note saying “had pain, removed object, make sure area around the scar is OK”
- Nurse will have to check diagnosis given on arrival and if it really meets symptoms patient gave
- Patient still would be in severe pain of appendicitis
- Nurse will find out that pain described is indeed appendicitis, but, it seems, surgeon understood the doctor otherwise and so she removed a kidney
- Nurse would call a surgeon, who would stop operating her next patient, and switch back to this patient.
- Together, doctor, surgeon and nurse would argue that the pain on the right is not only right kidney, but most likely appendicitis, that you need to ask questions and check in case of questions
- Surgeon would blame the patient for not speaking up, the doctor for not being specific enough and the whole system for being imperfect
- Surgeon would then make another operation and nurse would repeat her checks
- Surgeon will go back to her second, work-in-progress, patient to spend some hours trying to remember what was she doing there or procrastinate because it’s 1 hour until end of workday anyway
- Nurse’s check would find that a small instrument was left in patient’s belly
- Surgeon would quickly fix it
- Nurse, under time pressure, would check that patient still has pulse and proclaim he would be ready to be released this Thursday with all the other healthy patients on so called “release day”
In a very bad clinic nurse would have to convince a surgeon to “fix” the patient with an instrument in his guts, because Chief of Medicine explicitly wants surgeons working with new patients only and no “fixes” as those are wasteful, zero ROI activity that holds beds occupied for too long. If nurse doesn’t succeed, she gets the blame.
It might happen that this healthy patient waiting to be released is accidentally injured by another surgeon making a very intensive operation on nearby patient and this remains unnoticed until patient reaches home. Nurse gets the blame.
When released home, patient collapses right in the doors of the hospital. It turns out he had some serious infection. Surgeon accidentally cut a gut when removing forgotten instrument, but was distracted and forgot to address it. Now infection spreaded from there. Surgeon then would question if nurse knows anything about medicine, human internals, if she did cut the patient open to check any abnormalities and if she studied medicine at all or not? No one is convinced about nurse’s time pressure talk. Despite being clearly a surgeon’s error nurse gets all the blame she didn’t check the patient well enough.
It might happen that Chief of Medicine or family members want patient home right after the operation and it is assumed nurse should do everything to stop it. Surgeon says that he doesn’t care. Patient is pushed home, collapses and nurse gets the blame.
Nurse gets the blame. Nurse gets the blame. Nurse gets the blame.
I hope you understand the analogy, but in case not, then:
- nurse = tester
- doctor = business analyst, product owner
- surgeon = developer
- patient = client
- health = product
- health condition = product quality
- getting out of hospital = release
- Chief of Medicine = release manager, CTO, CEO etc
- family members = stakeholders
This analogy is not perfect in a sense that nurse indeed might have some influence on patient’s health as well as some so called Software Engineers in Test can fix/improve production code. What do you think on this topic?
Follow to part 2 where I included some feedback and elaborate on same analogy how we work on wrong things trying to improve quality and improving testing in particular.
Thank you to Andrii Dzynia for help reading and supporting on this topic.