Proponents of Agile development have long argued that users are not capable of clearly stating a comprensive, accurate, consistent set of requirements for a desired system. The truth is more problematic. Most software projects have no requirements to state – at least, that is theme of new research in Requirements Engineering.
Suppose we’ve been hired by a hospital. The hospital has just finished digitizing all patient records. Physicians need to access patient records on the computers in examination rooms but, due to privacy legislation, records must be visible only to the physicians. That is, a nosey patient shouldn’t be able to read someone else’s information over the physician’s shoulder. Based on this description, we devise two approaches – 1) information is displayed using codes that only physicians can decipher; 2) a matching pair of filter screens and glasses installed such that the screen can only be read by someone wearing the glasses. The requirements, therefore, are the features common to both approaches. Filter-glasses, for example, are not required because the secret codes approach doesn’t need them.
The first problem is that Continue reading “How software developers suffer from the illusion of requirements”