hal helm's logo  
home Home

training Training

writing Writings

code Code

tutorials Tutorials

newsletters Newsletters

consulting Consulting

Hal Helms logo
hal.helms

What Students Say...

"This class was jammed packed with great information. Hal really makes learning Java very easy!!!" - Rob S

"I got so much more out of this class than I expected. By day 3, I thought my head would split Those lunch breaks saved me! I've never been so excited by a class and so ready to apply it at my work." - Charles K

"My boss has sent every one of us to your Java class and says it's the best investment in training he ever made. (And I agree!) Thanks, Hal. Really a great class. Great CDs, too." - Jennifer M

newsletters section

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:

  1. Get all customer info
  2. Have customer fill out credit application
  3. Get credit rating
  4. 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

©copyright      designed by in-tuition.co.uk
hal helms' personal site Updates

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

teamallaire.com v 4_3