The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Complex web form

Hi all,

i'm doing a property search. To publish an ad i got a form with 30 fields. 10 are mandatory, 5 are very important (these should be made mandatory), the other 15 are optional.

Let's take 2 of the optional fields to explain my case: one is "Wheelchair access", the other is "Pets allowed".

These are pretty much showstoppers for a person searching for a house, but i don't think they should be warranted the *mandatory status*.

How should i solve this problem without killing the user having to click too many options when he publishes an ad?

I'm trying to cater to both the real estate agents (who will need to publish many ads) and the casual user (who publishes an ad a year or even less, to whom this would obviously not be a problem).

I'm also dubious about providing the user with a "select all" button to select all the optional fields but this could lead to people abusing it.

Any ideas? Or should i just ship it and listen to what users tell me?

Property Search
Wednesday, January 31, 2007
==> How should i solve this problem without killing the user having to click too many options when he publishes an ad?

We have this Neat-O(tm) concept. It's the greatest-thing-since-sliced-bread! It slices, it dices, it'll do your laundry ... and make it cleaner, whiter, and brighter. Just set it and forget it!

We call it the RonCo "Default Value"! 19.99 -- plus shipping and handling, while supplies last ... and if you order now, you'll get a complimentary set of Ginsu Steak knives!.


Seriously, though, what the heck is wrong with filling in a default value on the optional fields? Figure out what most would have -- e.g. I suspect most houses are *not* wheelchair accessible -- and make the appropiate value the default, so most folks don't have to do a darned thing and can leave the defaults.
Wednesday, January 31, 2007
Yeah, I mean if you need the values on submit, you need them, right?  Gotta present them somehow.  Defaults would help.
Wednesday, January 31, 2007
The two examples that you suggested (wheelchair access and allows pets) are boolean. They should be checkboxes. Aside from being the right thing to do from a UI standpoint, that neatly sidesteps any question of required values.

Now, I've actually been searching for properties lately, so allow me to point out a few other issues. First of all, you'll want to make sure that leaving those fields unchecked doesn't exclude properties that would match if they checked. In other words, if I check pets it should only show me properties that allow pets but if I leave it unchecked it should show all properties whether they allow pets or not. If I don't have pets, I probably don't care whether the property allows them or not. Likewise for wheelchair access. One of the forms I've used gets that wrong, and excludes properties that allow pets if you don't check the box.

Second, the pet issue is not necessarily binary. Some properties allow all pets, some allow no pets, some allow cats but not dogs, and some require case-by-case approval. If you have to deal with that, make sure you understand that the result sets are not exclusive. If I ask for properties that allow cats I should see properties that allow all kinds of pets and not just the ones that allow cats. On the other hand, if I ask for properties that allow all kinds of pets I should not see the ones that only allow cats.
Wednesday, January 31, 2007
"If I don't have pets, I probably don't care whether the property allows them or not."

I love clcr's case study.

I should also point out that some people are allergic to pets and by unchecking the box, they are looking for properties that explicitly ban pets.

So in this case, I think the ideal situation is a radio button with "yes" and "no" choices for each question. Err... I'd want to see have a dog? Yes or no.  Have a cat? Yes or no.  Need handicapped access?  Yes or no.  And so on. That forces people to make a boolean decision and doesn't let them get away with "whatever" as an answer.

The conventional practice however, is what clcr described. Since you want your service to be familiar to the general public such they are comfortable using it, you probably shouldn't try to get fancy.
Wednesday, January 31, 2007
Thanks guys you made very good points.
Property Search
Thursday, February 01, 2007
As a general UI principle, avoid requiring or preventing anything unless it is absolutely necessary to minimally complete the task. Do not force the user into something because you think it’s merely important (e.g., good for the user’s business). The real world is a messy place and you need to provide the user flexibility to handle exceptions you cannot anticipate. Expert real estate agents can’t know all the exceptions and they have a lot more domain knowledge than you’ll ever have.

That said, a UI can and perhaps should provide domain *advice*. For the purpose of encouraging users to complete certain fields, this can be in the form of: (1) A single line of explanation by particularly problematic fields, indicating consequences if left blank of as the default (e.g., “Families buying a house often consider the school district to be crucial”), (2) A side bar with a paragraph of explanation of the significance of a set of fields (e.g., “Buyers of commercial property will look at these items in order to...”, (3) Links to a full page of documentation (e.g., “Checklist for ads that work”, “Why isn’t my house selling?”), (4) Sanity checks, alerting the users of likely errors, but allowing them to keep things as is (e.g., “You included no street address for the property. Is that what you wanted?”).

With your application, I suspect that some users may be leaving important items blank because they don’t understand what to put there (e.g., “I don’t know my school district.” “Do I need all low cabinets for my house to count as accessible?” “How accurate do I have to be on the walking distance to the nearest bus stop?” “I’m okay with contained critters, like fish or gerbils. Do they count as pets in this app?”). If users are unsure what to enter, required fields or default values may be worse than no values. Consider how you can help users know what to input.
Michael Zuschlag Send private email
Thursday, February 01, 2007
TheDavid: Good point about allergies. In order to accommodate that, it seems like "allergic to pets" would have to be a separate option which excludes properties that allow pets. The other way to do it would be to make "Don't care" the default option, and then allow users to choose yes/no/cats/etc instead.

One of the forms that I came across is the best example I've seen of how not to do it. I wish I could link to it without giving my location away. The options are allowed, two spellings of allowed with approval, two spellings of cats allowed, and two spellings of not allowed. Naturally these are mutually exclusive: you need to select both spellings of not allowed to get a full list of properties that don't allow pets.

All other design issues aside, database normalization is a Good Thing.
Thursday, February 01, 2007

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz