Sunday, November 04, 2012

A bizarre idea called "Software testing factory"

"Persistence in the face of a skeptical authority figure is priceless" - Seth Godin

Paul Holland (twitter handle @PaulHolland_TWN) shared this amazing video of Seth Godin on education systems. As I listened to Mr Godin talking about how present system of schools evolved from schools churning about labors for factories. Alas - even in our software testing "industry", we still need laborers as testers and companies take pride in setting up software testing factories. This post is about how bad and dangerous is the idea of "software testing factory"

According to Godin, about 100-150 years ago - schools used to be for a different purpose. He says - large-scale education was not developed to motivate kids or to create scholars. It was invented to churn out adults who worked well within the system. Scale was more important than quality, just as it was for most industrialists. A day in school started with "good morning" represented the notion of respect and obedience that was injected into students as a virtue. School was about teaching compliance, fitting in for the students into larger social context when pass out. Schools, according to Godin were established as public education to produce people who could work in factories - create set of people who can comply, fit-in and follow the orders of the supervisor.  

Emerging industrialization brought the focus on profitable factories - Godin points out. Factory owners thought "there aren't enough people, if we get more, we can pay them less - if we can pay less we can make more profits. When we put kids into factory that is called as school - we indoctrinate them into compliance.  Godin points out another key feature of factories - idea of interchangeable parts - when translated to schools - it meant producing people who are replaceable just as "standard part" of a machine.  When it comes to work - if you do more - there is always "ask" for little more. This is because - we are products of industrial age. The term productivity was brought the center of the things.

Key idea that I was attracted in this talk was about "Factory and how factory worked". I strongly believe that software and software testing work is "knowledge work" in contrast to "factory work". Here, thinking humans, in collaboration with humans assisted by computers create stuff that we call software that has changed and continues to change our life.  Wholesale lifting of idea of factory - thanks to strong association of "quality" to likes of toyota and promotion of idea of  "sick-sigma" (Cem Kaner used this phrase first, I think) - we have indoctrinated software people as factory workers.
I am troubled by this. When I ask people  - "does it what we deal in factory - machines/concrete things vs abstract ideas and machine instructions - matter? Should or is software produced like a machine in assembly line",  I get no clear response. Many simply think since our industry (Software) is immature and nascent - we must learn from engineering disciplines like manufacturing.

I am fine with learning from other disciplines as  I believe software testing is multi disciplinary - we constantly import ideas from multiple fields such as natural sciences, maths and statistics, behavioral economics, neuro sciences, cognitive psychology, philosophy, epistemology and list continues. I am against  wholesale and mind less import of ideas from the areas where we deal with a totally different type of things and we must exercise caution.

Coming back to factory - many IT services companies take pride in saying "we have successfully implemented software testing factory for a client" or "software testing is now commoditized" - what a shame !!! What happens in a software testing factory? There are dozens of "brain dead" people called software test engineers whose job is to produce test cases, bugs, test results, automation code (sorry popular word is "script"), metrics and tones of reports.  The intellectual pursuit of software testing that seeks to discover, investigate and report interesting and strange problems in software that requires - thinking, skeptic and open mind - has been reduced to "mindless" factory work. As a passionate tester, I would never want to associated with this deadly idea.

Am I biased as tester about my profession as some highly complex rocket science? Is my rational mind blocked or misdirected by confirmation bias? I think that is possible. If I am thinking about software testing as a business - like any other business say hotel, garments, manufacturing or engineering hardware - I would love the idea of factories. I would want to maximize my profits per dollar of investment. I would want to train cheap labour - teach them how to write test cases, report bugs and automate test scripts. I would then deploy them in "mass" to a client and charge handsome money in the name of testing. This business apparently works and it is perfectly legal, by and large ethical.

If I imagine myself as a tester in such factories (flip my context from factor owner to a factor worker or a supervisor) - I see a dark future for myself.  Just as factory works are expected to "comply" and follow a set pattern of work - when factor owner does not need me - I don't have any skills that I can trade outside factory. Over a period of brain dead work - I have lost my thinking and questioning mind. Unless I gain skills in becoming factory owner myself (that is a business development and management skill) - I must leave the factory quickly and move to an environment where I can grow my skills as tester  as a thinking individual.

In short - if you are managing software testing as a business - software testing factory is good for you. If you are a software tester working in a software factory - get out of the place fast or change the career to become factory owner or supervisor.

As a  tester in me roares - I wish for "End of compliance as an outcome - it is too boring for a curious, skeptic mind to simply fall in line".


Additional Notes: 
Following are few statements - that I liked that strikes chord with my belief in "software (testing)" as a knowledge work as opposed to factory work
  • Why we would not want to have our kids to figure it out and go do something interesting
  • Are we asking our kids to "connect dots" or "collect  dots"
  • We are good at measuring how many dots we collect - how many boxes are collected, how many facts memorized, 
  • we don't not teach kids how to connect the dots. You cannot teach connecting dots in dummies guide, text books. By putting kids in to situations where they can fail, experiment
  • Grades are an illusion - passion and insight are realities
  • Your work is more imp than your answer in congruence to answer key
  • "Fitting in" is a short term strategy to go no where.


Do not forget to read this pdf "stop stealing dreams" by Seth Godin.

18 comments:

Tudor said...

In many companies, software testing is still regarded as an unskilled job that any people without any school could perform, after minimal training - those are the companies that usually don't have any kind of automated testing and resort only to manual testing that follows some pre-written script.

Raymond Li said...

I'm a software tester. I've found that passing something off as testing is not difficult. However, good testing IS difficult. Getting the respect of the team for our testing efforts is difficult.

I've found that it's relatively straight-forward to know if we've done good testing. We know what we've done, and we know what we haven't done. We've thought about the software we're trying to test. We've considered different risks and different types of failure. We've thought about the issues a user might encounter.

What's frequently the case is that despite thinking through all these things and performing experiments to give us data to make quality assessments, the team does not care.

As much as it goes against my view, the primary value we bring to the team is made visible in the form of bugs. If this is true, then our testing quality will likely be measured in the form of bug count. I've read your post on how misleading this can be and totally agree. Generally, secondary value is in the form of useful insight into how the software may be doing something unexpected... which may or may not be a bug.

Assessing a tester's assessment is difficult. That's why test factories can be easily passed off as good testing. My hope is people that benefit from good testing know the difference. If they don't, it's our job to make that difference visible to the people that matter. If we can't bring visibility to our testing by making it visible, measurable and understandable to the people that matter, then our testing is invisible and that doesn't do anyone any good.

Rahul Gupta said...

An awesome post…yet again. The description of "Factory" that has plagued Software Testing field couldn't have been better. Most of the testers work for one or other company and all of these companies claim to higher the best, claim to follow the best testing processes and proudly say that We are Six-Sigma or CMM certified and we follow this and that. The list is endless. But aren't we forgetting that we are (most of us) part of same Factory mentality? In case of "Planning fallacy" we always come up with "Coherent Stories"...and we still remain "Optimist" that this new Agile/Scrum will be successful rather than being Realist and saying it in public that we have wasted time & money on so & so and we should stop following this so called Agile which is equally Fragile. I tried to call all these things in public..in front of senior management that make all the decisions….And you won’t be surprised to know that I was seen “hitting below the belt” where it hurts most. In my opinion, people don’t admit to mistakes (like “planning fallacy”, not taking “Outside View” etc) in public because if they do so, they will be seen as “negative” and against the majority which will do no good to them. Another reason is, in case people make their understanding public then who will be held responsible for “sunk cost”.
But out factory owners like optimist than Realist and life goes on. So here is a question for you Shrini, what are the possible ways to prove that "Software testing is a knowledge work"? Because unless we make people realize that “Testing is a knowledge work”, we won't get the respect for Software Testing that it deserves.

Aurelie said...

Great write up... We went from test centers of excellence in the early 2000s to testing factories. And at the same time, we know that exploratory testing, true manual testing finds 5-10x more problems than scripts. Yet, we are living in the illusion of quantity vs quality.

Always amazing to see these teams produce 1000s of test scripts, which all test the same narrow band of function!

Testing is a creative and fun job that requires practice, practice and more practice

Cathy said...

Good advices! Every software testing company should pay heed to effective advices such as the ones, you delivered.

Smruti Sen said...

Hello,
I just come through your blog while searching more about the software testing. Read your blog and love the way you have implemented the unique content about software testing and other testing related information. Thanks for sharing this and I will wait for your next updates. Keep it up!

Rahul Gupta said...

An awesome post…yet again. The description of "Factory" that has plagued Software Testing field couldn't have been better. Most of the testers work for one or other company and all of these companies claim to higher the best, claim to follow the best testing processes and proudly say that We are Six-Sigma or CMM certified and we follow this and that. The list is endless. But aren't we forgetting that we are (most of us) part of same Factory mentality? In case of "Planning fallacy" we always come up with "Coherent Stories"...and we still remain "Optimist" that this new Agile/Scrum will be successful rather than being Realist and saying it in public that we have wasted time & money on so & so and we should stop following this so called Agile which is equally Fragile. I tried to call all these things in public..in front of senior management that make all the decisions….And you won’t be surprised to know that I was seen “hitting below the belt” where it hurts most. In my opinion, people don’t admit to mistakes (like “planning fallacy”, not taking “Outside View” etc) in public because if they do so, they will be seen as “negative” and against the majority which will do no good to them. Another reason is, in case people make their understanding public then who will be held responsible for “sunk cost”.
But out factory owners like optimist than Realist and life goes on. So here is a question for you Shrini, what are the possible ways to prove that "Software testing is a knowledge work"? Because unless we make people realize that “Testing is a knowledge work”, we won't get the respect for Software Testing that it deserves.

Anonymous said...

Hi Shrini,
Obliged.
I am clueless.This post made me realize that, I am just another brain dead factory worker. :(

Will introspect and think on how shall I come out of the factory.

Thanks a lot!

John Joseph said...

Many companies ignore the significance of comprehensive software testing methods. But companies also integrate software testing as a core module of the software development lifecycle to save the overall project cost and time. Thanks for highlighting the distinct aspect of software testing.

Vinay said...

I am part of the Test Factory from last two year . I read this blog some time back in Dec 2012 after meeting Shrini and not had much to say as I was part of the factory and really felt very low. But today I am feeling really proud and thrilled as we are accessed for TMMI level 5 and hoping to make a history in Software Testing industry . It is all because of our Test Factory . Will keep updated soon on the results ...

Shrini Kulkarni said...

Vinay

It is interesting to know that you feel proud to be part of test factory. I seriously do not know if getting TMMI is so significant that you are willing to let go stigma that you initially felt.

I would look forward your further views of achievement of TMMI.

Shrini

Vijay said...

Hi, Very interesting and thought provoking take on Test Factory model. Testing is a Knowledge work and requires lot of critical reasoning, skills and experience to add real "value" to the project.But in many cases customers and IT services providers misunderstand and oversimplify it.

sanam arzoo said...

business software supply is supposed for firms that produces computer code that twin licensing does not work. These firms additionally has to realize some way to induce cash to purchase full time developers.I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon.A fantastic presentation. Very open and informative.You have beautifully presented your thought in this blog post.

Sai Anne said...

Hey Shrini:

This is for the first time i had gone through your page and it looks pretty interesting with bundle of knowledge.

Hope you will reach new heights ahead.. All the Very Best..

Thanks:
Sai Anne

olivia said...

Great write up... we have a tendency to went from take a look at centers of excellence within the early 2000s to testing factories. And at a similar time, we all know that preliminary testing, true manual testing finds 5-10x additional issues than scripts.

mercy said...

I believe you Thinking testers should be authorized and given the liberty to cherish essential and out-of-the-box testing. terribly nice post. QA testing needs ton of experience. many thanks for sharing this post.

Steve Hawks said...

You have stated definite points about the technology that is discussed above. The content published here derives a valuable inspiration to technology geeks like me. Moreover you are running a great blog. Many thanks for sharing this in here.

Salesforce Training
Salesforce training in chennai
Salesforce training institutes in chennai

Amirtha rao said...


I want to shine in a software testing industry, so I am looking the information related to software testing. Your blog really have some more useful information about testing. Keep your blog with testing updates…
Software Testing Training in Chennai