forced choice widgets?

22 May 2007 - 1:50pm
7 years ago
8 replies
787 reads
DrWex
2006

I have a workflow in which users can choose to move their data through
processes, A, B, and C. Internally the states are actually a
sequence. So if the person selects C we first move the data through A
and then B.

I could present this as a radiobutton list, e.g.:
o Fold
o Spindle
o Mutilate

If the person selects Spindle, we secretly fold the data first, etc.
The sequence is hidden. But
sometimes the processes fail, so a user who selected Mutilate will
find that his data Folded properly but couldn't be Spindled. This
person finds himself looking at an error message generated by a
process he didn't consciously choose. Plus his data are now Folded.

Or I could make the sequence explicit by doing something like
checkboxes and not allowing the user to choose Spindle until Fold is
first checked. But probably 60-75% of users don't really care about
the sequence. They just want their data Mutilated and they object to
having to click three times to make what they see as one choice,
especially since they make this choice potentially dozens of times
during a workday.

Any advice on how to present something like this in the UI?

--
--Alan Wexelblat

Comments

22 May 2007 - 2:16pm
Will Parker
2007

On May 22, 2007, at 11:50 AM, Alan Wexelblat wrote:

> I have a workflow in which users can choose to move their data through
> processes, A, B, and C. Internally the states are actually a
> sequence. So if the person selects C we first move the data through A
> and then B.

If the process REQUIRES the full A->B->C sequence, then don't offer
the steps as choices - after all, they're not.
>
> I could present this as a radiobutton list, e.g.:
> o Fold
> o Spindle
> o Mutilate

<SNIP>

> Or I could make the sequence explicit by doing something like
> checkboxes and not allowing the user to choose Spindle until Fold is
> first checked. But probably 60-75% of users don't really care about
> the sequence. They just want their data Mutilated and they object to
> having to click three times to make what they see as one choice,
> especially since they make this choice potentially dozens of times
> during a workday.
>
> Any advice on how to present something like this in the UI?

What you're looking for is the Wizard pattern (http://
designinginterfaces.com/Wizard) with some indication to the user
where they are in the process.

The best design I've seen (in my opinion) shows a left-to-right
timeline of connected, numbered nodes corresponding to the stages of
the process. The user's current location along the timeline is
highlighted, and minimal descriptions of *at least* the current and
next tasks are provided. For example:
[pre]
-1-------- [[[2]]] --------> 3--------> 4 -------->5
Personal Credit
Data Card
[/pre]

This tells the user what is currently expected of them, what they
will need to do next, and gives a rough idea of how much more work
remains. If you can also provide undo functionality, it's a good idea
to let the user back up to previous steps.

Try to defer irreversible actions until the whole process is
complete, and don't forget to allow the user a chance to review and
correct their data entry at the end of each phase. If you really want
to dazzle your customers, make the current state of any open
processes persistent across sessions so the user feels confident they
can work to their own schedule. ("Last time you were here, you had
five items in your shopping cart. Did you want to keep those?")

- Will

Will Parker
wparker at ChannelingDesign.com

“I wish developing great products was as easy as writing a check. If
that were the case, then Microsoft would have great products.” -
Steve Jobs

22 May 2007 - 2:28pm
Dante Murphy
2006

Alan-

Harkening back to the days of database rollbacks and un-committed actions...can't you just un-fold the data if spindle failed? Or perhaps hold the original data in session until a success code is generated for the "destination" action?

I hope that makes sense. If not. I blame it on the fact that I haven't written a line of code this century.

Dante

_______________________________________________________

Dante Murphy |  Director of Information Architecture

D I G I T A S  H E A L T H  | www.digitashealth.com

-----Original Message-----
From: discuss-bounces at lists.interactiondesigners.com [mailto:discuss-bounces at lists.interactiondesigners.com] On Behalf Of Alan Wexelblat
Sent: Tuesday, May 22, 2007 2:51 PM
To: IXDA list
Subject: [IxDA Discuss] forced choice widgets?

I have a workflow in which users can choose to move their data through
processes, A, B, and C. Internally the states are actually a
sequence. So if the person selects C we first move the data through A
and then B.

I could present this as a radiobutton list, e.g.:
o Fold
o Spindle
o Mutilate

If the person selects Spindle, we secretly fold the data first, etc.
The sequence is hidden. But
sometimes the processes fail, so a user who selected Mutilate will
find that his data Folded properly but couldn't be Spindled. This
person finds himself looking at an error message generated by a
process he didn't consciously choose. Plus his data are now Folded.

Or I could make the sequence explicit by doing something like
checkboxes and not allowing the user to choose Spindle until Fold is
first checked. But probably 60-75% of users don't really care about
the sequence. They just want their data Mutilated and they object to
having to click three times to make what they see as one choice,
especially since they make this choice potentially dozens of times
during a workday.

Any advice on how to present something like this in the UI?

--
--Alan Wexelblat
________________________________________________________________
Welcome to the Interaction Design Association (IxDA)!
To post to this list ....... discuss at ixda.org
List Guidelines ............ http://listguide.ixda.org/
List Help .................. http://listhelp.ixda.org/
(Un)Subscription Options ... http://subscription-options.ixda.org/
Announcements List ......... http://subscribe-announce.ixda.org/
Questions .................. lists at ixda.org
Home ....................... http://ixda.org/
Resource Library ........... http://resources.ixda.org

22 May 2007 - 3:34pm
DrWex
2006

Thanks for the replies. I'll try to elucidate a little, by snipping
replies together.

Todd Roberts:
"Do you know why the process fails? What are the options if it does?
Would the process work correctly if it was run again, or are there
just "bad" datasets that aren't processable?"

The failure possibilities are numerous. Sometimes it fails because
the data are bad in some way; sometimes it fails because someone else
in the same system did something. Sometimes it fails because of the
state of the external world. The bottom line is that we can't
auto-fix and rerun.

Katie Alberts suggests:
0 fold
0 fold and spindle
0 fold, spindle and mutilate

I'm tempted to go with that, but when I initially suggested it I ran
into opposition of the form "people think about spindle and mutilate
separately." Such a dialog would not be congruent with the users'
mental models, insofar as we understand those mental models.
Pragmatically these operations also have long names so stringing three
of them together on a dialog would look ugly as sin.

Will Parker suggests:
"the Wizard pattern"

The problem with that pattern is that it stretches things out. Since
the user isn't actually DOING the tasks, nor do parameters for each
task need to be input there would be nothing to put onto wizard
screens. Remember we have users who, dozens of times per day, wish to
just point to some data and say "Here, mutilate this for me." No
further input is required from them. I can't see Wizard being
appropriate here.

Finally, Dante Murphy asked:
"can't you just un-fold the data if spindle failed?"

The answer is "maybe." Folding the data may have side effects outside
the system, so atomic rollback would be extremely complex and maybe
impossible. Even if we did, though, it wouldn't solve the problem of
the user who selected "Mutilate" and got a message saying "Fold
failed."

I do appreciate the replies. But I don't think there's a simple
solution here, unless I'm missing something obvious.

--Alan

22 May 2007 - 4:16pm
Katie Albers
2005

I think that if the task being performed is one that
violates the users' mental models of the task (and
that seems to be what you are saying) then the best
place to set the expectation that -- for example, you
may get an error that reflects state 2 failure when
your selected end point is state 3 -- then the best
place to do that is as early as possible. In this
case, that means when the user selects the end point

In any case, there are a few points I think really
need to be clarified here:

1) are each of the tasks possible end points or are
they really steps which lead to an inevitable final
end point of mutilation [my, what a lovely image
*that* is]

2) are you sure that the users' mental model of 2 and
3 does not include the previous steps

3) do you need to take care of this by using wording
in your error messages which clarifies that the 1 is a
step in 2 is a step in 3. That's certainly a solution
which would generally be denigrated, but it may be
your best bet here.

4) what on earth are you doing that it is truly
necessary to do it in a way that confronts and
violates the users' mental model?

Katie
================
Katie Albers
User Experience Consultant
katie at firstthought.com
--- Alan Wexelblat <awexelblat at gmail.com> wrote:

> Thanks for the replies. I'll try to elucidate a
> little, by snipping
> replies together.
>
> Todd Roberts:
> "Do you know why the process fails? What are the
> options if it does?
> Would the process work correctly if it was run
> again, or are there
> just "bad" datasets that aren't processable?"
>
> The failure possibilities are numerous. Sometimes
> it fails because
> the data are bad in some way; sometimes it fails
> because someone else
> in the same system did something. Sometimes it
> fails because of the
> state of the external world. The bottom line is
> that we can't
> auto-fix and rerun.
>
> Katie Alberts suggests:
> 0 fold
> 0 fold and spindle
> 0 fold, spindle and mutilate
>
> I'm tempted to go with that, but when I initially
> suggested it I ran
> into opposition of the form "people think about
> spindle and mutilate
> separately." Such a dialog would not be congruent
> with the users'
> mental models, insofar as we understand those mental
> models.
> Pragmatically these operations also have long names
> so stringing three
> of them together on a dialog would look ugly as sin.
>
> Will Parker suggests:
> "the Wizard pattern"
>
> The problem with that pattern is that it stretches
> things out. Since
> the user isn't actually DOING the tasks, nor do
> parameters for each
> task need to be input there would be nothing to put
> onto wizard
> screens. Remember we have users who, dozens of
> times per day, wish to
> just point to some data and say "Here, mutilate this
> for me." No
> further input is required from them. I can't see
> Wizard being
> appropriate here.
>
> Finally, Dante Murphy asked:
> "can't you just un-fold the data if spindle failed?"
>
> The answer is "maybe." Folding the data may have
> side effects outside
> the system, so atomic rollback would be extremely
> complex and maybe
> impossible. Even if we did, though, it wouldn't
> solve the problem of
> the user who selected "Mutilate" and got a message
> saying "Fold
> failed."
>
> I do appreciate the replies. But I don't think
> there's a simple
> solution here, unless I'm missing something obvious.
>
> --Alan
>
________________________________________________________________
> Welcome to the Interaction Design Association
> (IxDA)!
> To post to this list ....... discuss at ixda.org
> List Guidelines ............
> http://listguide.ixda.org/
> List Help ..................
> http://listhelp.ixda.org/
> (Un)Subscription Options ...
> http://subscription-options.ixda.org/
> Announcements List .........
> http://subscribe-announce.ixda.org/
> Questions .................. lists at ixda.org
> Home ....................... http://ixda.org/
> Resource Library ...........
> http://resources.ixda.org
>
>

____________________________________________________________________________________
Moody friends. Drama queens. Your life? Nope! - their life, your story. Play Sims Stories at Yahoo! Games.
http://sims.yahoo.com/

22 May 2007 - 5:12pm
Lorne Trudeau
2006

Sounds to me like a progress meter would be the way to go. The user
chooses from the three options, you then display some visual indication
of the data moving left to right, through the various states of
existence. The final destination resides at the end.
If an error occurs then it clearly shows them why it is that the data is
in its new, modified state.

Lorne

-----Original Message-----
From: discuss-bounces at lists.interactiondesigners.com
[mailto:discuss-bounces at lists.interactiondesigners.com] On Behalf Of
Alan Wexelblat
Sent: Tuesday, May 22, 2007 11:51 AM
To: IXDA list
Subject: [IxDA Discuss] forced choice widgets?

I have a workflow in which users can choose to move their data through
processes, A, B, and C. Internally the states are actually a
sequence. So if the person selects C we first move the data through A
and then B.

I could present this as a radiobutton list, e.g.:
o Fold
o Spindle
o Mutilate

If the person selects Spindle, we secretly fold the data first, etc.
The sequence is hidden. But
sometimes the processes fail, so a user who selected Mutilate will
find that his data Folded properly but couldn't be Spindled. This
person finds himself looking at an error message generated by a
process he didn't consciously choose. Plus his data are now Folded.

Or I could make the sequence explicit by doing something like
checkboxes and not allowing the user to choose Spindle until Fold is
first checked. But probably 60-75% of users don't really care about
the sequence. They just want their data Mutilated and they object to
having to click three times to make what they see as one choice,
especially since they make this choice potentially dozens of times
during a workday.

Any advice on how to present something like this in the UI?

--
--Alan Wexelblat
________________________________________________________________
Welcome to the Interaction Design Association (IxDA)!
To post to this list ....... discuss at ixda.org
List Guidelines ............ http://listguide.ixda.org/
List Help .................. http://listhelp.ixda.org/
(Un)Subscription Options ... http://subscription-options.ixda.org/
Announcements List ......... http://subscribe-announce.ixda.org/
Questions .................. lists at ixda.org
Home ....................... http://ixda.org/
Resource Library ........... http://resources.ixda.org

22 May 2007 - 5:41pm
Rob Adams-Kane
2007

Perhaps these radio buttons would tell the story, economically:

O Fold
O Fold and Spindle
O Fold, Spindle, Mutilate

Rob Adams-Kane

W.A. Hynes & Company, Inc.
(800) 823-1470
(707) 586-2222
fax (888) 562-1471
rkane at waHco-it.com
www.waHco-it.com
This email, and any files attached, contains information intended only for the use of the addressee and may include information that is privileged, confidential or exempt from other disclosure under applicable law.  If you are not the intended recipient, you are hereby notified that any dissemination, copying, printing or other use of this email is prohibited.  If you have received this email in error, please delete it from you computer.  A reply email notifying the sender of the error would be greatly appreciated.  Thank you.

-----Original Message-----
From: discuss-bounces at lists.interactiondesigners.com [mailto:discuss-bounces at lists.interactiondesigners.com] On Behalf Of Lorne Trudeau
Sent: Tuesday, May 22, 2007 3:13 PM
To: Alan Wexelblat; IXDA list
Subject: Re: [IxDA Discuss] forced choice widgets?

Sounds to me like a progress meter would be the way to go. The user chooses from the three options, you then display some visual indication of the data moving left to right, through the various states of existence. The final destination resides at the end.
If an error occurs then it clearly shows them why it is that the data is in its new, modified state.

Lorne

-----Original Message-----
From: discuss-bounces at lists.interactiondesigners.com
[mailto:discuss-bounces at lists.interactiondesigners.com] On Behalf Of Alan Wexelblat
Sent: Tuesday, May 22, 2007 11:51 AM
To: IXDA list
Subject: [IxDA Discuss] forced choice widgets?

I have a workflow in which users can choose to move their data through processes, A, B, and C. Internally the states are actually a sequence. So if the person selects C we first move the data through A and then B.

I could present this as a radiobutton list, e.g.:
o Fold
o Spindle
o Mutilate

If the person selects Spindle, we secretly fold the data first, etc.
The sequence is hidden. But
sometimes the processes fail, so a user who selected Mutilate will find that his data Folded properly but couldn't be Spindled. This person finds himself looking at an error message generated by a process he didn't consciously choose. Plus his data are now Folded.

Or I could make the sequence explicit by doing something like checkboxes and not allowing the user to choose Spindle until Fold is first checked. But probably 60-75% of users don't really care about the sequence. They just want their data Mutilated and they object to having to click three times to make what they see as one choice, especially since they make this choice potentially dozens of times during a workday.

Any advice on how to present something like this in the UI?

--
--Alan Wexelblat
________________________________________________________________
Welcome to the Interaction Design Association (IxDA)!
To post to this list ....... discuss at ixda.org List Guidelines ............ http://listguide.ixda.org/ List Help .................. http://listhelp.ixda.org/ (Un)Subscription Options ... http://subscription-options.ixda.org/
Announcements List ......... http://subscribe-announce.ixda.org/
Questions .................. lists at ixda.org Home ....................... http://ixda.org/ Resource Library ........... http://resources.ixda.org ________________________________________________________________
Welcome to the Interaction Design Association (IxDA)!
To post to this list ....... discuss at ixda.org List Guidelines ............ http://listguide.ixda.org/ List Help .................. http://listhelp.ixda.org/ (Un)Subscription Options ... http://subscription-options.ixda.org/
Announcements List ......... http://subscribe-announce.ixda.org/
Questions .................. lists at ixda.org Home ....................... http://ixda.org/ Resource Library ........... http://resources.ixda.org

23 May 2007 - 9:11am
DrWex
2006

OK, one last message on this. I don't want to dominate discussion.

On 5/22/07, Katie Albers <katie_albers at yahoo.com> wrote:
> 1) are each of the tasks possible end points or are
> they really steps which lead to an inevitable final
> end point of mutilation [my, what a lovely image
> *that* is]

Yes. Each of the tasks is part of what we might call a workflow and
different customers handle that workflow differently. Some customers
let users do all the steps; some require that a different user be
responsible for each step.

> 2) are you sure that the users' mental model of 2 and
> 3 does not include the previous steps

No, I'm not sure, but that's how they talk. They say "I mutilate
these data" or "I fold these data" and appear not to consciously think
about fold as a precursor step. If you stop and query them, I think
most are aware that folding happens but it's not part of their
day-to-day thoughts.

> 3) do you need to take care of this by using wording
> in your error messages which clarifies that the 1 is a
> step in 2 is a step in 3.

I agree that careful wording of the errors is necessary and I'm
working on that as a separate project (all the messaging that comes
out of this application is... well, developer-written).

> 4) what on earth are you doing that it is truly
> necessary to do it in a way that confronts and
> violates the users' mental model?

OK, fair enough. I work on a trading application. Traders, the user
group in question, come in lots of flavors. A trader at a place like
a small hedge fund is a person with a lot of autonomy who is
interested in the speed with which things get done. When he (and
they're overwhelmingly male, still) says "I want to done-deal
(mutilate) this order" he probably has some awareness that pre-trade
compliance (fold) and send-to-trading (spindle) happen before done
deal but he really doesn't care about them. That's why he's using the
system - it automates all that grunt work for him.

By contrast, a broker at large-company equities trading desk is more
concerned with accuracy. He will tend to run pre-trade compliance and
carefully check the output. Depending on his firm's trading rules, he
might then pass the order to another trader who gathers up large
volumes of them and sends them to trading. Finally, a third person
may be responsible for done-dealing (awful verb, I know, but that's
the user's lingo) those orders after additional data are entered.

Hope that helps,
--Alan

23 May 2007 - 2:03pm
Rob Plante
2007

How about 3 check boxes:
if spindle is checked fold is checked and greyed out.
if mutilate is checked, fold and spindle are checked and greyed out.
This will reinforce the process, which your users are aware of, and it will
not be as far outside of their mental model if something goes wrong.

On 5/23/07, Alan Wexelblat <awexelblat at gmail.com> wrote:
>
> OK, one last message on this. I don't want to dominate discussion.
>
> On 5/22/07, Katie Albers <katie_albers at yahoo.com> wrote:
> > 1) are each of the tasks possible end points or are
> > they really steps which lead to an inevitable final
> > end point of mutilation [my, what a lovely image
> > *that* is]
>
> Yes. Each of the tasks is part of what we might call a workflow and
> different customers handle that workflow differently. Some customers
> let users do all the steps; some require that a different user be
> responsible for each step.
>
> > 2) are you sure that the users' mental model of 2 and
> > 3 does not include the previous steps
>
> No, I'm not sure, but that's how they talk. They say "I mutilate
> these data" or "I fold these data" and appear not to consciously think
> about fold as a precursor step. If you stop and query them, I think
> most are aware that folding happens but it's not part of their
> day-to-day thoughts.
>
> > 3) do you need to take care of this by using wording
> > in your error messages which clarifies that the 1 is a
> > step in 2 is a step in 3.
>
> I agree that careful wording of the errors is necessary and I'm
> working on that as a separate project (all the messaging that comes
> out of this application is... well, developer-written).
>
> > 4) what on earth are you doing that it is truly
> > necessary to do it in a way that confronts and
> > violates the users' mental model?
>
> OK, fair enough. I work on a trading application. Traders, the user
> group in question, come in lots of flavors. A trader at a place like
> a small hedge fund is a person with a lot of autonomy who is
> interested in the speed with which things get done. When he (and
> they're overwhelmingly male, still) says "I want to done-deal
> (mutilate) this order" he probably has some awareness that pre-trade
> compliance (fold) and send-to-trading (spindle) happen before done
> deal but he really doesn't care about them. That's why he's using the
> system - it automates all that grunt work for him.
>
> By contrast, a broker at large-company equities trading desk is more
> concerned with accuracy. He will tend to run pre-trade compliance and
> carefully check the output. Depending on his firm's trading rules, he
> might then pass the order to another trader who gathers up large
> volumes of them and sends them to trading. Finally, a third person
> may be responsible for done-dealing (awful verb, I know, but that's
> the user's lingo) those orders after additional data are entered.
>
> Hope that helps,
> --Alan
> ________________________________________________________________
> Welcome to the Interaction Design Association (IxDA)!
> To post to this list ....... discuss at ixda.org
> List Guidelines ............ http://listguide.ixda.org/
> List Help .................. http://listhelp.ixda.org/
> (Un)Subscription Options ... http://subscription-options.ixda.org/
> Announcements List ......... http://subscribe-announce.ixda.org/
> Questions .................. lists at ixda.org
> Home ....................... http://ixda.org/
> Resource Library ........... http://resources.ixda.org
>

Syndicate content Get the feed