I would like to propose a new software design principle I would like to call The Single Box Theory. My Theory is as follows: the closer your software can get to using a single box the more likely it is that customers will adopt it.
Google Search has a single box and is brain-dead simple to use:
Twitter is the same way:
The closer our designs gets to a single box, the easier the product is to use, the less explanation it needs, the more magic the app appears to have.
I’m not saying this is easy. Email has three boxes — to, subject and body — and most people believe this is as good as it could possibly get.
But is it? Here is Facebook’s Messages interface. It has only two boxes:
I find it weird to think that two boxes is that much simpler than three boxes but it is. One less box to fill in means one less decision to make, one less minute to complete. It means the customer is way more likely to use it.
The problem with multiple boxes is that only the most anal retentive among us will be willing to fill them in. I don’t want to spend my days figuring out which boxes to fill in with what data. I just want it to be done. How many people fill out all the appropriate iTunes info?
Or fill in all the contact info every field the Address book asks for?
I believe most people’s Address Books, for instance, have half completed data and information in it. Very few people really want to take the time to make sure it is all entered and it is all accurate.
But structured data requires multiple boxes, right? After all, I need to tell the service what goes where so it knows how to catalog the information, make it sortable and searchable, transform it into reports so I know how I am doing. Here is a screen shot from Highrise:
How could a product like this get away with fewer boxes? I won’t say it is easy. I will say it is necessary to make a product more usable, though, and to get more people to adopt it and stick with it.
As developers we need to work a little harder, think a little longer, about how to reduce the number of boxes. It is possible. Take a calendaring application. Traditionally it has lots of boxes: event, location, date, time, from, to, etc:
All of this seems necessary but it isn’t. Think hard about the 90% rule: what will people need 90% of the time and satisfy that need while also making it easy for the anal retentive among us to get access to the rest. Even something as reliant on structured data as a calendar app can accomplish this:
It is amazing how many boxes we can eliminate when we put our minds (and programming muscle) into it.