Recently I was testing a form for uploading a diagram to a server. Entering a name and description was easy enough but choosing a group to add it to caused some frustration. I had forgotten to add a new group for my diagram! The only solution available to me was to cancel the dialog and open a different one to create the group; a frustrating procedure. Imagine how much time is wasted every day by minor frustrations like this.

Forcing a user to make decisions (uploading a diagram) before all the necessary information is available (created groups) is the problem of the Cognitive Dimension Premature Commitment. If you have ever taken an online survey you have probably encountered this problem. Many surveys consist of multiple pages; users are often unaware of the type and number of questions that will be asked. Showing the user the number of total pages and their corresponding headers will allow users to confidently add or modify content during the current phase without having to backtrack. Premature commitment causes problems with all types of actions performed by users; whether it is the creation, modification, or exploration of content. It should be avoided at all costs.

Another example for developers is the premature commitment inherent in designing databases. We have all had to choose an initial database structure and then go back and modify it to incorporate changes to the software’s specification or unexpected types of data. Choosing table and fields names makes perfect sense until you realize that the world is full of exceptions to the rules you put in place. One way to counter this particular example would be to make modifying the database as easy as changing the font in your word processor. This would reduce the Viscosity present in the database editing tools.

Care is needed when determining what order user actions take place in. The designer’s expectations often differ from the users. Differences between these expectations can lead to Premature Commitment frustration on the user’s side. Significant usability testing is one way to get around the preconceptions of designers and developers. For most domains it is nearly impossible to eliminate Premature Commitment all together but taking it into account when making design decisions will make your software’s forms much easier to use.

photo credit: flickr