I was recently having a discussion with a developer friend of mine about why he should recruit testers (since they currently don’t). It bothers me that the end of the conversation didn’t end “Dan, you’re absolutely right, I’m totally getting me some of them!”.
Explaining testing well is no easy task. What if the company is doing well with their current quality level?
The problem here is that testers don’t have a largely tangible output. We provide a service. We deal in information, and our net output could be described as confidence.
What if we made the analogy between testing and a car wash? My friend has developers doing unit tests and sanity checks on the end-to-end process, so he’s already at Level 2. It’s 50p more than Level 1, and probably £2 more than not washing his car. Adding testers dials you up to Level 8. The car wash is much more thorough. There’s some premium soaping and scrubbing that’s happening at the same time as the Level 2 stuff. There’s a bunch of stuff happening that you were never going to get at Level 2 that takes a little longer. Waxing, buffing and the like. Totally premium, and totally costs a few quid more.
So what’s the result?
* you know your car is cleaner as a result of getting Level 8, or
* you’re more confident that dirt that was probably removed by Level 2 is definitely gone now
Don’t fool yourself. Level 8 doesn’t mean sterile. But you certainly gave it your best try.
Testers don’t actually remove issues. I also think this analogy is imperfect in that it draws a parallel between what’s probably a perfectly good wash and developers checking their own code, which I feel understates the importance of testing. All the same, I might try this on my developer friend and see if it helps.
Be careful: clean cars are addictive. Once you’ve sat in something cleaned at Level 8, you’ll wonder quite how good Level 9 could be!