Tuesday, June 10, 2014

The dillusion of Polyskilling

Quick question: have you had surgery lately? Did you do it yourself or did you have someone else do it?

Whenever I ask this question I get a lot of chuckles. Of course you didn't do it yourself. Nobody does their own surgery. But why not? There are lots of reasons why not. The answers I get usually boil down to 3 things:

  1. Education - a doctor has over 10 years of education on how to do the surgery. You have none.
  2. Experience - a doctor hopefully has done 100's of these types of surgeries. You have done zero. 
  3. Tools - a doctor has a well-equipped office or hospital operating room with all the latest tools. You have none of these in your garage or basement.
But what about fixing your car? Or mowing your lawn? There might be people reading this blog who regularly maintain their cars and from March through November I cut my lawn nearly every week.

Software development can be a lot like doing surgery needing highly experienced, highly trained people. Have you ever tried to build an e-commerce web portal with millions of items for sale globally? it's pretty complex. But some aspects of software development can also be like fixing your car or mowing your lawn: best if done by professionals but with some minimal training, experience, and the right tools anyone can do it. I do a lot of ruby/cucumber training. Within 15 minutes I can teach anyone how to write a Gherkin script. Given an hour I can even have them writing pretty good Gherkin scripts. They are fairly simplistic.

Where I see many companies failing is when they assume everything is as simple as writing a Gherkin script, when in fact most tasks are much more like surgery and require a highly trained, highly experienced doctor. I call this polyskilling: the delusion that anyone on a team can do everyone else's tasks with little to no training.

As a tester I am directly in the crosshairs of this belief since anyone can write a Gherkin script. And testing is only about writing and executing scripts, right? WRONG!!!!

I am not going to be so bold and state that Testing is on par with Development; with both being as difficult as brain surgery. But I would go so far to say it is at least as difficult as working on a car. You might not have to know the details of the surgery, but as a tester you MUST have a good understanding of what is going on so when something does go wrong you can point it out. This takes some level of technical understanding about the app being built, and it takes some level of understanding of how to test.

This is where polyskilling can kill a team. Without training, coaching, years of experience, and in some cases even specialized testing tools, defects will slip through the cracks. You can't just throw a Gherkin script at a problem and hope it catches everything that could potentially go wrong. A good tester understands risk and builds their testing stack accordingly; a good tester asks the developers the right questions about the system under test to determine where the tests are needed; a good tester can look at a system and know the best tools to pull out of their tool belt to test the system. And this knowledge is something only an experienced tester can bring to the table.

No comments:

Post a Comment