YOUR FEEDBACK
More on the Software Assembly Question - Do Design Patterns Help?
Yanic wrote: Hi, > UML and MDA are being changed to be more data and doc...
SOA World Conference
Virtualization Conference
$50 Savings Expire May 23, 2008... – Register Today!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TOP COLDFUSION LINKS


Personas Can Improve User Interface
Basing software flow on human flow

Digg This!

For a long time I've been stuck in the mindset that creating a fabulous user interface requires a top-notch artist. I thought someone who is a master of colors and graphics is bound to make the ideal user interface. Trial and error has proved this incorrect.

I've done projects with and without fabulous artists. A good artist can improve the details of the interface to make it easier on the eye, but rarely does he or she make suggestions that dramatically improve how the software works. That's okay; that's not their job. But if they're not changing how the software works, then maybe colors and graphics aren't what make a user interface easy to use.

Maybe it's the programmers who make it easy to use. The programmers know the database, therefore they must be masters of data input fields and data display, right? Without the right data, the software is going to be useless. As most of us already know, programmers are generally pretty bad at making easy-to-use interfaces. It's probably because we're all left-brained creatures. Or it may be because most programmers are quick to try and save time by reusing prebuilt interface widgets that may not be ideal for the people using the software.

It's not the people on our team who make a good interface, it's the design process. As much as I don't like McDonald's, they've created a business that can be operated by uneducated teenagers. They have created an operation that focuses on ideal steps that just about anyone can do. While most of the people reading this article fall into the "programmer" category, it is possible for us to improve our interfaces by improving our design process.

People Have a Name
The first step is to paint a picture of who is going to use your software. If you are building a business application, it's likely numerous people will use the software. We can't account for everyone so it's important to group people together. Most of us already do this, but the most important thing we can do is to stop referring to them as "users." They are people. Instead give them a name, gender, age, picture, and a short story. Paint their picture.

This is not a new concept; it is commonly used in the marketing world, and known as a persona. With software, a persona is a fictitious person using our system. Don't confuse personas with UML actors. The concepts are similar, but different on a broader level. Use case actors help us understand how a person fits into the flow of the software, whereas personas help us decide why one solution is better than another.

For example, Sally is 16 years old and a high-school dropout. She left school because she just couldn't seem to pass her math classes. Now she works for McDonald's as a cashier, earning minimum wage. Even with only a few sentences we can paint a fairly dramatic picture of Sally, enough to help us rethink how the cash register software needs to work. McDonald's has a good understanding of Sally. For example, their cash registers do not require her to type in how much an item costs. Instead they have pictures of hamburgers, French fries, etc. But could they improve the cash register so Sally doesn't have to count the correct change? That may seem ludicrous to a programmer who does highly complex math every day, but remember Sally is not a mathematical genius.

Distinguish Tasks from Goals
When we're using software we're frequently completing tasks. Improving tasks does not immediately make software easy to use. For example, we don't go to Amazon.com just to enter our credit card information into their database. That's just a means to an end. Joe, an Amazon customer, uses Amazon.com to obtain a book to read. Reading the book is his goal, it is not a task. Reducing the tasks to achieve a goal immediately improves an interface. Amazon has done a good job by remembering Joe's information when he returns. Their one-click order system is the ultimate attempt at reducing tasks to achieve a goal.

Identify the Human Flow
After identifying the goals our personas are trying to reach, we want to define the human flow they will go through to get there. By human flow I mean the steps they take in day-to-day life. Some of the steps may involve your software, others may not. Each of these steps should have a date/time associated with it. Let's look at using a cellphone interface.

5:00 p.m.: Todd leaves his office to go home.
5:05 p.m.: While driving, Todd decides to call his wife to find out if he should pick up groceries for dinner.
5:08 p.m.: Todd hangs up.
5:15 p.m.: Todd drives to the store.
5:25 p.m.: Todd forgets all the items his wife asked for. He has to call her back to ask again.

Not all of the steps in the human flow involve the software. The human flow may leave out critical steps necessary for the software to work. Even so, the software flow should be based on the human flow. In the steps above, there are a few events that involved the cellphone. Understanding the human flow provides our user interface with the boundaries in which the interface needs to work. For example, can we improve making a phone call while driving a car?

Since Todd's eyes should be on the road and not on his phone, can we improve the audible interface for his phone? Since it's more likely he'll want to make a call while driving versus playing Tetris, there is little reason to include the games in the audible menu. How about helping him remember what was said during a conversation? Instead of calling his wife back and bothering her, couldn't the phone just record the conversation and play it back?

These boundaries may appear artificial at first, but if the personas defined accurately represent the real users they are based on "probable" issues, not "possible" issues. While it's possible to put a Ferrari engine in a station wagon and add some tractor wheels, it's probably not a good idea. How many soccer moms need to pick up their kids from soccer practice and plow a field, while doing 160 miles an hour? Our software should not attempt to solve every problem in the world. Instead we should focus on the probable issues and solve those. Personas help us identify these probable issues.

Only when we have identified why the people using our software are trying to accomplish certain goals can we effectively make decisions about how the user interface should be built. Personas provide us with a structure to improve our chances of making the correct decision about our software and its interface.

About Steve Nelson
Steve Nelson is a ColdFusion freelance consultant for SecretAgents, Inc. Steve invented the original Fusebox framework, which has become wildly successful. His company specializes in managing large teams of remote ColdFusion developers. Steve's Web site is www.secretagents.com.

Nat Papovich wrote: Bravo, Steve. One thing you might have mentioned is the benefits of building "wizards" in web applications. The user (a manager, for example) has a certain need like, "Add a staff member to the system and assign her to specific groups". Rather than noting in the user manual that you use the "Add user" form to add new users and you use the "Add user to groups" form to add existing users to groups, it is great to build a wizard which encompasses a few "actions" in your application, but to an end-user is really one single job. The "Add new staff member" link might produce a three-step wizard first accepting the user details, then the groups, then a final confirmation page. I find myself making wizards for many common tasks in a system, usually based on careful analysis of what the actual people using the system will use the system for.
read & respond »
CFDJ LATEST STORIES . . .
AJAX World – Personal Branding Checklist
This is a checklist of items you need for an all-encompassing personal branding strategy. Personal branding is the process of marketing and selling yourself as a brand in order to gain success in business. Personal branding is a continual process just as knowing yourself is a continual
3rd International Virtualization Conference & Expo: Themes & Topics
From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
What Is ColdFusion in the Age of Java?
As CFML developers start to learn Java and move into the realm of Spring and Hibernate, it is very important to stop and ask 'What Is ColdFusion?'. ColdFusion, since CFMX, has been a J2EE application running within a J2EE server (JRun, JBoss, Tomcat, Websphere, etc.). This is important
Opinion: Give ColdFusion Some Room to Breathe
My personal approach has become to to let ColdFusion do what it does best, and no more. No AJAX generation or any of that silly UI stuff. Leave that to the AJAX frameworks, or Flex, or whatever your UI is going to be on the front-end. That's what the UI tool was designed for, CF wasn't
Viewpoint: Not Every ColdFusion Developer Should Be A Flex Developer
I am going to go ahead and contend that although a good number of ColdFusion developers can grasp and understand Flex very well, there are also a good number of ColdFusion developers who have no business going anywhere near Flex. Why do I say this? I am a big fan of Flex. I use it dail
JavaOne 2008: Sun Talks Up its Late-to-the-Party AIR-Silverlight Rival
At Java One this week Sun has been selling its year -old-but-still-upcoming - and definitely late-to-the-party - Adobe AIR- and Microsoft Silverlight-competitive JavaFX Rich Client environment as a potential revenue-generator capable of putting ads on mobile applications and JavaFX Scri
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE