No fields are required

15 November 2007

Peter Hilton

by Peter Hilton

There is an accepted wisdom in software design that the way to gather good quality data is to reject 'bad data'. The main tactic is to suppose that no data is better than incomplete data, which is why we are told 'you must complete the required fields'. This sounds like a fine idea, until you observe people filling in a form and typing 'unknown' into half of the fields.

If you take a step back, it is clear that this kind of data validation comes from modelling a specific business process, which is what you do when you develop software for a specific organisation. This does not work for software that is intended for many different organisations, as with a software product, or software for an organisation whose processes are not irrevocably set in stone.

In this case, your software is more useful if it is flexible about data entry. This is why our first version of VisibleLogistics let you create an order with no required fields, except for a buyer, since you are the seller and you have to be selling to someone. However, even this one exception for the buyer turned out to be a mistake. People wanted to create orders with themselves as the buyer or the carrier, or perhaps just leave those fields for later.

Besides, we realised that we had to allow ourselves to be the buyer so we could support buy-side order management, which is what we needed ourselves so we could keep track of our orders for wine and new computers.