The Agile Warsaw meeting yesterday was, as usual, interesting but today’s news on the radio reminded me about one more issue missing from Paweł Rzymkiewicz’s talk about ATDD (Acceptance Test Driven Development). He said that the most important aspect addressed by adopting it was a much better communication between the Product Owner and the team. Good communication is, indeed, absolutely crucial but I think writing acceptance tests can mitigate an even more fundamental problem.
So, the news on the radio was that NIK (Polish Supreme Chamber of Control) was investigating the operation of an electronic toll charging system. It consists of a small transponder in a car and a number of toll gates encroaching roads. The idea is that you get billed automatically as you cruise underneath these gates at your regular speed—pretty nice compared to the toll gates on highways. To my surprise the problem under investigation was that if the system could not bill you automatically every gate you pass would trigger an automatic penalty ticket so the charges kept building up to, reportedly, tens of thousands of zlotys for some people.
The official answer from whoever is running this system was that “the gates are conforming to all the regulations and norms and there is no evidence that they…” but the bug, in my opinion, was clearly in software. In retrospect it seems like a stupid omission of one
if statement but if a few people sat together—and a combination of a business owner, a developer and a QA person that Paweł suggests sounds like a really good combination—one of them was likely to come up with such a basic scenario.
So, I believe that writing acceptance tests, test scenarions or whatever we call them forces the business owner to think harder at what exactly he wants to have and this is always a good thing :)