Wednesday, January 7, 2009

A lesson on "User Friendly"

I've made a living creating easy to use systems for various government agencies. I've employed touch screens to build user interfaces that require zero user training. Just when you think you have made an idiot proof system, someone will prove you wrong.

Here is a little example:



I developed a high definition video arraignment system for a county in Alabama.


It worked a lot like a video phone with speed dial buttons to call the other locations.


We had just upgraded our system to use a touch screen instead of a mouse. It seems that many of our customers were not comfortable with mice. It only displayed buttons on a touch screen when they were needed.


While installing the system, I used the system to make a video call to the courthouse from the jail. I was sure there were people at the courthouse.


They didn't answer.


I asked someone at the jail to wait 20 minutes and then press the "COURTHOUSE" button on their touch screen.


When I got to the courthouse, I waited. At the appointed time, the speed dial buttons disappeared, and the touch screen displayed:


INCOMING CALL FROM JAIL

Press the answer button to accept the call.

[ANSWER]

This was displayed in red letters an inch tall over the incoming video from the jail. The speakers played the familiar old fashioned ringing sound over and over until you touch the [ANSWER] button on the screen.

I asked the worker, who was in the room, if she had heard that ringing sound earlier, She said; "YES"


I then asked why she hadn't answered. Her reply; "I couldn't find a mouse or keyboard".


Of course, she was not trained, I thought it was so simple that we wouldn't need to do any training.


When I looked at the screen and re-read the prompt, I realized what an idiot I was.


I changed "Press the answer button to accept the call."


To read " Touch this screen to accept the call."


Of course, I also had to make the whole screen active, not just the single [ANSWER] button. I also had to rework several other screens.


The point is:


You don't build user friendly DCC systems by turning over prototypes to a core group of "Beta Testers" or customers who are advanced DCC users.


You learn how to make user friendly DCC systems by handing them to kids who can't read, railroaders who have never used a DCC system, and railroaders who are technophobic.



For today's post, I think a video is in order.


The video is called CHAOS.


My granddaughter, Ally, invited some new neighborhood kids to play with our trains. She was 10 when this was taken.


Ally did all the operator training. She even operated my new camera to capture this video.


In fact, I didn't know she was doing this until she came in to tell me one of our four "visitor" throttles wasn't working. (I had run over the long cord with the lawn mower.) I had find a short throttle cable to connect the throttle.


I made it a point to not say a word to her visitors and let Ally handle everything. In the video, you will see me answering a little girl's question with hand motions. She wanted to know which way to turn the knob. That was the only help I provided.




You will notice that things seemed very chaotic at first, but, toward the end, things settled down.


Ally managed to provide them with chairs, and even served them sodas. After about four hours, they were running four trains at once. They were operating a passenger train between the two stations, and were just getting their feet wet with switching operations and moving loads from one siding to another.


In all, they had a lot of fun, and it was educational for me to watch how Ally handled the whole visit. The boys have been back since and actually volunteered to rake pine needles from the tracks.

3 comments:

Steeeeve said...

Hi Bob,

User friendly has always been the failure of most software programs from what I can tell.

I think DCC is what it is because there is no demand for the advanced functions that would justify a rather expensive software package. Seems a lot of people just want to hit a button and watch a train go in circle.

I personally want a ton of advanced automation but this probably has to be custom made using JMRI as template.

Bob Grosh said...

Thanks Steve
Yep, for the most part, user friendly is a code word for lack of features.

Then there is the trend toward doing everything for the user. Don't ya just love it when a program's save decides for you what to name the file and where to put it without any clue as to where your file went or what it's name was. The only way to get to your file is to run the program again. It may be friendly to the user who only wants to do what the program lets you do, but if a user needs to use that information in some other program, he is out of luck.


Steve, you said; "Seems a lot of people just want to hit a button and watch a train go in circle."

Well, That is exactly one of the reasons I am doing this.

It seems to me that right after they "push a button and get that train running round and round", they start wondering about how to get two trains running round and round ON THE SAME TRACK.

Then they start wondering about how nice it would be if the trains blew the whistles now and then. Or stopped at a station once in a while. Or avoided running into each other. All of those should be just a button press away too.

On the ALLY, my granddaughter and friends run 6 or 7 trains at a time. If I was also running a train, I'd get a phone call, or someone would need me to help them.

Of course, I couldn't leave the train running. It would hit somebody else's train.

I couldn't, stop either. I'd block the mainline.

I wondered, Why can't I hit one button and have the train continue to the next empty passing siding without hitting someone in front of me. Then, my train could automatically switch to the siding, stop, close the switches and wait for my return.

Once I had that working, I wondered; "Gee, it's so much fun when I have 6 operators to run trains." Why can't I push one button to stop at the next siding, and then have the train wait till two trains pass it and start back up again. and go to the NEXT empty passing siding. I could easily get a couple passenger trains running under robotic control, each with a single button press.

That made operations more interesting when there are only 2 or 3 operators. Besides, nobody liked running the passenger trains anyway, cause there weren't a lot of switching opportunities.


I don't know what you consider expensive, but, the quad receiver I had to add to do the robotics cost about 50 dollars. I used an old used PC I got for 25 at a garage sale. The rest was what I already had before I decided to add robotics.



You say you want a bunch of advanced automation. I have most of my features already programed using JMRI.

Could you describe what features you want? I just wonder how many of them I already do. I might be able to send you some code examples off list.

B0B

Steeeeve said...

What I mean is that you won't see companies do a program because of the cost to program it and make it work correctly. Aristo spent 3 years developing technology that existed in the 80s. It would be helpful to have your ideas already in a controller without having any software on the side but have the option to do it.

The features I would like are basically the ones you have talked about to me. Most of these could be on a controller with no software needed. On software I would like a map that shows locations and the ability to program routes. One off the wall feature I would like would be touch screen ability.

Steve