The Perfect Customer25 Mar 2008
I enjoyed reading Keith Braithwaite's post on tests and gauges. I like the way Keith uses the the metaphor of gauges in metalwork to describe Fit style tests:
You don't work anything out from a gauge. What you do is apply it to see if the workpiece is within tolerance or not. And then you trim off, or build a bit up, or bend it a bit more, or whatever, a re-apply the gauge. And repeat.
I agree with Keith.
The fit tests I write are business facing and for the benefit of the business customer.
On a recent project our customer got really enthusiastic about our fit tests and got extremely upset when I implemented a story without a fit test. He refused to let the system go live until we had the fit test in place.
The story in question was very technical and involved sending a particular xml message to an external system. We just couldn't work out what a fit test would look like for this type of requirement. Placing the expected xml message, with all it's gory detail, in the fit test wouldn't have been helpful as it's a technical artefact and of no interest to the business. We could not work out what to do. The customer was not around to discuss it, so I just went ahead and implemented the story (very naughty!).
The customer was using the fit tests to show him what the system was doing. In this case he wanted to be sure that we were sending the correct product information in the xml message. To resolve the issue, I suggested that we have a Fit test that shows how the product attributes get mapped onto the xml message using xpath; although I still thought this was too technical for a business user.
I gave the customer a couple of links to explain what xpath was so he could explore and decide if this was a good solution for him. To my amazement, he was delighted with xpath (I now know who to turn to when I have an problem with xpath) and filled in the fit test.
The interesting bit for me (and why I'm posting it on the blog) is that as soon as he knew what the message looked like and how it was structured, he realised that it did not really support the business - we were sending information that was stale and should have been supplied by another system. He was also sceptical about the speed the external team could add new products due to the complex nature of the xml.
Most agile people I tell this story to think we have the "perfect customer"!