Monday 13 September 2010

Professional Washer-Upper

A recent discussion on the Yahoo Agile Testing discussion group covered the subject of whether a separate testing role was still required in development teams practising TDD/BDD. Here I aim to use an example from a very different field to examine the benefits of both generalising specialists and having individuals devoted to even basic roles.

Professional Washer-upper

When I was at high school I had a weekend job washing dishes at a busy local restaurant. The job involved a number of responsibilities

  • operating the dishwashers for the crockery

  • Keeping the kithchen stocked with crockery to ensure orders could go out

  • Manually supporting the chefs in washing pans and cookware to meet demand

  • Operatng the glass washer and keeping the bar stocked with glasses to meet demand

I also, when required, could step in for others to help with their tasks
  • serve behind the bar (barman)

  • serve food (server)

  • clear tables (server)

  • make desserts (server)

  • cook starters (sous chef)

Similarly, other members could step in and cover each others jobs when required e.g. servers worked the bar early in the evening in the rush before most people were seated. On midweek nights, the restaurant was quieter and my tasks were shared among the servers and chefs. On very busy nights (e.g. New Year) we drafted people in to help with my tasks so that I could take on of the workloads of others. I had a number of relevant skills and could operate in a number of roles, yet if you asked anyone in the restaurant (including me), my job wash Washer-upper as this was my primary role and provided sufficient work to merit a devoted individual.

The restaurant could have adopted the approach of not having a washer-upper. The work would still have needed doing, but could have been fulfilled by other members of the team (e.g. every server washing all trays he/she cleared, all chefs washing their own pans). I was, however, very good at washing up. I knew what needed to be done to meet the needs of the rest of the team and how often. I knew the environment and had optimised my approach within it to the extent that it took 3 servers to cover when I was called off to other jobs. Given that someone was constantly required to be washing up, it made sense to have an individual devoted to that job who was better at it than the other team members.

The multi-skilled team

I think this example is a great case of a multi-skilled team of what Scott W Ambler calls Generalising Specialists or as Jurgen Appelo calls them T-shaped people. For low workload situations the number of individuals is reduced and the coverage of roles distributed across them. For more intensive workloads the benefits of having generalising specialists become apparent. Each individual has a key area of responsibility, however has the knowledge to step in and cover other roles as the pressures and bottlenecks ebb-and flow through the course of an iteration (sitting).

The benefits of devoted attention

Much as the many aspects of the washer-upper's position, the banner of Software Tester for the purposes of discussions such as the recent one on the Yahoo Agile Testing group, can be viewed as a matrix of roles and responibilities (which I feel is growing, not shrinking, but that's another topic). Some teams will operate by sharing these roles and responsibilities across the team without individuals assigned to the testing position, and will be successful. The testing roles, however, will still be present and need to be filled.

The question posted recently was whether TDD or ATDD/BDD will render the traditional testing role redundant. I don't think so. If a job as simple as the washer-upper can demonstrate the benefits of having skilled individuals concentrating on maximising effectiveness in an area of responsibility, then this benefit is only going to be amplified as the difficulty and complexity of the role increases. Having individuals with specific testing expertise whose primary concern is on this subject area has certainly payed dividends in my organisation, where the effectiveness and scale of testing performed (and consequentially knowledge and confidence) are far greater now than were experienced when reliance was far more on developer led testing.

As to whether it is sufficient for a tester to have only testing skills and responsibilities, that is another question for another post.

Copyright (c) Adam Knight 2009-2010

Whatsapp Button works on Mobile Device only

Start typing and press Enter to search