I am working on a project at the moment that involves computerizing some processes that are currently done on paper forms. Surely everyone knows that paper forms are passe, and that great economies are gained by capturing this information electronically. Indeed there are benefits to the computerization -- the information can be accessed more easily by a wider group of people, and the data can be reused in other situations. But what is interesting is how robust paper forms can be. Rather than being a static receptacle for information, the forms I am dealing with are actually dynamic frameworks for collecting classes of information, instead of fixed data fields. If a customer has requirements that don't fit the architecture of the form exactly, the form can be amended through crossing things out, adding things on, and making margin comments. Humans can understand these complexities, but computer programs gag on them. Trying to figure out a computer form that can handle all the potential variations of customer information is proving quite a challenge.