Thursday, November 13, 2003
more Pokayoke
Keith Ray gives a fine example of test-driven development (TDD) today. He argues that TDD represents “software pokayoke” (mistake proofing of the development process). However, I fail to be convinced. [Sorry to disagree here Keith
]. I see TDD as quality assurance. There is a subtle difference between mistake proofing a process and failure proofing a product or service. I think the real “pokayoke” in Keith’s example is in this quote…<!—StartFragment—>
So how do we know the test is a valid one for the requirements? Well, it looks good to me. I ask my pair partner; he thinks it looks good, too. Since we’re doing Extreme Programming, we ask our on-site customer what the log should look like. She looks at our test and says “This displayed text should have an exclamation mark at the end.” So we add “!” to the end of the strings in our tests.
The inspection process on the test to validate that it assures the match of output against the requirement is the real “mistake proofing”. The inspection step of asking both the pair programmer and the on-site customer if the test is accurate is the vital piece of mistake proofing. That step must be part of the process and it must be conducted or there is a risk that a test will run but be testing the wrong thing. That is Pokayoke!


