Conversations
Informal talks on software development with Hal Helms and
Steve Nelson
Topic: Fudgability and Forgivability
Hal Helms: I went to Baltimore
recently to work with John Quarto on some stuff. I was coming from Atlanta;
he from New York. I found a nice
hotel on Priceline and paid for both rooms.
Steve Nelson:Gee, you paid for both? Hey, why don't we
get together in, say, Maui?
Hal Helms: There IS a
point to this story...Anyway, John goes back home and the hotel charges him for
his room.
Steve Nelson Nelson: So you
didn't really pay after all, you sly dog!
Hal Helms: No, I paid.
They just charged him anyway.
Steve Nelson Nelson: Ouch. Not
fun.
Hal Helms: No,
apparently not. John called me and I gave him the Priceline info. He then
called the hotel 6 times without ever getting any help. He got locked into
voicemail purgatory whence no escape is possible.
Steve Nelson: So what'd
he do? Not just eat the charges?
Hal Helms: No, he
called his credit card company to dispute the charges. They asked him how much
he wanted to dispute and he told them "all of it". But their system
wouldn't let him dispute all of it--I forget the exact reason, but he was first
supposed to get something from the hotel (which he couldn't because he couldn't
get to a real human being). The person John was talking to at the credit card
company understood the problem, but the software wouldn't let her dispute the
entire amount.
Steve Nelson: I hope
this has a happy ending.
Hal Helms: Well, John,
being a programmer, told her, "Try it for the full amount less one
penny." Bingo. It worked.
Steve Nelson: Ha!
Hal Helms: But it made
me think of an ICQ you and I had a few days earlier. You were talking about
Alan Cooper's book, "The Inmates are Running the Asylum". About
"fudgability".
Steve Nelson: Yeah,
that's a good example of a non-fudgable system.
Hal Helms: Define
fudgability.
Steve Nelson: It's
obviously a made-up word, but a useful one: it describes the ability that human
beings build into real-world systems to let them circumvent the rules. It
provides flexibility.
Hal Helms: Give me an
example in the non-computer world.
Steve Nelson: OK, let's
say we have a process for taking an order from a customer. The process is this:
- Get
all customer info
- Have
customer fill out credit application
- Get
credit rating
- Send
order through for fulfillment
Hal Helms: OK
Steve Nelson: Now, one
day, Bill Gates calls you.
Hal Helms: Me?
Steve Nelson: You, Hal Helms. He says. "Hal, I understand you have just written a
book called 'Discovering Fusebox', is that right? Well, I'd like to order
50,000 copies. Can you do that for me?" What do you say?
Hal Helms: "Be
still, my beating heart"?
Steve Nelson: No! You
say, "Well, thanks for the order and all, Bill, but I need to have you
fill out a bunch of forms and then I'll have to run a credit check on
you."
Hal Helms: ARE YOU
CRAZY? This is Bill Gates we're talking about!
Steve Nelson: Hey, a
process is a process. At least, that's the attitude that most computer programs
take. There's no "fudgability" built into them, no way to tell the
computer, "Dude, this is the world's richest guy. He's good for the
money."
Hal Helms: There's a
big disconnect between the way developers WRITE software and the way users USE
software. And that's one reason for using personas, as we've been talking about
in the last few newsletters. Personas help maintain a connection between the
software developer and that end user who the developer will never see.
Steve Nelson: When a
decision needs to be made, instead of saying, "Gee, how would I do
this?" Or even, "What's logical?" the developer says, "What
does Sue want to do? What would feel most natural to her?"
Hal Helms: One
developer recently wrote about personas that he didn't really buy into the idea
that it was that necessary to have fully developed personas. I told him I
thought it was a bit like "method actors" who want to know all about
their characters -- where they went to school, what their favorite food is, what
their views on gun control are -- even though there may be nothing about those
in the movie. Knowing all that stuff--which of course means imagining a more
fully-realized character--helps them to know how the character would act in the
confines of the script. I think it might be like that with personas, too. But
back to fudgability
Steve Nelson: Is this
rant time?
Hal Helms: Maybe. I
recently had an experience with UPS. I had signed up over the web and had
forgotten my userID, since the number of userIDs I have must number in the tens
of thousands.
Steve Nelson: And they
didn't have a "Forget your password?" link?
Hal Helms: Oh, no, they
had one. But in order to get it, you had to give them your userID!
Steve Nelson: What?
Every other site has you provide the email account you used to register and
then they send you that info.
Hal Helms: Tell me
about it. Not only that, if I HAD known my userID, I would have had to create a
new password. There was no "Forget your userID" link, so I had to
leave an email asking for help.
Steve Nelson: And you...
Hal Helms: Never heard
back from them.
Steve Nelson: That's
miserable. But is it a fudgability issue?
Hal Helms: Hmmm...probably
not, no. It's more a forgivability issue. Does the software punish the user in
the best Puritanical style or is it forgiving? UPS apparently subscribes to the
extreme form of Calvinism. But that's not all.
Steve Nelson: If we act
now, we get free Ginzu knives?
Hal Helms: No, about
two days after this, a lady from FedEx calls me. I had signed up some time ago
and just forgotten about it. I told her the story about UPS and how fortuitous
it was that she called just then.
Steve Nelson: You used
that word--fortuitous?
Hal Helms: Yeah. Why?
Steve Nelson: I'm
beginning to see why you have problems. Go on.
Hal Helms: So, while
she's on the phone with me, I go over to the FedEx site. SAME THING!!! I
couldn't believe it.
Steve Nelson: Did you
say, "Gee, this is not fortuitous?"
Hal Helms: In almost
those exact words, wise guy.
Steve Nelson: I'll bet
the guys (assuming the programmers were male) who wrote the software weren't
trying to be jerks.
Hal Helms: Agreed. So
how were their good intentions translated into my frustration?
Steve Nelson: Well,
that's too big a question, but a better one might be: would using personas have
helped them to realize that "Mac, a small business person who has more
things on his mind than he has mind to hold them" is one of their
personas? I think it might. The programmer could have asked, "What's Mac
going to want to do?" And the programmer might just realize by
personalizing it that Mac probably will NOT remember his userID and won't have
written it down. Then the forgivability thing should lead them to gently help
you. This is hardest for programmers when the way that users do things directly
contradicts the logical organization of a program.
Computers are incorporated in modern ice cream vending machines to enhance their functionality. Ice Cream Vending machines are manufactured by many companies. Your competition will try to overcome all requests for high-tech ice cream vending machines and credit card acceptors
|
|
Hal Helms: You know, in
my class on FastTrack to Fusebox, I deliberately set out to have a user
interface that is designed to be at odds with the program's underlying
architecture. When students run into that, they react differently. My goal in
this is to help people see that the architecture should never impose on the
user experience, even though I think architecture is extremely important. After
struggling with it for a while, during which time someone always comes up with
the idea of "just don't let the user do that!" they discover a way
around the limitations they thought were imposed by the program logic. And it
turns out that discovery is very, very important in turns of using
architectures like Model-View-Controller.
Steve Nelson: That's
because you have them focus on persona goals. The user wants to do THIS RIGHT
HERE!!! We may think, "Hey, they can't do that there. They need to be over
in that other section." But if that's not how Mac does it, then that's not
how the bind the software should force them into. So, are all the FedEx and UPS
developers going to sign up for your class?
Hal Helms: If only it
were so. There is so much truly atrocious software out there. And that
translates into SUCH an opportunity for people if they will train themselves to
think like users. People who can slam out code -- that's really not all that
rare, but people who can produce products that do what users want them to do?
Against that, there can be no threat from foreign competition or automation.
Steve Nelson: You feel
better now?
Hal Helms: I do, yes. I
feel...what's the word I'm looking for?
Steve Nelson: Fortuitous?
Hal Helms: Just so. See
you next week.
Hal Helms provides training on software development, including Fusebox and FLiP. His site is www.halhelms.com. You can reach him at hal
Steve Nelson runs SecretAgents.com, a site for putting together clients and developers. If you need consulting or help on project management, you can reach Steve at m
|