Wednesday, January 17, 2007

The Internal/External Distinction

In a recent debate over requirements terminology, one of the participants proposed that the line between the requirements and design of a product is the same as the distinction between the external and internal aspects of the product. I.e., the requirements specify the external behavior and attributes of the product, and designs specify internal details of the product.

The idea is that, as long as you're treating the product as a "black blox" (not peeking inside to see how it works internally), you're in the realm of requirements and not design.

This distinction has a great deal of initial intuitive appeal but leads to absurd conclusions with contradictions in terms. For example:
P1. User interface designers produce specifications that describe only external aspects of the product.
P2. If a specification describes only the external aspects of the product, it does not contain design.
C. Therefore, the specifications that user interface designers produce do not contain design.
Requirements are about specifying the problems the product should solve and avoid. Nothing more, nothing less.

No comments :