Some reflections on B.C. Smith’s “Limits of Correctness” 1985
Writing specifications that capture the intention is difficult. To illustrate this, Smith starts off with a simple example:
“Suppose you write a program to factor a number C, producing two answers A and B. Your specification might be: Given a number C, produce numbers A and B such that A x B = C .”
Now when applying the Kano Model to the example, one can nicely see several ways the intention can get lost:
Basic factors are so obvious to the customer that they would probably not mention them, like 1 x C = C, which is ‘of course’, not an acceptable solution.
Excitement factors are by definition not explicitly known by the customer, so they would probably not mention these until they become aware of them, either during the development, after it, or possibly never at all. For example, after coming across the concept of square numbers, the customer demands that whenever possible, A x A = C must hold.
Performance factors have a more difficult cost benefit relationship than the above ones. The customer can only identify the benefits. The costs depend on the technical design. This results in a cost benefit function, which is pretty hard to determine in detail – or at the very least requires extremely fluent communication between customer and designer.
Therefore, it is not easy to fulfill the right intention at the right price. For example, customer: “I want to impress my teacher with the program, so the more complicated A and B look the better”, designer: “the more systematic the results are, the cheaper the program will become”.
So far, just a few thoughts.