[Gridsphere-users] Usability 101

Wilfred Li wilfred at sdsc.edu
Fri Dec 22 09:26:24 PST 2006


Cool post! I'm sure we can all find something useful.

Regards,
 
Wilfred
 

	-----Original Message-----
	From: gridsphere-users-bounces at gridsphere.org 
	[mailto:gridsphere-users-bounces at gridsphere.org] On 
	Behalf Of Anurag Shankar
	Sent: Friday, December 22, 2006 6:54 AM
	To: GridSphere Users
	Subject: [Gridsphere-users] Usability 101
	
	Dear fellow Gridsphericals? Gridsphere-ites? 
	Gridspheroids? (sorry, can't decide which is best),
	
	I've been taking a look recently at usability (from a 
	complete novice's point of view). As a result, I now 
	have a brief document that I've put together to check 
	frequently during my portal projects. I am including it 
	below since Jason thinks it might be useful more 
	generally.  I hope he's right. 
	
	As always, feedback is always appreciated.
	
	Finally, have an excellent 
	Christmas/Hanukkah/Kwanzaa/Felicitations (take your
	pick) and a very Happy New Year. Have a great time 
	wherever you are and be sure to take time off to 
	decompress before starting the new year.
	
	Cheers,
	
	--Anurag
	
	--
	Anurag Shankar, Ph.D. <ashankar at indiana.edu> Dept. of 
	Astronomy & Univ. Information Technology  Services 
	Indiana University, 2711 E. 10th St., Bloomington, IN 47408
	Voice: +1.812.855.4981  Fax: +1.812.855.8299
	
	--------------------------------------------------------
	----------
	$Id: usability.txt,v 1.4 2006/12/22 14:36:49 ashankar Exp $
	
	
	Usability 101 for Developers
	December 2006
	
	[ Note: Web UI here means a portal, standalone web app, 
	etc., but I'll use the word portal in the text below. ]
	
	1. First, ask some key questions and be totally clear 
	on the why of it.
	
	- Why do a Web UI at all? 
	- Why should/would the user want to use this UI?
	- Is a Web UI superior to the tradidional 
	CLI*/shell/perl scripts? How? Why?
	- Does it help enable users to get the data/answers 
	they need *HERE* 
	      (i.e.  wherever they are) and *NOW* (i.e. quickly)? 
	- Would it make things more efficienct/transparent/easier?
	- Would it allow users to save time, perhaps by
	    - prepackaging repetitious tasks?
	    - the users' ability to create arbitrary workflows?
	    - a GUI being more natural to use than a CLI?
	
	(*CLI = Command Line Interface)
	
	2. Second, be devil's advocate and list possible 
	arguments against a Web UI.
	
	- JavaScript sucks (browser dependecies and such).
	- The Web/Java/HTTP is slow.
	- Using Javascript/AJAX and HTML is a very poor way to 
	create a UI.
	- The last time someone did a (nice) Web UI for this 
	crowd, it was used by 
	      exactly 1.5 poeple. Why would it be better this time?
	- We don't have a clue how to do a Web UI well (nor do we care).
	- We don't have time or resources to do it well. The 
	best we will succeed
	      at is to irritate the users.
	- Our Web server is too slow/unreliable/ancient/whatever.
	- The Web UI will be completely 
	unmaintainable/unscalable/one of, etc.
	- I wouldn't touch this project with a ten foot pole! 
	- There's already a product that does it well.
	- A Web UI further obfuscates the debugging process 
	that the user is used 
	      to (by hiding the back-end complexity) and make 
	the situation worse.
	- The only reason we are doing it is because it is 
	sexy. No one is really
	      going to use it, ever. 
	- etc.
	
	Weigh these pros and cons carefully to your 
	satisfaction before proceeding (if you are genuinely 
	serious about helping users).
	
	If you do decide to proceed, the following may be helpful.
	
	3. Avoid the following pitfalls.
	
	- Self delusions: "My own preferences and experiences 
	as a designer/developer are sufficient to design a 
	portal for real users". This will inevitably lead to 
	disaster and/or to a useless portal.
	
	- Plain out myths:
	    - You can educate the users.
	    - It's the user's fault.
	    - One size fits all.
	    - Fewer navigation click are better.
	    - Build it and they will come.
	    - People will pore over each page, reading your 
	finely crafted text, 
	        figuring out how things are organized, etc. The 
	reality is that 
	        people simply glance at a page, scan some text, 
	then click on the 
	        first link that catches their interest. They 
	notice nothing else.
	    - People will choose the best option on a Web page. 
	The reality is 
	        that they don't. They choose the first 
	reasonable option.
	    - People actually read instructions. The page must 
	be sufficiently self 
	        evident so that instructions are superfluous.
	
	- You make a lot of assumptions until proven otherwise, 
	for example:
	    - If a technology is simple to use, users will like it.
	    - We can anticipate why, when, under what 
	conditions, and how the user is
	        likely to interact with the UI.
	    - Users will feel that they are deriving a benefit 
	from using your UI.
	    - Costs of development won't exceed the benefits.
	
	- You are in trouble if *any* page on your portal makes 
	users think:
	    - Where am I?
	    - Where do I begin?
	    - Where did they put ____?
	    - How do I do ____?
	    - What are the most important things on this page?
	    - Why did they call it that?
	
	- Repeat after me:
	     - Users Hate Learning
	     - Users Hate Repeating
	     - Users Hate Waiting
	     - Users Hate Searching
	     - Users Hate Reading
	     - Users Hate Security Breaches
	     - Users Hate a Monotonous Look
	     - Users Hate Platform Restrictions
	     - Users Hate Rigid Functionality
	     - Users Hate Mistakes
	
	4. Consider the following carefully.
	
	General stuff:
	
	- What is it that the users want?
	- Can the user actually articulate what they want? If 
	not, how are you going 
	     to figure it out?
	- What do you think the users need?  Confirm that they 
	do indeed.
	- Where and under what conditions will users use the portal?
	- Who will use the portal? Faculty, graduate students, 
	undergraduates?
	- How will the portal be used?
	- What are the goals for the portal then?
	- What are the resources available, cost, etc.?
	
	Your User:
	
	- Who is the user? 
	- What is the user culture like? 
	- What are the user characteristics/types/level of 
	expertise? Are there 
	    multiple classes of users based on 
	knowledge/experience/skill?, etc.?)
	- What is the user's environment? (Windows/Mac/Linux?, 
	local help provided?,
	    etc. etc.)
	- What does the user fear the most?
	- What is the chief expectation of the user in this project?
	- What is the task generally?
	- What are the task components? Functions?
	- How should the user be allowed to invoke those functions?
	- How should we tell the users how to invoke the functions?
	- How do we help the users when things don't work?
	- What is the user's age?  (This will determine
	  - Information flow needs
	  - Font size
	  - Grapihcs necessities
	  - Help functionality features
	  - Data presentation )
	
	The User Environment:
	
	- Physical space
	
	Users map their physical space to the Web page they 
	have in front of us. The physical space consists of the 
	following components:
	
	* Objects - These act as clues that trigger thought 
	processes during
	  navigation.  (e.g. to a user, a chair is a chair no 
	matter where it is
	  placed.)  
	
	* Interrelationships - How objects are positioned 
	relative to one another.  
	  Recreating users' familiar environment or space is key.
	
	* Characteristics - To help recognize, classify, 
	distinguish from other
	  objects. Use color, shape, size, location, volume.
	
	* Location: Where the user is located and what is his 
	purpose in using the
	  portal at that location?
	
	- Cognitive space:
	
	Then there is the stuff that goes on inside the user's 
	head. This includes:
	
	* Thoughts -  These may be triggered by the physical 
	space (outside of the
	  portal).
	
	* Situations - When the situation requires a different 
	approach.  For example,
	  the need for quick access to information on the fly 
	to resolve a problem
	  that has cropped up unexpectedly.
	
	* User intentions/goals - How the environment can shape 
	goals/intentions and
	  how goals/intentions lead to specific web activity.
	
	* Information processing - Selective attention (user 
	ignoring sensory data/
	  messages/events to focus on specific info), 
	short-term memory (small
	  chunks are better, in short attention spans), 
	long-term memory.
	  
	The Web Environment:
	
	* Real world mapping - Users apply their real world 
	mental models to the Web.
	Use this insight to design the page.
	
	* Scenarios - Think of steps a user might take when 
	presented by a number of given scenarios and how the 
	user might approach each.
	
	* Simple vs complex environment - Simple does not 
	necessarily mean more usable. 
	Design a simple site if efficiency is the goal. 
	Complexity must be consistent with what the user 
	expects, i.e. not too simple, not too complex.
	  
	Web Page Design:
	
	* Postitioning - No scrolling on home page. Short home 
	page. Use top left of home page (& the top in general) 
	to convey the most important info. Tabular data should 
	be left justified. Don't use fixed width tables. Tables 
	> 1 page with same headings, important stuff on the 
	left (like instructions) as people read English left to 
	right. Put most important stuff in biggest font.
	
	* Aesthetics - Background shouldn't conflict with color 
	of links/content.
	Don't use fixed width fonts; use percentages so they 
	work for most browser window sizes.
	
	* Response Time - As quick as possible. If delay, give 
	the user feedback on what delay to expect, total page 
	content (text+graphics) should be less than 60KB,  
	graphics should be 25KB, each graphic less than 10KB 
	for 5 graphics or more.  Use 1"x2" thumbnails for 
	graphics. Provide text-only option as well. 
	Use no animation, no audio clips/multimedia/plug-ins, 
	use progressive redenring (text downloads before 
	graphics).  Use GIFs since they are smaller than 
	equivalant JPEGs.
	
	* Navigation 
	
	- Tasks - Tasks statement should contain all the info 
	needed to perform the task successfully. Show only 
	information the user actually needs to reach his or her goal.
	
	Provide a prominent "where do I start?" hint on the 
	home page or any other pages with tasks.
	
	The user should be able to reach his/her goal in a 
	minimum # of clicks.
	
	Facilitate user actions (tell users what to do and what 
	to expect) and provide unambiguous feedback when take 
	these actions.
	
	- Aids - Use links/buttons/contentlists/trails/keyword 
	searches as navigation aids.  Code information in less 
	than 6 colors. Be consistent - all links of one type 
	should have the same default color, underlining,  type, 
	font, etc.
	Use ALT entries for graphics.
	
	Place a link to the home page on each portal page. On 
	long pages, use subheadings. Every page should display 
	a title (within the page itself, not in the window 
	titlebar) and the right context. When entering data, 
	the user should be able to navigate away from page and 
	return to it easily (or at least save and be able to 
	retrieve the data entered), Captions should be 
	over/left of the entry field for column/row oriented entries. 
	
	Institute a "you are here" in the site hierarchy near 
	the top on each page.
	(Can use breadcrumbs.)
	
	When the user clicks on a link to navigate, the 
	resulting page title (again, the title within the page, 
	not in the window titlebar) should be the same (word by 
	word preferably) as the verbiage in the link the user 
	clicked on.
	
	Use navigation aids such as go back, redo this/that, etc.
	
	Use tabs since they are self-evident and map for the 
	user physical file folders to the Web page.
	
	Provide navigation buttons at the top/bottom both if possible.
	
	Provide a clear "Logout" button.
	
	- Speed - Minimize the # of keystrokes in data entry. 
	Provide default values for data entry available. Make 
	it obvious what is clickable on the page.
	
	- Persistence - There should be a persistent navigation 
	area, with site ID prominently displayed on the top 
	left + sections + a way home + a way to search + any 
	utilities you have. Should do this for each page except 
	home page and forms. This reassures the user that 
	he/she hasn't navigated out of your site. A cleer 
	tagline next to the site ID (such as "Moving People 
	Since 1880" next to the site ID "U-Haul Moving" or 
	something like that).
	
	- Transparency - Provide self-evident answers to 
	questions the user has at any moment, for example: What 
	(the h***) is this?  What can I do here?  What do they 
	have here?  Why am here and not somewhere else?  How do 
	I do ___? 
	(Do this for each page).
	
	- Continuity - If possible, provide a way for the user 
	to return to the same point in the Web session in case 
	he/she needs to end the session and restart elsewhere.  
	
	- Help - FAQ/contact info should be prominently displayed.
	
	- Don'ts- Avoid pull-down menu's if possible.  Preserve 
	the home page from promotional overload (or any kind of 
	info overload).
	
	Absolutely no flashing stuff on pages where reading is 
	necessary.
	
	Don't change terminology from page to page. This is 
	extremely confusing to people.
	
	- Coherence - Amount/placement of content. Preserve as 
	much of white space on the page as possible (for clear 
	delineation between items). Use unambiguous labels for 
	different chunks of info. Use fonts that enhance text clarity.
	
	- Quality -
	
	  - Provide personalization
	  - As for feedback on each page
	  - Frequently update content with date of update 
	clearly visible
	  - Remove/fix dangling links frequently
	  - Indicate "new" for new info
	  - Site pages easy to print
	  - Incorporate new technology
	
	5. Design process
	
	- Consider human factors/design guidelines input early 
	in the design.
	- Iterate on design.
	- Test continuously.
	
	6. (Poor Man's) Usability Testing
	
	- Testing one user is 100% better than testing none.
	- Testing one user early is better than 50 near the end.
	- The importance of recruiting representative users is 
	overrated. Users who
	    are "like" your users is good enough; just test often.
	- Testing doesn't prove or disprove a thing. It is to 
	inform your judgment.
	- Testing is iterative.
	- Nothing beats a live audience reaction.
	- You don't need a full blown usability lab to test.
	- Use 3-4 users per test.
	- Grab anybody who uses the web. You're in trouble if 
	your 13 yr old 
	    son/daughter can't navigate the site or perform the 
	actions you want the
	    users to perform.
	- Don't be embarrassed to ask friends and neighbors.
	- Offer reasonable incentives.
	- Keep the invitation simple.
	- Avoid at all discussing the site with the user beforehand.
	- Test in any office or conference room.
	- Find a reasonably patient human being to act as a 
	usability professional.
	- Plan ahead what you will show to the users.
	- Run small tests throughout the devleopment process.
	- Spend one morning a month doing usability testing.
	- Debrief the development team after each test the same 
	day (preferably at
	     9 if you did the test at 8 or 8:30; definitely before 1!)
	- Make small changes with big results ("head slappers" 
	or "can't believe I
	     didn't think of that?") right away.
	- Forget written reports.
	- Use the testing script at www.sensible.com and edit 
	for your own case.
	
	Common Wisdom:
	- It's not a good idea to design a site for only your 
	target audience
	    (unless it is a *very* specialized audience)..
	- Experts are rarely insulted by something that is 
	clear enough for beginners.
	    In fact, they often appreciate it and think "Wow, 
	someone really thought
	    about this!"..
	- If the target audience is split between clearly 
	defined but divergent groups,
	    test each group at least once
	
	Of course, for highly specialized users, use the right 
	kind of user with the right domain expertise.
	
	7. Design Goals
	
	With everyone being so busy and all, the user is coming 
	to the portal with the attitude "don't make me think, 
	pleeeaaaase!".  Here is then your design goal (tough, eh?).
	
	Here's some more stuff from a book (that sounds a lot 
	more professional), but I think all this is already covered.
	
	- Designing for Context: Consider the relationship 
	between the artifact's core elements and the elements 
	that surround the core.
	
	- Designing for User experience: Efficiency as measured 
	in times and actions, not necessarily user 
	satisfaction. Questions to answer:
	  - Did the users perform tasks as they expected to?
	  - Did they achieve their goals?
	  - How did they feel during the interaction?
	  - Were their expectations met?
	
	8. Misc
	
	Think of things this way:
	- Every user entering the site starts with a reservoir 
	of goodwill.
	- Each click depletes this goodwill a bit (because you 
	are having the user
	     do something - like move a finger).
	- Each problem depletes this reservoir even faster.
	- The reservoir is idiosyncratic, situational, can be 
	refilled, but a 
	     single mistake can also empty it.
	
	Here's some more do's and don'ts from one of the books:
	
	Do's
	
	- Know the main things user wants to do and make them 
	obvious/easy.
	- Tell user what he/she wants to know.
	- Save the user steps wherever possible.
	- Put effort into the site.
	- Know what questions users are likely to come up and 
	answer them (FAQs).
	- Provide creature comforts, like printer-friendly pages.
	- Make it easy to recover from errors.
	- When in doubt, apologize.
	
	Don'ts
	
	- Don't hide the info the user wants.
	- Don't punish the user for not doing things your way 
	(e.g. asking them to 
	    put dashes when they enter their SSN; they 
	shouldn't have to care. You
	    deal with it programmatically. And, did I say that 
	you shouldn't be asking
	    their SSN anway?).
	- Don't ask for info you don't really need.
	- Don't lie: "Your call is important to us", Yea, right!
	- Don't put a puzzle in the user's way.
	- Don't make the site look amateurish. Even 11 year 
	olds can design a site
	    that looks like it was designed by a fancy web 
	designer these days.
	
	9. Bibliography
	
	1. "Shaping Web Usability: Interaction Design in 
	Context", 2002, Allbert N. 
	Badre, Addison Wesley Professional.
	
	2. "Customer-Centered Design: A New Approach to Web 
	Usability", 2002, Kreta Chandler, Karen Hyatt, Prentice Hall.
	
	3. "Designing Web Usability", 1999, Jakob Nielsen, New Riders.
	
	4. "Don't Make Me Think!: A Common Sense Approach to 
	Web Usability", 2nd Edition, 2005, Steve Krug, New 
	Riders. [Excellent book]
	
	**5. "Usability Testing at a Discount", 1989, Jakob 
	Nielsen, www.useit.com.
	
	6. "Camtasia" screen reader is recommended.
	
	7. "Information Architecture for the Web", 2002, Louis 
	Rosenfeld and Peter Morville, O'Reilly, 2nd Edition.
	
	8. "Source of Power: How Pople Make Decisions", 1999, 
	Gary Klein, MIT Press.
	
	9. "Web Application Design Handbook: Best Practices for 
	Web-Based Software", 2004, Susan Fowler and Victor 
	Stanwick, Morgan Kaufmann.
	
	10. http://www.sitepoint.com/article/architecture-usable
	
	plus the essence of a whole lot of random GooglyGook.
	
	[ Plese email <ashankar at indiana.edu> to report 
	errors/provide critique or to provide useful info that 
	we can add here. ] 
	_______________________________________________
	Gridsphere-users mailing list
	Gridsphere-users at gridsphere.org
	http://lists.gridsphere.org/mailman/listinfo/gridsphere-users
	



More information about the Gridsphere-users mailing list