10

I am working on a CRUD application for describing tumor models. A tumor model is the description of an experiment an oncology researcher did with lab animals. There are a lot of possibilities of what this experiment can look like, so no experiment needs all the possible data fields. Therefore, we have many optional fields.

We tried finding common types of experiments which share the same fields and creating separate forms, but found out that this will not work, because practically any combination of fields is possible. We also tried to push for less fields, but the stakeholders are against it, and vetoed it over our protests.

So now we have a situation where the user sees many fields, including optional ones. They are highly interesting sometimes, but will not be needed most of the time. I had a user test today, and she was just trying to come up with something to enter into every field she saw. She was aware of the fact that some fields are marked as required and the rest are not, but she still hated leaving optional fields empty. One field in the description of the experimental animals was "phenotype", meant for entering interesting deviations from normal (e.g. congenitally blind, or resistant to some carcinogens). She went to the site of a breeder selling experimental mice and copied the backstory of how the mouse was created, the whole page of it complete with formatting, into that 3-line field.

But we also had some "hidden" fields. We have a tumor description, and there is no field "metastasis" visible, there is a button "Add metastasis", which adds a rarely used field to the page. She had to use it, and instantly complained that it is not visible and she has this additional click. So this is a solution which seems to annoy the users.

It is better for both the user (who already has to enter a lot), and for the database owner (who doesn't care for the backstory of a mouseline) if the optional fields don't get filled for models where there is nothing interesting to say about them. But how do I get the users to discard the mindset "This is an empty field, I have to fill it" without hiding it behind a barrier?

8
  • In the case of the "phenotype" field, it might be a case of not restricting the field length properly. Then again, are you certain the user understands what a phenotype is?
    – cimmanon
    Feb 5, 2014 at 16:10
  • 1
    @cinnamon The user was head of a department working mainly with lab animals. She knows very well what a phenotype is, just like the other users ("phenotype" is first-semester biology material, all our users are at least Ph.D. students in biology, most of them have a higher degree). And in this case, she is also somebody who was part of the requirements elicitation, and she has given thought to whether that field belongs there, and seen mockups of completed tumor models with real data entered into the field.
    – Rumi P.
    Feb 5, 2014 at 16:15
  • @RumiP. Do more user tests with people who were less involved in the decision making process. This sounds like someone just trying to prove a point and not being a real user.
    – avi
    Feb 5, 2014 at 16:49
  • I have a postcode field which is not mandatory (Ireland doesn't have postcodes outside of Dublin). Still people put all sorts of weirdness into it, like 0000 or n/a, rather than just leaving it blank.
    – TRiG
    Feb 6, 2014 at 0:50
  • I wonder what kind of "user test" you conducted. We are doing completely scripted tests which specify what to enter. If the requirements say the field is important , we include it in the testing instructions. If the field is marginal, we don't. So there wouldn't be someone "trying to come up with something to enter into every field she saw". In addition, don't judge your UI from a single test. You'll start to see problems recurring from 6 or 7 test persons, but I would not change any design based on a single test (except that person is your manager, but then it's not your design, but theirs). Feb 6, 2014 at 13:55

3 Answers 3

8

Putting aside all the project-specific constraints, I have a few ideas how to approach it. You can use several tricks to achieve it:

  1. Splitting required fields from optional ones - grouping the required fields on top and keeping the less important ones below, in a "Optional details" section.

  2. Making this optional section hidden - showing it on demand, while user clicks some "Enter more information" button.

  3. Using custom styling for optional fields - rather than placing an asterisk near required fields, you can a little bit degrade the optional ones using lighter frames and marking them with "optional" text label.

  4. Splitting the layout vertically to show the required fields on the left side and and the optional ones on the right and marking this right part as "Optional" (by proper styling, most probably again lighter).

  5. Splitting the process in two steps - first adding all required information, then, after submission, asking user to provide more details (kind of gradual engagement).

1
  • Not everything will work in my case - the form is already very long and the fields are grouped into meaningful subsets - but I especially like the fourth suggestion. It is what I will probably try first, together with the placeholder values from the other answer.
    – Rumi P.
    Feb 6, 2014 at 16:11
7

how do I get the users to discard the mindset "This is an empty field, I have to fill it"

Prefill it! ;D Maybe there are some default values you can display, like "nothing special", "no occurrences" or "no metastasis" (I'm not very experienced in this subject area, but I think you get the point).

That way users can see that "no input is also an input".

cheers

2
  • 1
    If this were a web form, using the placeholder attribute would be preferable to filling in a value (eg. <input name="phenotype" placeholder="No unusual phenotypes" />)
    – cimmanon
    Feb 5, 2014 at 19:44
  • Yes, it is an web application. I don't know if this will be helpful, but it is one thing to try.
    – Rumi P.
    Feb 6, 2014 at 16:10
2

Two tactics I would be interested in testing


One is to give a precise request and example of relevant answers. Can do this as a type over text. e.g.

Only list specific deviations in test subjects from normal (e.g. congenitally blind, or resistant to some carcinogens). Leave blank if no deviations.

Experienced users will become blind to "war and peace" in app help, especially when it's styled appropriately. Edit: I was working on an app where one Persona was very precise and verbose. User Testing validated that this user did read detailed guidance that others barely skimmed.


Second is to try use the approach similar to the wine tasting Aroma wheel where users (tasters) don't come up with random flavours but refine choices based on soft guidance. All options are visible, but inconsistent responses far less likely. Depending on the domain this approach may not be feasible.

e.g.

mockup

download bmml source – Wireframes created with Balsamiq Mockups

2
  • I don't think this is a good solution. We already have a few suggestion messages above field which may behave differently from user expectations, but the users don't bother reading them. We are trying to keep them to a minimum. The second one would require that we save an ontology of all hundreds of thousands possible phenotype deviations in our database, and creating such an ontology would be a project requiring multiple manyears by somebody who is an expert in both biology and information architecture.
    – Rumi P.
    Feb 6, 2014 at 16:09
  • Valid points. However do consider that implicit in the question is you have two problems. (A) User feels a need to fill in all blanks (B) user not understanding the domain. If you fix the latter you will be at least part way to fixing first issue. Fixing problem (B) may be higher priority. You may not need complete phenotype dB to provide guidance. But even just a visual hierarchy (as per ugly wireframe) may assist most users. Preventing any given user from making error will require a lock down.
    – Jason A.
    Feb 8, 2014 at 9:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.