<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Solid State UX &#187; User &amp; Design Research</title>
	<atom:link href="http://www.solidstateux.com/category/user-design-research/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solidstateux.com</link>
	<description>The art and science of interaction design.</description>
	<lastBuildDate>Wed, 07 Jul 2010 16:08:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
  <link>http://www.solidstateux.com</link>
  <url>http://www.solidstateux.com//wp-includes/favicon.ico</url>
  <title>Solid State UX</title>
</image>
		<item>
		<title>Validity and Think-Aloud Protocols</title>
		<link>http://www.solidstateux.com/user-design-research/validity-and-think-aloud-protocols/</link>
		<comments>http://www.solidstateux.com/user-design-research/validity-and-think-aloud-protocols/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 17:46:32 +0000</pubDate>
		<dc:creator>Todd Toler</dc:creator>
				<category><![CDATA[User & Design Research]]></category>
		<category><![CDATA[cognitive science]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.solidstateux.com/?p=579</guid>
		<description><![CDATA[When usability research counts, and when it doesn't...]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-582" href="http://www.solidstateux.com/user-design-research/validity-and-think-aloud-protocols/attachment/protocol_analysis/"><img class="alignleft size-full wp-image-582" title="protocol_analysis" src="http://www.solidstateux.com/wp-content/uploads/2009/08/protocol_analysis.JPG" alt="protocol_analysis" width="185" height="270" /></a>First adapted from the work of experimental psychologists &#8211; most notably, Ericsson and Simon&#8217;s landmark 1993 work <a id="aptureLink_muCr8YhAHH" href="http://search.barnesandnoble.com/Protocol-Analysis-Revised-Edition/K-Anders-Ericsson/e/9780262550239">Protocol Analysis</a>, &#8211; think-aloud protocols are the de-facto standard for usability research in both the lab and field settings.  If you&#8217;ve seen or given a usability test before then you know what this is, it&#8217;s when the moderator tells the respondent to use a website or other application and then says &#8220;Hey, tell me what you are thinking.&#8221;   Jakob Nielsen and other HCI researchers were quick to trump the merits of this technique for uncovering usability problems with sample sizes as small as four people.  Why is the technique so effective?  Well, it&#8217;s validity stems largely from the fact that it&#8217;s a <em>direct measure</em> of what&#8217;s happening in a subject&#8217;s short-term memory.   Other examples of direct measures of human cognition are hard to find&#8230; in fact, the two others that are primarily used are response tests (e.g. reaction time indicators) and MRI brain scans!   So to have a direct measure that is cheap and easy to administer and also provides qualitative insights into the user experience is powerful indeed!  But if the interview is poorly moderated, or descends into a Q &amp; A session between moderator and respondent, then this validity flies out the window&#8230; so let&#8217;s look at the issue more closely.</p>
<p><span id="more-579"></span></p>
<input id="gwProxy" type="hidden" />
<p>If a subject is steadily verbalizing while performing a task (e.g. concurrent verbalization), they are assumed to be speaking from short term memory.  Dumas &amp; Redish (1993) conveniently summarize three levels of think-aloud protocols commonly referred to by HCI researchers:  Level 1 verbalizations:  where the emphasis is on pure thoughts with no or minimal explanations; Level 2 verbalizations:  same, but when the participant is dealing with non-verbal information, like shapes, which must be internally “coded” in order to be articulated verbally, and Level 3 verbalizations:  or “thinking plus explanations.”  The latter are also referred to as <em>retrospective reports</em>, because the respondent is recapping and opining about what they actually <em>did</em> earlier.  Dumas summarizes the distinction between Level 3 and the other levels as the stage where the researchers are “no longer getting a read out of short-term memory&#8230; rather it is the interpretation of the process they are using or the reasons they have selected a strategy.”  Retrospective reports are not useless to the user researcher, in fact they are necessary to clarify a respondent&#8217;s statements and actions, but they are far less valid.</p>
<p>This leads us to the question of active vs. inactive moderation.  In an inactive moderation scenario, the emphasis is on experimental control and creating a unified experience for all test subjects.  This is the old-school style, where the researchers stand behind the glass and the respondent sits in the room by themselves talking out loud like a crazy person.  Participants, faced with the unnatural task of constant verbalization, are typically “coached” on how to deliver a think-aloud protocol.  This often takes the form of a warm-up exercise where the participant and experimenter practice thinking aloud with non-related stimuli, preferably a simple game such as tic-tac-toe (in order to place emphasis on cognitive strategy.)  During the actual experiment, the moderator prompts only when the participant ceases to verbalize: “Please keep talking,&#8221; they say.  And that&#8217;s all they say!</p>
<p>In a high moderator intervention scenario, the experimenter employs <em>probing questions</em> to focus the participant’s attention on particular features or to elicit and clarify subjective explanations of their behavior.  Moderators are skilled in asking neutral, non-leading questions to minimize bias.  In addition, active listening techniques are employed to emulate the clinician’s <em>empathic stance</em>. This implies paraphrasing of a speaker’s comments to ensure them that they have been listened to, noted, and understood as well as other verbal and non-verbal forms of caring, non-judgmental acceptance.  Mike Kuniavsky, whose <a id="aptureLink_YeS3N8KBkx" href="http://www.amazon.com/gp/product/B0028085GQ">work</a> is mentioned frequently in these pages,  lays out the guidelines for “non-directed” interviewing:  <em>questions should be concentrated on immediate experience, nonjudgmental, focused on a single topic, open-ended, and non-binary (e.g. yes-no, true-false)</em>.</p>
<p>In a quick look at the literature, you&#8217;ll see that Taylor and Dionne (2000) suggest that probes are best deployed for collection and verification of data in retrospective reports, and that they have a detrimental impact on validity if used during concurrent think-aloud protocols.  Preece (1994) suggests that the role of the moderator on the participant is both interruptive and imposes additional cognitive load.  Nielsen (1993) is pragmatic on the subject, suggesting the moderator intervenes as little as possible, yet directing the flow and direction of the interview to maximize the number of usability issues found.   Nielsen is the spiritual father of the commercial usability field, so it&#8217;s no surprise that most usability is performed with this degree of pragmatism.  I think it was Jared Spool who once commented that you can only watch participants avoiding clicking on the red button so many times before you are compelled to intervene and ask <em>why</em>.   Plus, most clients of usability research do not share the academic&#8217;s interest in validity.  They want enough validity to feel good about the process and the results, but ultimately they want their specific questions answered for a reasonable amount of time and expense.  In Nielsen et. al.’s (2002) interpretation, <em>The human is a psychological being engaged in a psychological interaction, which cannot be reduced to that which is concurrently verbalized.</em></p>
<p>Some usability researchers, characterized by Whiteside, et. al. (1993), have also posited that observing a user’s behavior is not enough to understand what is happening in terms of higher order thinking and cognitive strategy.  If you set up <em>a priori</em> conditions then you are bounding yourself to learning only what falls within those conditions.  In this view, subjective experience is the most comprehensive criterion for understanding usability.  Concerns of generalizability are side-stepped: the goal is to obtain rich, experiential data.  Since specific questions are the only effective way to elicit and clarify mental models, the researcher must come to terms with at least a partially subjectivist stance. (Tamler, 2001)  This approach values reflexivity:  the subject is full participant in the study, leading the research into relevant areas for exploration as well giving the subject the ability to respond to the researchers interpretations. It is not a search for “truth,” per se, as a philosophical underpinning of this method of inquiry.  The assumption is that an expansion of perspectives leads to the exposure of more aspects of learning.</p>
<p>Here&#8217;s some References (I know, for a blog post, it&#8217;s over the top&#8230; but this stuff&#8217;s important!)</p>
<p>DUMAS, J.S. (2001) “Usability Testing Methods:  Think-Aloud Protocols,” in <em>Design by People For People:  Essays on Usability</em>, UPA,  pp 119-129</p>
<p>DUMAS, J.S. &amp; REDISH, J.C., (1993)  <em>A Practical Guide to Usability Testing</em>.  Norwood, NJ, Ablex Publishing Corp.</p>
<p>ERICSSON, K.A. &amp; SIMON, H.A. (1984, 1993) <em>Protocol analysis:  Verbal reports as data</em> (Rev. ed).  Cambridge, MA:  MIT Press</p>
<p>KUNIAVSKY, M. (2003)  <em>Observing the User Experience: A Practitioner’s Guide to User Research</em>,  San Francisco: Morgan Kaufmann Publishers, Inc.</p>
<p>NIELSEN, J., (1993) <em>Usability Engineering</em>.  Chestnut Hill, MA:  Academic Press, Inc.</p>
<p>NIELSEN, J., CLEMMENSEN, T., &amp; YSSING, C., (2002)  “Getting access to what goes on in people’s heads? – Reflections on the think-aloud technique”, paper presented to NordiCHI, Arhus, Denmark, October 19-23</p>
<p>PREECE, J. (1994), <em>Human-Computer Interaction</em>, Addison-Wesley, England</p>
<p>TAMLER, H. (2001) “How (Much) to Intervene in a Usability Testing Session,”  in <em>Design by People For People:  Essays on Usability</em>, UPA,  pp 165-171</p>
<p>WHITESIDE, J., BENNETT., J.L., &amp; HOLTZBLATT, K., (1988)  “Usability Engineering: Our Experience and Evolution,” in <em>Handbook of Human Computer Interaction</em>; edited by Helander, M.  New York, NY:  Elsevier Science Publishers</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://www.solidstateux.com/user-design-research/validity-and-think-aloud-protocols/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>10 Focus Group Moderation Tips</title>
		<link>http://www.solidstateux.com/user-design-research/10-focus-group-moderation-tips/</link>
		<comments>http://www.solidstateux.com/user-design-research/10-focus-group-moderation-tips/#comments</comments>
		<pubDate>Tue, 04 Aug 2009 01:20:22 +0000</pubDate>
		<dc:creator>Todd Toler</dc:creator>
				<category><![CDATA[User & Design Research]]></category>
		<category><![CDATA[focus groups]]></category>

		<guid isPermaLink="false">http://www.solidstateux.com/?p=571</guid>
		<description><![CDATA[Focus groups are probably the most difficult moderating challenge.  And I know this because I was terrible at conducting them until I learned a few tricks&#8230;
1) POLL the room frequently.  Recap (or let the respondent recap) and then ask the room to raise their hands for who agrees.  For those who disagree, ask [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_574" class="wp-caption alignleft" style="width: 291px"><a href="http://www.flickr.com/photos/curiouslee/"><img class="size-full wp-image-574" title="focus" src="http://www.solidstateux.com/wp-content/uploads/2009/08/focus.png" alt="Photo Credit: curiouslee" width="281" height="226" /></a><p class="wp-caption-text">Photo Credit: curiouslee</p></div>
<p>Focus groups are probably the most difficult moderating challenge.  And I know this because I was terrible at conducting them until I learned a few tricks&#8230;</p>
<p><span id="more-571"></span>1) POLL the room frequently.  Recap (or let the respondent recap) and then ask the room to raise their hands for who agrees.  For those who disagree, ask them to state why?  Don&#8217;t forget, observers usually want to understand what the <em>group</em> thinks about a certain question, and polling delivers.</p>
<p>2) ASK FOR COUNTERARGUMENTS.   Control for ‘groupthink’ by asking “C&#8217;mon, Doesn&#8217;t anybody want to argue the opposite point?”</p>
<p>3) GO AROUND THE TABLE every so often.  Periodically go around the table letting each person answer the question in turn.  This will distribute the talking around the room, allow you to control the flow, and respondents will give shorter answers if they realize everyone needs to chime in on a particular question.</p>
<p>4) MINIMAL YES/NO QUESTIONS.  Try to ask open ended questions, not ones that are easily confirmed or denied.  (e.g. Not “Does this meet your needs?”  but “Tell me how you would use this.”)</p>
<p>5) NO LEADING QUESTIONS.   Moderating 101.  But still the hardest thing to get right unless you are a pro.  (e.g. Not “Does this look busy?”  but “How do you feel about the amount of information on the screen?”)</p>
<p>6) DON’T FEEL YOU NEED TO ANSWER THEIR QUESTIONS.  Remember, you&#8217;re from planet Mars.  Say.  “I don’t know.  How do YOU think it works?”</p>
<p>7) FUNNEL OF VAGUENESS.  Start broad (“ What is going on here?”)  Gradually get more specific (“So is “Pizza Master” the right term for this sort of thing?”)</p>
<p>8) SHUT DOWN HEAVY TALKERS by not making eye contact.  Off-topic or overly in-depth comments get the retort “That’s Another Focus Group.”  Call on quiet respondents by name and control the flow.</p>
<p>9) KEEP EVERYONE FOCUSED ON THE STIMULI, NOT SPEAKING IN THE ABSTRACT    Keep reminding them to tell you how they would improve things on the screen, page, etc., and ask them to imagine they are using it.</p>
<p>10) KEEP SOME SUGAR AND CAFFEINE READY   Especially for evening groups, folks get tired.  If a group exhibits signs of low energy, bust out the Mini-Snickers, the Mint Milanos, and the Diet Coke.</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://www.solidstateux.com/user-design-research/10-focus-group-moderation-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Practical Tips for Fielding Design-related Ethnography</title>
		<link>http://www.solidstateux.com/user-design-research/practical-tips-for-fielding-design-related-ethnography/</link>
		<comments>http://www.solidstateux.com/user-design-research/practical-tips-for-fielding-design-related-ethnography/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 16:13:01 +0000</pubDate>
		<dc:creator>Todd Toler</dc:creator>
				<category><![CDATA[UX-Driven Company]]></category>
		<category><![CDATA[User & Design Research]]></category>
		<category><![CDATA[contextual inquiry]]></category>
		<category><![CDATA[ethnography]]></category>
		<category><![CDATA[wiley]]></category>

		<guid isPermaLink="false">http://www.solidstateux.com/?p=518</guid>
		<description><![CDATA[It&#8217;s been a great week in the field conducting ethnographic interviews with veterinarians and vet techs.  Mostly we&#8217;ve been in Manhattan, where food storage in the animal hospitals is a major issue.  We&#8217;ve seen bags of prescription chow stacked in hallways and offices, hidden in unused cages, stacked on surgical operating tables and x-ray equipment, [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_524" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-524" title="SS_P1020130" src="http://www.solidstateux.com/wp-content/uploads/2009/08/SS_P1020130-300x225.jpg" alt="Ethnographic Insight: Manhattan Vets Store Their Extra Prescription Pet Food Where They Can" width="300" height="225" /><p class="wp-caption-text">Ethnographic Insight: Manhattan Vets Store Their Extra Prescription Pet Food Where They Can</p></div>
<p>It&#8217;s been a great week in the field conducting ethnographic interviews with veterinarians and vet techs.  Mostly we&#8217;ve been in Manhattan, where food storage in the animal hospitals is a major issue.  We&#8217;ve seen bags of prescription chow stacked in hallways and offices, hidden in unused cages, stacked on surgical operating tables and x-ray equipment, and almost always taking over the waiting rooms and foyers of the client greeting area.  Someone should devise a drop-shipping or home delivery scheme wherein vets can earn their margins re-selling the supplies but don&#8217;t have to receive and store the inventory.</p>
<p>I doubt this idea will be used by my employer, which for this job is our scientific, technical, and medical publishing division, Wiley-Blackwell.   I&#8217;m lucky to work for a company that is committed to understanding its customers with this kind of research before embarking on a product idea.  My favorite study design of late for the early, product discovery phase of user research is to do 10-12 remote <a id="aptureLink_HxCjGnEFW9" href="http://en.wikipedia.org/wiki/Contextual%20inquiry">contextual inquiry</a> interviews via phone and web conferencing software, followed up by 5-6 in-home or in-office ethnographic visits.   It&#8217;s a large enough of a sample to cover a couple of key audience segments and really learn their unmet needs, but still quite cost effective.  And even just a few visits out to a respondent&#8217;s real environment crystallizes the findings and brings the research to life.  We&#8217;ve refined the mechanics of fielding a study like this without breaking the bank, so let me share a few pointers with you.</p>
<h3><span id="more-518"></span>Tip 1 &#8211; Skip The Video</h3>
<p>Getting an edited video as an end result of ethnographic research is great &#8211; it&#8217;s like having an entertaining and informative documentary movie of the customer&#8217;s behavior.  But unfortunately it costs about the same as making a feature length documentary.  The editing time is the deal-breaker here.  You return from the field with a minimum of two to four hours of source footage for every respondent, which becomes two to four <em>minutes</em> of finished video in your report.   Getting from hours to minutes requires multiple passes at sequencing and culling the clips &#8211; moving from the &#8217;select reel,&#8217; to the &#8216;rough cut,&#8217; to the &#8216;final cut&#8217; &#8211; with multiple client and research team review milestones at each phase.   The media management alone (e.g. screening, logging, digitizing, and compressing clips) requires an experienced video editor to be anything less than overwhelming, so this kind of research is virtually always outsourced to specialist market research firms.  My advice &#8211; skip the video and bring only a portable DAT recorder and a small digital camera along with you.</p>
<div id="attachment_548" class="wp-caption alignright" style="width: 304px"><a href="http://www.amazon.com/Olympus-DS-40-Digital-Voice-Recorder/dp/B000MVBHRW/ref=sr_1_1?ie=UTF8&amp;s=electronics&amp;qid=1253895491&amp;sr=8-1"><img class="size-medium wp-image-548" title="DS-40" src="http://www.solidstateux.com/wp-content/uploads/2009/08/DS-401-294x300.gif" alt="Olympus DS-40 DAT Recorder" width="294" height="300" /></a><p class="wp-caption-text">Olympus DS-40 DAT Recorder</p></div>
<p>I love my Olympus DS-40 which I use with their ME-15 lavalier microphone (purchased separately).  This recording rig cost less than $150.   I press record, clip the mic to respondents lapel, drop the recorder into their pocket, and forget about it.  Then I use my point-and-shoot digital camera loaded up with a huge SD card and take photos of <em>everything &#8211; </em>including any screens on the computer we might look at.  The audio and pictures can even be combined in the final PowerPoint report for an experience that&#8217;s not that far from watching a video.   To pull this off, use transcripts of the audio recordings to identify clips you want to use in your report and have the transcription service pull the clips for you once you&#8217;ve identified what you want to use.  Transcripts are expensive, but transcribing a whole research study of 6-10 respondents is cheaper than <em>one</em> respondent&#8217;s worth of outsourced professional ethnography with video.</p>
<h3>Tip 2 &#8211; Hire a Good Recruiting Firm</h3>
<p>Don&#8217;t even think about doing your own recruiting, unless that&#8217;s your business.  Even if you have your own customer lists, turn them over to the recruiting service.   Finding, contacting, scheduling, and confirming qualified respondents for a user study requires constant attention and will become your main job for the 2-3 weeks before the research dates if you try and do it yourself.   Then when the study is over, you will be busy mailing out incentive checks.   Why not sit back and get daily updated spreadsheets of scheduled respondents instead?  Good recruiting firms will also help you write your screening questionairre, advise on the liklihood of finding who you are looking for, handle all participant communication including confirmation emails, reminder calls, etc., and disburse incentives.    Different firms operate in different regions, so it will require some legwork to find a good firm that covers the market where you are fielding your study.  Whenever possible, I try and use the amazingly responsive and organized folks at <a href="http://www.focusfwd.com/">Focus Forward</a>.  Or if you are using a full-service research firm like <a href="http://www.sachsinsights.com/">Sachs Insights</a> or <a href="http://www.catalystnyc.com/">Catalyst Group Design</a> (in NYC) or <a href="http://www.serco.com/experiencelab/">Serco</a> (in London) you don&#8217;t need to worry about this.</p>
<h3>Tip 3 &#8211; Ask for The Tour</h3>
<p>Don&#8217;t take the trouble to visit a respondent in their own environment and then have an interview you could have had on the phone!   For in-home or in-office interviews I structure the discussion guide in a slightly different way than I would for an in-lab interview.  The key difference is that 15 minutes into the visit, after I&#8217;ve warmed up the respondent with a little chit chat and background info, I say &#8220;Hey, can you take us on a tour?&#8221;  This tour <em>become</em>s the rest of the interview.   Start pointing at things, asking them to open cupboards and drawers, explaining as they go.  Write observation notes into your guide so you remember what sorts of things you should be looking for.  I&#8217;m usually interested in how things are organized and setup&#8230; what sorts of things wind up out on a table or desk vs. buried in a drawer?  How do they have their browser favorites folders set- up?  What sorts of ad-hoc customizing have they done to support their workflow? etc.   This may not be the fly-on-the-wall method of an anthropologist, but we&#8217;ve got a limited amount of time here and need to learn what we need to learn, so it&#8217;s time to force the agenda.</p>
<h3>Tip 4 &#8211; Bring along a Prototype</h3>
<div id="attachment_553" class="wp-caption alignleft" style="width: 283px"><img class="size-full wp-image-553" title="messy_desk" src="http://www.solidstateux.com/wp-content/uploads/2009/08/messy_desk.jpg" alt="Designs Always Feel Different Out in the Field" width="273" height="279" /><p class="wp-caption-text">Designs Always Feel Different Out in the Field</p></div>
<p>Theoretically, the design minded ethnographer should go into the field with few assumptions about what the final product will look like.  The main goal of any contextual phase of user research is to wind up with a good sense of the audience&#8217;s workflow and a list of their unmet needs.  Only after uncovering the customer&#8217;s unmet needs should the true product brainstorming begin.   But the reality is that we rarely have the time or budget for multiple rounds of discovery research.   If  we&#8217;re lucky, we&#8217;ll get the opportunity to get our ideas in front of customers once or twice before we have to commit to building something.   I like to bring concepts into the field.  If it&#8217;s for a website, which my work almost always is, I like to see mock-ups on the respondents&#8217; real computer in their real environment and get them to talk about them.   What looks viable from the desk in our offices can be seen in an entirely different light in the field.     Load your sketches or design mock-ups on an extranet and access them from the respondent&#8217;s computer in the field.  If you&#8217;re interested in watching them react to real websites, create bookmarks on Delicious so you can find them quickly when you need them.</p>
<h3>Tip 5 &#8211; Be Reflexive</h3>
<p>The practical ethnographer still must be an effective and ethical ethnographer.   Most important of all is to exercise reflexivity, which for the field researcher, translates into the mental state of being aware of your own presence and impact on the environment that you are observing.   If there is a super star in the world of user anthropology, it is certainly <a href="http://www.nytimes.com/2008/04/13/magazine/13anthropology-t.html?pagewanted=1&amp;_r=1">Jan Chipchase</a> &#8211; who vagabonds the world on behalf of Nokia.   Having recently heard Jan speak, I was impressed by his reflexive stance and sensitivity to his surroundings when he works in the field.   For instance, he always stays in the same places his respondents live (which for Jan, who works in the developing world extensively, is really saying something) not the Four Seasons across town.  I&#8217;m also pretty sure he doesn&#8217;t show up at the respondents&#8217; homes with his iced grande frappacino and his Blackberry.   I recommend Mitch Duneier&#8217;s published ethnographic study of the Greenwich Village homeless street vendors, <a id="aptureLink_AiZO3is3Sf" href="http://www.amazon.com/gp/product/0374263558">Sidewalk</a>, to learn more about ethnographic field methods.  The appendices of this book alone are invaluable insights into how a truly reflexive researcher works.</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
<p><span id="leoHighlights_iframe_modal_span_container"> </span></p>
<div id="leoHighlights_iframe_modal_div_container" style="border: 1px solid black; position: absolute; visibility: hidden; display: none; width: 394px; height: 40px; z-index: 32768; background-color: white;" onmouseover="leoHighlightsHandleIFrameMouseOver();" onmouseout="leoHighlightsHandleIFrameMouseOut();">
<div id="leo_iFrame_closebar" style="position: absolute; top: 0px; left: 0px; width: 394px; height: 40px; z-index: 32768; background-image: url(chrome://shim/content/highlightsFilter-1/header.gif);"><a href="javascript: leoHighlightsIFrameClose();"></a></div>
</div>
<p><script type="text/javascript">// <![CDATA[
   createInlineScriptElement("var%20LEO_HIGHLIGHTS_DEBUG%20%3D%20true%3B%0Avar%20LEO_HIGHLIGHTS_DEBUG_POS%20%3D%20false%3B%0Avar%20LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT%20%3D%20300%3B%0Avar%20LEO_HIGHLIGHTS_MAX_HIGHLIGHTS%20%3D%20200%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_ID%20%3D%20%22leoHighlights_iframe%22%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_DIV_ID%20%3D%20%22leoHighlights_iframe_modal_div_container%22%3B%0Avar%20LEO_HIGHLIGHTS_SHOW_DELAY_MS%20%3D%20300%3B%0Avar%20LEO_HIGHLIGHTS_HIDE_DELAY_MS%20%3D%20750%3B%0Avar%20LEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT%20%3D%20%22transparent%20none%20repeat%20scroll%200%25%200%25%22%3B%0Avar%20LEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER%20%3D%20%20%20%22rgb%28245%2C245%2C0%29%20none%20repeat%20scroll%200%25%200%25%22%3B%0Avar%20_leoHighlightsPrevElem%20%3D%20null%3B%0A%0A/**%0A%20*%20General%20method%20used%20to%20debug%20exceptions%0A%20*%20%0A%20*%20@param%20location%0A%20*%20@param%20e%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsReportExeception%28location%2Ce%29%0A%7B%0A%20%20%20if%28LEO_HIGHLIGHTS_DEBUG%29%0A%20%20%20%7B%0A%20%20%20%20%20%20alert%28%22EXCEPTION%3A%20%22+location+%22%3A%20%22+e+%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%5Ct%22+e.name+%22%5Cn%5Ct%22+%28e.number%260xFFFF%29+%22%5Cn%5Ct%22+e.description%29%3B%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20is%20a%20dimensions%20object%0A%20*%20%0A%20*%20@param%20width%0A%20*%20@param%20height%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsDimension%28width%2Cheight%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.width%3Dwidth%3B%0A%20%20%20%09this.height%3Dheight%3B%0A%20%20%20%09this.toString%3Dfunction%28%29%20%7B%20return%20%28%22%28%22+this.width+%22%2C%22+this.height+%22%29%22%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsDimension%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20is%20a%20Position%20object%0A%20*%20%0A%20*%20@param%20x%0A%20*%20@param%20y%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsPosition%28x%2Cy%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.x%3Dx%3B%0A%20%20%20%09this.y%3Dy%3B%0A%20%20%20%09this.toString%3Dfunction%28%29%20%7B%20return%20%28%22%28%22+this.x+%22%2C%22+this.y+%22%29%22%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsPosition%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0Avar%20LEO_HIGHLIGHTS_ADJUSTMENT%20%3D%20new%20LeoHighlightsPosition%283%2C3%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_HOVER_SIZE%20%3D%20new%20LeoHighlightsDimension%28394%2C236%29%3B%0Avar%20LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE%20%3D%20new%20LeoHighlightsDimension%28394%2C512%29%3B%0Avar%20LEO_HIGHLIGHTS_CLOSE_BAR_HEIGHT%20%3D%2040%3B%0Avar%20LEO_HIGHLIGHTS_DIV_HOVER_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_HOVER_SIZE.width%2C%0A%09%09%09LEO_HIGHLIGHTS_IFRAME_HOVER_SIZE.height+LEO_HIGHLIGHTS_CLOSE_BAR_HEIGHT%29%3B%0Avar%20LEO_HIGHLIGHTS_DIV_CLICK_SIZE%20%3D%20new%20LeoHighlightsDimension%28LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE.width%2C%0A%09%09LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE.height+LEO_HIGHLIGHTS_CLOSE_BAR_HEIGHT%29%3B%0A%0A%0A/**%0A%20*%20Sets%20the%20size%20of%20the%20passed%20in%20element%0A%20*%20%0A%20*%20@param%20elem%0A%20*%20@param%20dim%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSetSize%28elem%2Cdim%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09//%20Set%20the%20popup%20location%0A%20%20%20%09elem.style.width%20%3D%20dim.width%20+%20%22px%22%3B%0A%20%20%20%09if%28elem.width%29%0A%20%20%20%09%09elem.width%3Ddim.width%3B%0A%20%20%20%09elem.style.height%20%20%3D%20dim.height%20+%20%22px%22%3B%0A%20%20%20%09if%28elem.height%29%0A%20%20%20%09%09elem.height%3Ddim.height%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsSetSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20can%20be%20used%20for%20a%20simple%20one%20argument%20callback%0A%20*%0A%20*%20@param%20callName%0A%20*%20@param%20argName%0A%20*%20@param%20argVal%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsSimpleGwCallBack%28callName%2CargName%2C%20argVal%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20if%28argName%29%0A%20%20%20%20%20%20%09gwObj.addParam%28argName%2CargVal%29%3B%0A%20%20%20%20%20%20gwObj.callName%28callName%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsSimpleGwCallBack%28%29%20%22+callName%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20gets%20a%20url%20argument%20from%20the%20current%20document.%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetUrlArg%28url%2C%20name%20%29%0A%7B%0A%09%20%20name%20%3D%20name.replace%28/[%5C[]/%2C%22%5C%5C%5C[%22%29.replace%28/[%5C]]/%2C%22%5C%5C%5C]%22%29%3B%0A%09%20%20var%20regexS%20%3D%20%22[%5C%5C?%26]%22+name+%22%3D%28[^%26%23]*%29%22%3B%0A%09%20%20var%20regex%20%3D%20new%20RegExp%28%20regexS%20%29%3B%0A%09%20%20var%20results%20%3D%20regex.exec%28url%29%3B%0A%09%20%20if%28%20results%20%3D%3D%20null%20%29%0A%09%20%20%20%20return%20%22%22%3B%0A%09%20%20else%0A%09%20%20%20%20return%20results[1]%3B%0A%7D%0A%0A%0A/**%0A%20*%20This%20allows%20to%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsRedirectTop%28url%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%20%20%20%09%0A%20%20%20%09top.location%3Durl%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsRedirectTop%28%29%22%2Ce%29%3B%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20is%20used%20to%20report%20events%20to%20the%20plugin%0A%20*%20@param%20key%0A%20*%20@param%20sub%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsEvent%28key%2C%20sub%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22key%22%2C%20key%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22sub%22%2C%20sub%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22leoHighlightsEvent%22%29%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsEvent%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20find%20an%20element%20by%20Id%0A%20*%20%0A%20*%20@param%20elemId%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsFindElementById%28elemId%29%0A%7B%0A%09try%0A%09%7B%0A%09%09var%20elem%3Ddocument.getElementById%28elemId%29%3B%0A%09%09if%28elem%29%0A%09%09%09return%20elem%3B%0A%09%09%0A%09%09/*%20This%20is%20the%20handling%20for%20IE%20*/%0A%09%09if%28document.all%29%0A%09%09%7B%0A%09%09%09elem%3Ddocument.all[elemId]%3B%0A%20%20%20%20%20%20%20%20%20if%28elem%29%0A%20%20%20%20%20%20%20%20%20%09return%20elem%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20for%20%28%20var%20i%20%3D%20%28document.all.length-1%29%3B%20i%20%3E%3D%200%3B%20i--%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09elem%3Ddocument.all[i]%3B%0A%20%20%20%20%20%20%20%20%20%09if%28elem.id%3D%3DelemId%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20elem%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%09%09%7D%0A%09%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsFindElementById%28%29%22%2Ce%29%3B%0A%20%20%20%7D%0A%09return%20null%3B%0A%7D%0A%0A/**%0A%20*%20Get%20the%20location%20of%20one%20element%20relative%20to%20a%20parent%20reference%0A%20*%0A%20*%20@param%20ref%0A%20*%20%20%20%20%20%20%20%20%20%20%20the%20reference%20element%2C%20this%20must%20be%20a%20parent%20of%20the%20passed%20in%0A%20*%20%20%20%20%20%20%20%20%20%20%20element%0A%20*%20@param%20elem%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetLocation%28ref%2C%20elem%29%20%7B%0A%20%20%20var%20count%20%3D%200%3B%0A%20%20%20var%20location%20%3D%20new%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20var%20walk%20%3D%20elem%3B%0A%20%20%20while%20%28walk%20%21%3D%20null%20%26%26%20walk%20%21%3D%20ref%20%26%26%20count%20%3C%20LEO_HIGHLIGHTS_INFINITE_LOOP_COUNT%29%20%7B%0A%20%20%20%20%20%20location.x%20+%3D%20walk.offsetLeft%3B%0A%20%20%20%20%20%20location.y%20+%3D%20walk.offsetTop%3B%0A%20%20%20%20%20%20walk%20%3D%20walk.offsetParent%3B%0A%20%20%20%20%20%20count++%3B%0A%20%20%20%7D%0A%0A%20%20%20return%20location%3B%0A%7D%0A%0A/**%0A%20*%20This%20is%20used%20to%20update%20the%20position%20of%20an%20element%20as%20a%20popup%0A%20*%20%0A%20*%20@param%20IFrame%0A%20*%20@param%20anchor%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsUpdatePopupPos%28iFrame%2Canchor%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20//%20Gets%20the%20scrolled%20location%20for%20x%20and%20y%0A%20%20%20%20%20%20var%20scrolledPos%3Dnew%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20%20%20%20if%28%20self.pageYOffset%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20self.pageXOffset%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20self.pageYOffset%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.documentElement%20%26%26%20document.documentElement.scrollTop%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20document.documentElement.scrollLeft%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20document.documentElement.scrollTop%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.body%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20scrolledPos.x%20%3D%20document.body.scrollLeft%3B%0A%20%20%20%20%20%20%20%20%20scrolledPos.y%20%3D%20document.body.scrollTop%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Get%20the%20total%20dimensions%20to%20see%20what%20scroll%20bars%20might%20be%20active%20*/%0A%20%20%20%20%20%20var%20totalDim%3Dnew%20LeoHighlightsDimension%280%2C0%29%0A%20%20%20%20%20%20if%20%28document.all%20%26%26%20document.documentElement%20%26%26%20%0A%20%20%20%20%20%20%09document.documentElement.clientHeight%26%26document.documentElement.clientWidth%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%09totalDim.width%20%3D%20document.documentElement.scrollWidth%3B%0A%20%20%20%20%20%20%09totalDim.height%20%3D%20document.documentElement.scrollHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28document.all%29%0A%20%20%20%20%20%20%7B%20/*%20This%20is%20in%20IE%20*/%0A%20%20%20%20%20%09%20%09totalDim.width%20%3D%20document.body.scrollWidth%3B%0A%20%20%20%20%20%20%09totalDim.height%20%3D%20document.body.scrollHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%09%20totalDim.width%20%3D%20document.width%3B%0A%20%20%20%20%20%20%09%20totalDim.height%20%3D%20document.height%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20Gets%20the%20location%20of%20the%20available%20screen%20space%0A%20%20%20%20%20%20var%20centerDim%3Dnew%20LeoHighlightsDimension%280%2C0%29%3B%0A%20%20%20%20%20%20if%28self.innerWidth%20%26%26%20self.innerHeight%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20self.innerWidth-%28totalDim.height%3Eself.innerHeight?16%3A0%29%3B%20//%20subtracting%20scroll%20bar%20offsets%20for%20firefox%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20self.innerHeight-%28totalDim.width%3Eself.innerWidth?16%3A0%29%3B%20%20//%20subtracting%20scroll%20bar%20offsets%20for%20firefox%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.documentElement%20%26%26%20document.documentElement.clientHeight%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20document.documentElement.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20document.documentElement.clientHeight%3B%0A%20%20%20%20%20%20%7D%20else%20if%28%20document.body%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20centerDim.width%20%3D%20document.body.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20centerDim.height%20%3D%20document.body.clientHeight%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20Get%20the%20current%20dimension%20of%20the%20popup%20element%0A%20%20%20%20%20%20var%20iFrameDim%3Dnew%20LeoHighlightsDimension%28iFrame.offsetWidth%2CiFrame.offsetHeight%29%0A%20%20%20%20%20%20if%20%28iFrameDim.width%20%3C%3D%200%29%0A%20%20%20%20%20%20%09iFrameDim.width%20%3D%20iFrame.style.width.substring%280%2C%20iFrame.style.width.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20if%20%28iFrameDim.height%20%3C%3D%200%29%0A%20%20%20%20%20%20%09iFrameDim.height%20%3D%20iFrame.style.height.substring%280%2C%20iFrame.style.height.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Calculate%20the%20position%2C%20lower%20right%20hand%20corner%20by%20default%20*/%0A%20%20%20%20%20%20var%20position%3Dnew%20LeoHighlightsPosition%280%2C0%29%3B%0A%20%20%20%20%20%20position.x%3DscrolledPos.x+centerDim.width-iFrameDim.width-LEO_HIGHLIGHTS_ADJUSTMENT.x%3B%0A%20%20%20%20%20%20position.y%3DscrolledPos.y+centerDim.height-iFrameDim.height-LEO_HIGHLIGHTS_ADJUSTMENT.y%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20if%28anchor%21%3Dnull%29%0A%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20//centerDim%20in%20relation%20to%20the%20anchor%20element%20if%20available%0A%20%20%20%20%20%20%20%20%20var%20topOrBottom%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorPos%3D_leoHighlightsGetLocation%28document.body%2C%20anchor%29%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorScreenPos%20%3D%20new%20LeoHighlightsPosition%28anchorPos.x-scrolledPos.x%2CanchorPos.y-scrolledPos.y%29%3B%0A%20%20%20%20%20%20%20%20%20var%20anchorDim%3Dnew%20LeoHighlightsDimension%28anchor.offsetWidth%2Canchor.offsetHeight%29%0A%20%20%20%20%20%20%20%20%20if%20%28anchorDim.width%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20%09anchorDim.width%20%3D%20anchor.style.width.substring%280%2C%20anchor.style.width.indexOf%28%27px%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20if%20%28anchorDim.height%20%3C%3D%200%29%0A%20%20%20%20%20%20%20%20%20%09anchorDim.height%20%3D%20anchor.style.height.substring%280%2C%20anchor.style.height.indexOf%28%27px%27%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20//%20Check%20if%20the%20popup%20can%20be%20shown%20above%20or%20below%20the%20element%0A%20%20%20%20%20%20%20%20%20if%20%28centerDim.height%20-%20anchorDim.height%20-%20iFrameDim.height%20-%20anchorScreenPos.y%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09//%20Show%20below%2C%20formula%20above%20calculates%20space%20below%20open%20iFrame%0A%20%20%20%20%20%20%20%20%20%20%20%20position.y%20%3D%20anchorPos.y%20+%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20topOrBottom%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28anchorScreenPos.y%20-%20anchorDim.height%20-%20iFrameDim.height%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%09//%20Show%20above%2C%20formula%20above%20calculates%20space%20above%20open%20iFrame%0A%20%20%20%20%20%20%20%20%20%09position.y%20%3D%20anchorPos.y%20-%20iFrameDim.height%20-%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20topOrBottom%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28topOrBottom%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20We%20attempt%20top%20attach%20the%20window%20to%20the%20element%0A%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20anchorPos.x%20-%20iFrameDim.width%20/%202%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28position.x%20%3C%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28position.x%20+%20iFrameDim.width%20%3E%20scrolledPos.x%20+%20centerDim.width%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20scrolledPos.x%20+%20centerDim.width%20-%20iFrameDim.width%3B%0A%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20//%20Attempt%20to%20align%20on%20the%20right%20or%20left%20hand%20side%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28centerDim.width%20-%20anchorDim.Width%20-%20iFrameDim.width%20-%20anchorScreenPos.x%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position.x%20%3D%20anchorPos.x%20+%20anchorDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20if%20%28anchorScreenPos.x%20-%20anchorDim.width%20-%20iFrameDim.width%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09position.x%20%3D%20anchorPos.x%20-%20anchorDim.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20%20//%20default%20to%20below%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20position.y%20%3D%20anchorPos.y%20+%20anchorDim.height%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20/*%20Make%20sure%20that%20we%20don%27t%20go%20passed%20the%20right%20hand%20border%20*/%0A%20%20%20%20%20%20if%28position.x+iFrameDim.width%3EcenterDim.width-20%29%0A%20%20%20%20%20%20%09position.x%3DcenterDim.width-%28iFrameDim.width+20%29%3B%0A%20%20%20%20%20%20%09%09%0A%20%20%20%20%20%20//%20Make%20sure%20that%20we%20didn%27t%20go%20passed%20the%20start%0A%20%20%20%20%20%20if%28position.x%3C0%29%0A%20%20%20%20%20%20%20%20%20position.x%3D0%3B%0A%20%20%20%20%20%20if%28position.y%3C0%29%0A%20%20%20%20%20%20%09position.y%3D0%3B%0A%0A%20%20%20%20%20%20if%20%28LEO_HIGHLIGHTS_DEBUG_POS%26%26LEO_HIGHLIGHTS_DEBUG%29%20%7B%0A%20%20%20%20%20%20%20%20%20alert%28%22%20Popup%20info%20id%3A%20%20%20%20%20%20%20%22%20+iFrame.id+%22%20-%20%22+anchor.id%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cnscrolled%20%20%20%20%20%20%20%20%20%20%22%20+%20scrolledPos%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cncenter/visible%20%20%20%20%22%20+%20centerDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cnanchor%20%28absolute%29%20%22%20+%20anchorPos%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cnanchor%20%28screen%29%20%20%20%22%20+%20anchorScreenPos%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5CnSize%20%28anchor%29%20%20%20%20%20%22%20+%20anchorDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5CnSize%20%28popup%29%20%20%20%20%20%20%22%20+%20iFrameDim%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5CnResult%20pos%20%20%20%20%20%20%20%20%22%20+%20position%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20Set%20the%20popup%20location%0A%20%20%20%20%20%20iFrame.style.left%20%3D%20position.x%20+%20%22px%22%3B%0A%20%20%20%20%20%20iFrame.style.top%20%20%3D%20position.y%20+%20%22px%22%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsUpdatePopupPos%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20show%20the%20passed%20in%20element%20as%20a%20popup%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsShowPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09var%20popup%3Dnew%20LeoHighlightsPopup%28anchorId%2Csize%29%3B%0A%20%20%20%09popup.show%28%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22_leoHighlightsShowPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A%0A/**%0A%20*%20This%20will%20transform%20the%20passed%20in%20url%20to%20a%20rover%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@return%0A%20*/%0Afunction%20_leoHighlightsGetRoverUrl%28url%29%0A%7B%0A%09var%20rover%3D%22711-36858-13496-14%22%3B%0A%09var%20roverUrl%3D%22http%3A//rover.ebay.com/rover/1/%22+rover+%22/4?%26mpre%3D%22+encodeURI%28url%29%3B%0A%09%0A%09return%20roverUrl%3B%0A%7D%0A%0A/**%0A%20*%20Class%20for%20a%20Popup%20%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20LeoHighlightsPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09this.anchorId%3DanchorId%3B%0A%20%20%20%09this.anchor%3D_leoHighlightsFindElementById%28this.anchorId%29%3B%0A%20%20%20%09this.iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_ID%29%3B%0A%20%20%20%09this.iFrameDiv%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%20%20%20%09%0A%20%20%20%09var%20url%3Dunescape%28this.anchor.getAttribute%28%27leoHighlights_url%27%29%29%3B%0A%0A%20%20%20%09this.iFrame.src%3Durl%3B%0A%0A%20%20%20%09leoHighlightsSetSize%28size%29%3B%0A%20%20%20%09%0A%20%20%20%09this.updatePos%3Dfunction%28%29%20%7B%20_leoHighlightsUpdatePopupPos%28this.iFrameDiv%2Cthis.anchor%29%7D%3B%0A%20%20%20%09this.show%3Dfunction%28%29%20%7Bthis.updatePos%28%29%3B%20this.iFrameDiv.style.visibility%20%3D%20%22visible%22%3B%20this.iFrameDiv.style.display%20%3D%20%22block%22%3B%20this.updatePos%28%29%3B%7D%20%20%20%09%09%0A%20%20%20%09this.scroll%3Dfunction%28%29%20%7B%20this.updatePos%28%29%3B%7D%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22new%20LeoHighlightsPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe%0A*%0A*%20@param%20id%0A*%20@return%0A*/%0Afunction%20leoHighlightsSetSize%28size%2CclickId%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Get%20the%20appropriate%20sizes%20*/%0A%20%20%09%09var%20iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_ID%29%3B%0A%20%20%09%09var%20iFrameDiv%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Figure%20out%20the%20correct%20sizes%20*/%0A%20%20%09%09var%20iFrameSize%3D%28size%3D%3D1%29?LEO_HIGHLIGHTS_IFRAME_CLICK_SIZE%3ALEO_HIGHLIGHTS_IFRAME_HOVER_SIZE%3B%0A%20%20%09%09var%20divSize%3D%28size%3D%3D1%29?LEO_HIGHLIGHTS_DIV_CLICK_SIZE%3ALEO_HIGHLIGHTS_DIV_HOVER_SIZE%3B%0A%0A%20%20%09%09/*%20Refresh%20the%20iFrame%27s%20url%2C%20by%20removing%20the%20size%20arg%20and%20adding%20it%20again%20*/%0A%20%20%09%09var%20url%3DiFrame.src%3B%0A%20%20%09%09var%20idx%3Durl.indexOf%28%22%26size%3D%22%29%3B%0A%20%20%09%09if%28idx%3E%3D0%29%0A%20%20%09%09%09url%3Durl.substring%280%2Cidx%29%3B%0A%09%09url+%3D%28%22%26size%3D%22+size%29%3B%0A%09%09if%28clickId%29%0A%09%09%09url+%3D%28%22%26clickId%3D%22+clickId%29%3B%0A%09%09%0A%20%20%09%09iFrame.src%3Durl%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Clear%20the%20hover%20flag%2C%20if%20the%20user%20shows%20this%20at%20full%20size%20*/%0A%20%20%09%09if%28size%3D%3D1%26%26_leoHighlightsPrevElem%29%0A%20%20%09%09%09_leoHighlightsPrevElem.hover%3Dfalse%3B%0A%20%20%09%09%0A%20%20%09%09_leoHighlightsSetSize%28iFrame%2CiFrameSize%29%3B%0A%20%20%09%09_leoHighlightsSetSize%28iFrameDiv%2CdivSize%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsSetSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20Start%20the%20popup%20a%20little%20bit%20delayed.%0A%20*%20Somehow%20IE%20needs%20some%20time%20to%20find%20the%20element%20by%20id.%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@param%20size%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsShowPopup%28anchorId%2Csize%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09var%20elem%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09if%28_leoHighlightsPrevElem%26%26%28_leoHighlightsPrevElem%21%3Delem%29%29%0A%20%20%09%09%09_leoHighlightsPrevElem.shown%3Dfalse%3B%0A%20%20%09%09elem.shown%3Dtrue%3B%0A%09%09_leoHighlightsPrevElem%3Delem%3B%0A%20%20%20%09%0A%20%20%20%09/*%20FF%20needs%20to%20find%20the%20element%20first%20*/%0A%20%20%20%09_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%20%09%0A%20%20%20%09setTimeout%28%22_leoHighlightsShowPopup%28%5C%27%22+anchorId+%22%5C%27%2C%5C%27%22+size+%22%5C%27%29%3B%22%2C10%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsShowPopup%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe%0A*%0A*%20@param%20id%0A*%20@return%0A*/%0Afunction%20leoHighlightsHideElem%28id%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Get%20the%20appropriate%20sizes%20*/%0A%20%20%09%09var%20elem%3D_leoHighlightsFindElementById%28id%29%3B%0A%20%20%09%09if%28elem%29%0A%20%20%09%09%09elem.style.visibility%3D%22hidden%22%3B%0A%20%20%09%09%0A%20%20%09%09/*%20Clear%20the%20page%20for%20the%20next%20run%20through%20*/%0A%20%20%09%09var%20iFrame%3D_leoHighlightsFindElementById%28LEO_HIGHLIGHTS_IFRAME_ID%29%3B%0A%20%20%09%09if%28iFrame%29%0A%20%20%09%09%09iFrame.src%3D%22about%3Ablank%22%3B%0A%20%20%09%09%0A%20%20%09%09%0A%20%20%09%09if%28_leoHighlightsPrevElem%29%0A%20%20%09%09%7B%0A%20%20%09%09%09_leoHighlightsPrevElem.shown%3Dfalse%3B%0A%20%20%09%09%09_leoHighlightsPrevElem%3Dnull%3B%0A%20%20%09%09%7D%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHideElem%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A*%0A*%20This%20can%20be%20used%20to%20close%20an%20iframe.%0A*%20Since%20the%20iFrame%20is%20reused%20the%20frame%20only%20gets%20hidden%0A*%0A*%20@return%0A*/%0Afunction%20leoHighlightsIFrameClose%28%29%0A%7B%0A%20%20try%0A%20%20%7B%0A%09%20%20_leoHighlightsSimpleGwCallBack%28%22LeoHighlightsHideIFrame%22%29%3B%0A%20%20%7D%0A%20%20catch%28e%29%0A%20%20%7B%0A%09%20%20_leoHighlightsReportExeception%28%22leoHighlightsIFrameClose%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20should%20handle%20the%20click%20events%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleClick%28anchorId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09var%20anchor%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09anchor.hover%3Dfalse%3B%0A%20%20%09%09if%28anchor.startTimer%29%0A%20%20%09%09%09clearTimeout%28anchor.startTimer%29%3B%0A%20%20%20%09%0A%20%20%09%09leoHighlightsEvent%28%22clicked%22%29%3B%0A%20%20%20%09leoHighlightsShowPopup%28anchorId%2C1%29%3B%0A%20%20%20%09return%20false%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsHandleClick%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20should%20handle%20the%20hover%20events%0A%20*%20%0A%20*%20@param%20anchorId%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleHover%28anchorId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09var%20anchor%3D_leoHighlightsFindElementById%28anchorId%29%3B%0A%20%20%09%09anchor.hover%3Dtrue%3B%0A%20%20%09%09%0A%20%20%09%09leoHighlightsEvent%28%22hovered%22%29%3B%0A%20%20%20%09leoHighlightsShowPopup%28anchorId%2C0%29%3B%0A%20%20%20%09return%20false%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlightsHandleHover%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%09%0A%7D%0A%0A/**%0A%20*%20This%20will%20handle%20the%20mouse%20over%20setup%20timers%20for%20the%20appropriate%20timers%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleMouseOver%28id%29%0A%7B%0A%09try%0A%09%7B%0A%09%09var%20anchor%3D_leoHighlightsFindElementById%28id%29%3B%09%09%0A%0A%09%09/*%20Clear%20the%20end%20timer%20if%20required%20*/%0A%09%09if%28anchor.endTimer%29%0A%09%09%09clearTimeout%28anchor.endTimer%29%3B%0A%09%09anchor.endTimer%3Dnull%3B%0A%09%09%0A%09%09anchor.style.background%3DLEO_HIGHLIGHTS_BACKGROUND_STYLE_HOVER%3B%0A%09%09%0A%09%09/*%20The%20element%20is%20already%20showing%20we%20are%20done%20*/%0A%09%09if%28anchor.shown%29%0A%09%09%09return%3B%0A%09%09%0A%09%09/*%20Setup%20the%20start%20timer%20if%20required%20*/%0A%09%09anchor.startTimer%3DsetTimeout%28function%28%29%7B%0A%09%09%09leoHighlightsHandleHover%28anchor.id%29%3B%0A%09%09%09anchor.hover%3Dtrue%3B%0A%09%09%09%7D%2C%0A%09%09%09LEO_HIGHLIGHTS_SHOW_DELAY_MS%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleMouseOver%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20handle%20the%20mouse%20over%20setup%20timers%20for%20the%20appropriate%20timers%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleMouseOut%28id%29%0A%7B%0A%09try%0A%09%7B%09%0A%09%09var%20anchor%3D_leoHighlightsFindElementById%28id%29%3B%0A%09%09%0A%09%09/*%20Clear%20the%20start%20timer%20if%20required%20*/%0A%09%09if%28anchor.startTimer%29%0A%09%09%09clearTimeout%28anchor.startTimer%29%3B%0A%09%09anchor.startTimer%3Dnull%3B%0A%09%09%0A%09%09anchor.style.background%3DLEO_HIGHLIGHTS_BACKGROUND_STYLE_DEFAULT%3B%0A%09%09if%28%21anchor.shown||%21anchor.hover%29%0A%09%09%09return%3B%0A%09%09%0A%09%09/*%20Setup%20the%20start%20timer%20if%20required%20*/%0A%09%09anchor.endTimer%3DsetTimeout%28function%28%29%7B%0A%09%09%09leoHighlightsHideElem%28LEO_HIGHLIGHTS_IFRAME_DIV_ID%29%3B%0A%09%09%09anchor.shown%3Dfalse%3B%0A%09%09%09_leoHighlightsPrevElem%3Dnull%3B%0A%09%09%09%7D%2CLEO_HIGHLIGHTS_HIDE_DELAY_MS%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleMouseOut%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20handles%20the%20mouse%20movement%20into%20the%20currently%20opened%20window.%0A%20*%20Just%20clear%20the%20close%20timer%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleIFrameMouseOver%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09if%28_leoHighlightsPrevElem%26%26_leoHighlightsPrevElem.endTimer%29%0A%09%09%09clearTimeout%28_leoHighlightsPrevElem.endTimer%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleIFrameMouseOver%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0A/**%0A%20*%20This%20handles%20the%20mouse%20movement%20into%20the%20currently%20opened%20window.%0A%20*%20Just%20clear%20the%20close%20timer%0A%20*%20%0A%20*%20@param%20id%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsHandleIFrameMouseOut%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09if%28_leoHighlightsPrevElem%29%0A%09%09%09leoHighlightsHandleMouseOut%28_leoHighlightsPrevElem.id%29%3B%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsHandleIFrameMouseOut%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A/**%0A%20*%20This%20is%20a%20method%20is%20used%20to%20make%20the%20javascript%20within%20IE%20runnable%0A%20*/%0Avar%20leoHighlightsRanUpdateDivs%3Dfalse%3B%0Afunction%20leoHighlightsUpdateDivs%28%29%0A%7B%0A%09try%0A%09%7B%0A%09%09/*%20Check%20if%20this%20is%20an%20IE%20browser%20and%20if%20divs%20have%20been%20updated%20already%20*/%0A%09%09if%28document.all%26%26%21leoHighlightsRanUpdateDivs%29%0A%09%09%7B%0A%09%09%09leoHighlightsRanUpdateDivs%3Dtrue%3B%20//%20Set%20early%20to%20prevent%20running%20twice%0A%09%09%09for%28var%20i%3D0%3Bi%3CLEO_HIGHLIGHTS_MAX_HIGHLIGHTS%3Bi++%29%0A%09%09%09%7B%0A%09%09%09%09var%20id%3D%22leoHighlights_Underline_%22+i%3B%0A%09%09%09%09var%20elem%3D_leoHighlightsFindElementById%28id%29%3B%0A%09%09%09%09if%28elem%3D%3Dnull%29%0A%09%09%09%09%09break%3B%0A%09%09%09%09%0A%09%09%09%09if%28%21elem.leoChanged%29%0A%09%09%09%09%7B%0A%09%09%09%09%09elem.leoChanged%3Dtrue%3B%0A%09%09%09%09%0A%09%09%09%09%09/*%20This%20will%20make%20javaScript%20runnable%20*/%09%09%09%09%0A%09%09%09%09%09elem.outerHTML%3Delem.outerHTML%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09catch%28e%29%0A%09%7B%0A%09%09_leoHighlightsReportExeception%28%22leoHighlightsUpdateDivs%28%29%22%2Ce%29%3B%20%20%20%09%0A%09%7D%0A%7D%0A%0Aif%28document.all%29%0A%09setTimeout%28leoHighlightsUpdateDivs%2C200%29%3B%0A%0A/**%0A%20*%20This%20is%20used%20to%20report%20events%20to%20the%20plugin%0A%20*%20@param%20key%0A%20*%20@param%20sub%0A%20*%20@return%0A%20*/%0Afunction%20leoHighlightsEvent%28key%2C%20sub%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22key%22%2C%20key%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22sub%22%2C%20sub%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsEvent%22%29%3B%09%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHighlights%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/*----------------------------------------------------------------------*/%0A/*%20Methods%20provided%20to%20the%20highlight%20providers...%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20*/%0A/*----------------------------------------------------------------------*/%0A%0A/**%0A%20*%20This%20will%20redirect%20the%20top%20window%20to%20the%20passed%20in%20url%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20@return%0A%20*/%0Afunction%20leoHL_RedirectTop%28url%2CparentId%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%09%09leoHighlightsEvent%28%22clicked.2eBay%22%29%3B%0A%20%20%20%09_leoHighlightsRedirectTop%28url%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHL_RedirectTop%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A%0A/**%0A%20*%20This%20will%20set%20the%20size%20of%20the%20iframe%0A%20*%20%0A%20*%20@param%20url%0A%20*%20@param%20parentId%0A%20*%20%0A%20*%20@return%0A%20*/%0Afunction%20leoHl_setSize%28size%2Curl%29%0A%7B%0A%20%20%20try%0A%20%20%20%7B%0A%20%20%20%09/*%20Get%20the%20clickId%20*/%0A%20%20%20%09var%20clickId%3D_leoHighlightsGetUrlArg%28%20url%2C%22clickId%22%29%0A%20%20%20%09%0A%20%20%20%20%20%20var%20gwObj%20%3D%20new%20Gateway%28%29%3B%0A%20%20%20%20%20%20gwObj.addParam%28%22size%22%2Csize%29%3B%0A%20%20%20%20%20%20if%28clickId%29%0A%20%20%20%20%20%20%20%20%20gwObj.addParam%28%22clickId%22%2CclickId+%22_blah%22%29%3B%0A%20%20%20%20%20%20gwObj.callName%28%22LeoHighlightsSetSize%22%29%3B%0A%20%20%20%7D%0A%20%20%20catch%28e%29%0A%20%20%20%7B%0A%20%20%20%09_leoHighlightsReportExeception%28%22leoHl_setSize%28%29%22%2Ce%29%3B%20%20%20%09%0A%20%20%20%7D%0A%7D%0A");
// ]]&gt;</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.solidstateux.com/user-design-research/practical-tips-for-fielding-design-related-ethnography/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crafting Simple, Effective User Surveys</title>
		<link>http://www.solidstateux.com/user-design-research/crafting-simple-effective-user-surveys/</link>
		<comments>http://www.solidstateux.com/user-design-research/crafting-simple-effective-user-surveys/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 14:00:33 +0000</pubDate>
		<dc:creator>Todd Toler</dc:creator>
				<category><![CDATA[User & Design Research]]></category>
		<category><![CDATA[surveys]]></category>

		<guid isPermaLink="false">http://www.solidstateux.com/?p=239</guid>
		<description><![CDATA[Without a doubt, online surveys are the cheapest, easiest way to reach out to a large number of a website&#8217;s customers to gauge their opinion- but if not crafted correctly, they can result in misleading information.  You do not need to be a research expert to field a successful survey, but knowing the limitations of [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_274" class="wp-caption alignleft" style="width: 208px"><a href="http://www.flickr.com/photos/dgilder/"><img class="size-medium wp-image-274" title="survey_girl" src="http://www.solidstateux.com/wp-content/uploads/2009/07/survey_girl-198x300.png" alt="Photo Credit: dgilder" width="198" height="300" /></a><p class="wp-caption-text">Photo Credit: dgilder</p></div>
<p>Without a doubt, online surveys are the cheapest, easiest way to reach out to a large number of a website&#8217;s customers to gauge their opinion- but if not crafted correctly, they can result in misleading information.  You do not need to be a research expert to field a successful survey, but knowing the limitations of each option in your research toolkit is the only way to get accurate, impactful, and <em>persuasive</em> results.  There are many issues to cover within this topic, but let&#8217;s begin with the basics by crafting a survey that successfully answers three key questions:</p>
<p>- Who is using the site?<br />
- What do they think of it?<br />
- Are they accomplishing what they want to?</p>
<p>If we can get accurate answers to these questions, then we can deduce what needs to change about the site in order to become a greater success.</p>
<p><span id="more-239"></span></p>
<h4>The Three Basic Types of User Survey Questions</h4>
<p>There are three main buckets of questions out of which to construct a simple user survey.   I usually draw from all three.  In future posts, I&#8217;ll get into more sophisticated questioning strategies &#8211; such as conjoint analysis &#8211; but for today let&#8217;s keep things simple.</p>
<p><strong>Question Type 1 &#8211; Demographic or &#8220;Characteristic&#8221; (effectiveness: high)</strong></p>
<p>This is basically any factual question about the respondent themselves or any aspect of  their life that occurs <em>off </em>of your site.   The temptation will be to put too much emphasis on this data when doing your analysis, slicing and dicing your results by a customers&#8217; age, income, occupation, etc.  When it comes to user satisfaction &#8211; segmentation based on types of <em>behavior</em> is generally much more important than demographics.  But demographic data is always of interest to marketers and website visitors are not just users &#8211; they are customers &#8211; so we need this type of question in our survey.  And besides, this is a  great method for collecting this kind of information because it&#8217;s fast and cost effective to push out to a large, statistically reliable sample and the data is generally easy to analyse.  Typical  survey questions of this type:</p>
<ul>
<li>How old are users?</li>
<li>What do they do for a living?</li>
<li>Male/Female?</li>
<li>Where do they live?</li>
<li>How did they hear about your site or product?</li>
<li>What sort of other products have they purchased in the past 6 months?</li>
</ul>
<p><strong>Question Type 2 &#8211; Attitudinal or &#8220;Satisfaction&#8221; (effectiveness: med)</strong></p>
<p>Here we expand beyond the fact-based profiling of our audience into the subjective realm of attitudes and happiness &#8211; a treacherous area for those who set out to learn the Truth (with a capital T) about their customers.   The art of building a <em>valid</em> survey questionnaire starts to become of crucial importance here.   All sorts of mechanics can impact the results you get to these kinds of questions. Are the questions and answer choices worded in a way that is completely clear and unambiguous, without the use of &#8220;insider&#8221; terminology?  Are the questions ordered in such a way that might bias the results?  Are the question statements themselves leading in a way that might bias the answer? (<em>e.g.  Do you think our website totally rocks, or is it just awesome?</em>)  Typical survey questions of this type:</p>
<ul>
<li>To what degree do you consider this a primary resource for [insert something the website helps to get done here].</li>
<li>How satisfied are you with your experience on the site? What would you change about it?</li>
<li> Rate the following [your products or branded content types] on a scale of [x to x].</li>
</ul>
<p>This type of question is even more powerful if you can collect attitudinal data about important attributes of your desired site, to help you troubleshoot where the problems are.  Write your attitudinal questions to cover both core brand promise traits as well as specific hypotheses you may have about improving the site.  Here&#8217;s an example of taking the attitudinals to the &#8216;next level&#8217; of granularity:</p>
<p style="padding-left: 30px;">How true are the following statements:</p>
<ul>
<li>The information on this site (or specific feature) is presented in a way that helps me learn</li>
<li>The information seems relevant and up-to-date</li>
<li>The information covers the topics I care about</li>
<li>The use of visuals on this site aid my understanding of the materials</li>
<li>The information on this site is unique and not available elsewhere on the web</li>
</ul>
<p><strong>Question Type 3 &#8211; Behavioral/Usage (effectiveness: low to med)</strong></p>
<p>This is the least reliable category of questions for surveys, for two simple reasons.  1) surveys are self-reported instruments.  Nothing beats directly observing someone using the site and drawing your own conclusions.  2) it&#8217;s very difficult to communicate details about your site&#8217;s structure to someone taking a survey in a way that they can meaningfully respond to.  For instance, you might seek to distinguish their satisfaction with the use of your  &#8217;search&#8217; feature versus your primary &#8216;browsing&#8217; or &#8216;navigation,&#8217; but a typical user of your site may not make the same distinction that you (or other takers of the survey for that matter) do.  This sort of ambiguity of language is <em>always</em> a problem here, and will make the results hard to trust.  Note that the effectiveness of these sorts of questions goes up dramatically if you are using an <em>intercept</em> (or pop-up) survey, which asks them questions about that specific visit versus a general survey, which may have a respondent reflecting back about previous visits to the site.  Typical survey questions of this type:</p>
<ul>
<li>Accessing from home/work/school?</li>
<li>What is your <em>primary purpose</em> for being here today?</li>
<li>Did you  successfully complete your primary purpose?</li>
</ul>
<h4>What to Avoid</h4>
<p><img class="size-full wp-image-255 alignleft" title="Crystal_Clear_action_stop" src="http://www.solidstateux.com/wp-content/uploads/2009/07/Crystal_Clear_action_stop.png" alt="Crystal_Clear_action_stop" width="28" height="28" />Don&#8217;t put any questions in the survey which can be attained or deduced easily in other ways.</p>
<p>Such as&#8230;.</p>
<ul>
<li>How often do you come to the site? (<em>Use web analytics software to get average repeat visits.</em>)</li>
<li>Which parts of the site do you use most frequently?  (<em>Why should they know the names of the different parts of your site, or care?  Get this from the analytics.  If your goal is to link certain segments to certain traffic patterns, this can be done by integrating segmentation into your analytics program&#8230; but that&#8217;s beyond the scope of your simple survey!</em>)</li>
</ul>
<p><img class="size-full wp-image-255 alignleft" title="Crystal_Clear_action_stop" src="http://www.solidstateux.com/wp-content/uploads/2009/07/Crystal_Clear_action_stop.png" alt="Crystal_Clear_action_stop" width="28" height="28" />Don&#8217;t ask users to tell you which features you should build without making them prioritize!</p>
<p>Such as&#8230;</p>
<ul>
<li>I&#8217;m most interested in seeing&#8230;. [insert various features and content-types here].    (<em>To pull this off, users need to prioritize the features and make trade-offs.  This technique is called conjoint analysis and is quite effective when used correctly.</em>)</li>
</ul>
<p><img class="size-full wp-image-255 alignleft" title="Crystal_Clear_action_stop" src="http://www.solidstateux.com/wp-content/uploads/2009/07/Crystal_Clear_action_stop.png" alt="Crystal_Clear_action_stop" width="28" height="28" />Don&#8217;t focus on specific feature ideas, focus on your user&#8217;s needs.</p>
<p>Such as&#8230;</p>
<ul>
<li>Do you want a blog? Do you want personalization?  (<em>Instead, think about what needs these features address and then get a sense of whether your users feel that your site is missing these attributes.  use the &#8216;granular attitudinal&#8217; approch mentioned in Question Type 2 above.</em>)</li>
</ul>
<h4>The Absolute Minimum You Need to Know about Survey Validity</h4>
<p><strong>Sampling &amp; Opt-In</strong></p>
<p>Defining the appropriate sample (e.g. the group of people who are offered the survey) is a field unto itself.  But there are a few basic principles.</p>
<ul>
<li>Surveys are an annoyance to customers, don&#8217;t sample any more than you need to</li>
<li>Samples should be &#8220;framed&#8221; or &#8220;stratified&#8221; in a way that models the overall audience (for instance, don&#8217;t oversample registered users because they are easier to reach.)</li>
<li>Size of sample can be roughly 3% for med-trafficked sites (10,000 reachable customers) and 1% of total traffic for high-trafficked sites (100,000 reachable customers) (without getting into the math, this gives you about 95% confidence.)   If you are a very low trafficked site (1000 or less customers, plan to sample at least 15% of them.)</li>
<li>Those numbers above apply to any audience you want to generalize against (e.g. if that&#8217;s total traffic, you can make statements about total traffic&#8230; to say something about a specific segment, you need those numbers for each segment.)</li>
<li>Less known, but equally important, is opt-in rate.  If you get less than 3-5% opt-in (un-incentivized) to your survey invite &#8211; you should ditch <em>all</em> your results under the theory that those who answered are likely to be outliers.</li>
</ul>
<p><strong>Incentives</strong></p>
<p>Offering incentives for survey participants (such as an entry into a sweepstakes or a free toaster) introduces a strong sampling bias that warrants a serious look.  I recommend avoiding incentives for any self-fielded survey.  Consult a professional survey company that has their own panel they can reach out to or an expertise in sampling biases if you have trouble fielding an un-incentivized survey.</p>
<p><strong>Completion Rate</strong></p>
<p>Lastly, completion rate matters.  If a majority of your survey takers don&#8217;t finish the survey, that makes your results less trustworthy -again signaling that those who do manage to finish are likely to be outliers (e.g. people who love your site enough to put up with your 20 minute survey.)  Keep it Short!   5 minutes max. Be sure to be clear on the survey invite itself that this will take 5 minutes or less, then<em> follow through</em> with a single page survey (or a clear progress bar that promises a short experience.)</p>
<h4 style="font-size: 1.5em;">Further Reading:</h4>
<p>I recommend Mike Kuniavsky&#8217;s excellent book, <a id="aptureLink_hqdvoGsynT" href="http://www.amazon.com/gp/product/B0028085GQ">Observing the User Experience: A practitioner&#8217;s Guide to User Research</a>, for those who want to dive into this topic in greater detail.</p>
<p><strong><br />
</strong></p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://www.solidstateux.com/user-design-research/crafting-simple-effective-user-surveys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
