<?xml version="1.0" encoding="UTF-8"?> 
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Matthew Reidsma Talks</title>
<link>http://www.matthewreidsma.com</link>
<description>Matthew Reidsma on Libraries, Technology, and the Web</description>
<language>en-us</language>
<atom:link href="http://www.matthew.reidsrow.com/rss/index_wip.php" rel="self" type="application/rss+xml" />
<item> 
<title>Libraries and the Myth of Mobile Phone Use</title>
<link>http://www.matthewreidsma.com/?b=21</link>
<description><![CDATA[<p>Every now and then, I make the mistake of reading a library article about the &#8220;mobile web.&#8221; it&#8217;s usually an article with a title like &#8220;<a href="http://storify.com/mreidsma/honest-conference-proposals">I am competent at my job, and I have time to tell you about it.</a>&#8221; they start by telling you some facts about how mobile Internet use is growing, and that goes for libraries as well. And then they lose me because they start asserting things about mobile users that are crazy.</p>

<p>They start mind reading, is what they do.</p>

<p>&#8220;Mobile users want&#8230;&#8221; is how they start, and then they make sweeping generalizations about what all mobile users want because of the real-world situations phones are used in: patrons just want directions and hours (as <a href="http://hul.harvard.edu/publications/ln1356/04.html">Harvard Libraries used to believe</a>), mobile-friendly databases, a map of the stacks, and contact information. They don&#8217;t say how they know this, because they&#8217;re just guessing. And behind that guess is an assumption about mobile users and context.</p>

<h4>Context</h4>

<p>Context is the real-world situation you are in while using the website. The most popular belief about mobile context is that mobile users are distracted, on-the-go, browsing with one eye and one hand.</p>

<p>The problem is that this isn&#8217;t how people use their phones.</p>

<p>We can start with your own mobile use. If you are a smartphone owner, you probably use your phone to browse the web at times when you are not &#8220;on-the-go,&#8221; or distracted, or on a crummy connection. I do almost all of my web browsing on my iPhone, laying on my couch, sitting on campus eating lunch, or sitting in bed. At these times I&#8217;m focused, I&#8217;m stationary, and I&#8217;m on a fast connection. And I don&#8217;t know about you, but I was more than a little frustrated last year when I went to the Harvard Library site and was offered only directions and hours<a href="#fn1txt" id="fn1"><sup>1</sup></a>.</p>

<p>But I&#8217;m not a typical user (more on that later), and we know that the plural of anecdote is not data. So let&#8217;s take a look at the research on mobile contexts<a href="#fn2txt" id="fn2"><sup>2</sup></a>.</p>

<p>As early as 2010, surveys of Smartphone owners showed that the typical image of smartphone use was flawed. According to the <a href="http://blog.compete.com/2010/03/12/smartphone-owners-a-ready-and-willing-audience/">2010 Compete Quarterly Smartphone Intelligence Report</a>:</p>

<ul>
<li><strong>84%</strong> used their smartphone at home</li>
<li><strong>80%</strong> use it at for random downtimes</li>
<li><strong>76%</strong> while waiting in lines</li>
<li><strong>64%</strong> at work</li>
</ul>

<p>These contexts are not what we would expect based on our typical view of the harried smartphone user. In 2011, Google <a href="http://googlemobileads.blogspot.com/2011/04/complimentary-copy-of-mobile-movement.html">conducted a study</a> that showed that 39% of smartphone users admitted to using them in the bathroom (which means that 61% of smartphone users are liars).</p>

<p>What&#8217;s more, the Google study showed that 77% of smartphone users use them for searching&#8212;more than any other activity except for general web browsing. And there is no reason to think people won&#8217;t search the library if giving an opportunity. In fact, many don&#8217;t have a choice.</p>

<p>When libraries talk about the digital divide, they often talk about users with no access to the Web except for the public stations at the library. But a new kind of digital divide has sprung up. In 2011, studies by <a href="http://ondeviceresearch.com/ondeviceresearch/blogPost/3">On Device Research</a> and the <a href="http://pewinternet.org/Reports/2011/Smartphones.aspx">Pew Internet and American Life Project</a> show that between 20 and 25% of smartphone owners in <strong>developed countries</strong> only go online using their phones. In addition, according to <a href="http://pewinternet.org/Reports/2012/Smartphone-Update-2012.aspx">a recent Pew report</a>, 46% of American adults owned a smartphone as of February 2012. As <a href="http://www.netmagazine.com/opinions/nielsen-wrong-mobile">Josh Clark points out</a>, &#8220;that&#8217;s north of 11% of adults in the US, or about 25 million people, who only see the web on small screens&#8221;. The numbers are much higher in developing countries<a href="#fn3txt" id="fn3"><sup>3</sup></a>.</p>

<h4>Intent</h4>

<p>&#8220;But people don&#8217;t want to search the library on their phones!&#8221; </p>

<p>This is the response I&#8217;m usually given when I bring out the data on context. But now we&#8217;re not talking about context. Context is the situation you find yourself in out in the world. What our disagreers are now talking about is intent, or what the user <em>wants</em> or <em>needs</em> to do with their phone. And that&#8217;s a different beast<a href="#fn4txt" id="fn4"><sup>4</sup></a>.</p>

<p>There was a time when no one thought phones would be good for shopping, but just look at the revenue coming through mobile apps and you&#8217;ll see that this isn&#8217;t true. In 2011, Paypal had <a href="http://www.businessweek.com/news/2012-01-11/ebay-s-paypal-mobile-payment-volume-rose-to-4-billion-last-year.html">over $4 billion</a> worth of mobile payments, and eBay topped <a href="http://techcrunch.com/2012/01/12/ebay-forecasts-8b-in-mobile-commerce-volume-in-2012-paypal-will-reach-7b/">$5 billion in sales through mobile</a>. And that isn&#8217;t 5 billion $1 sales, either. <a href="http://reviews.cnet.com/8301-13746_7-20030552-48.html">eBay confirms</a> that 3-4 Ferraris are sold <em>each month</em> on their mobile app.</p>

<p>Now, in the library we can&#8217;t intuit what users want or need to do. But we can turn to our friend user research to get a good idea of that they want to do.</p>

<h5>Analytics</h5>

<p>Your users are already trying to do the things they want, even though your site might not be helping them along. Get a heat-map generating analytics tool like <a href="http://reinvigorate.net">Reinvigorate</a> to see where people are trying to click. (This is how we eliminated most of the link farm on our home page. When I have more political capital to spend, we&#8217;ll kill the rest.) Look closely at your search logs and site analytics to look for patterns. We found a large number of searches for databases in our Summon search logs, which told me that users are taking us at our word when we say they can search for &#8220;Everything.&#8221; We&#8217;re redesigning our search landing page to take advantage of this existing user behavior. </p>

<h5>User Interviews</h5>

<p>Ask your users, because <a href="http://whitneyhess.com/blog/2012/05/04/the-user-is-not-like-me/">they are not like you</a>.</p>

<blockquote><p>Every design project is an exercise in exorcising subjectivity from a team of people with very strong opinions.<br /><a href="http://weblog.muledesign.com/2011/03/designed_with_science_a_bit_ab.php"><cite>Erika Hall, Mule Design</cite></a></p></blockquote>

<p><!-- Yeah, that's right. I used <cite> around a person's name. What are you going to do, call the HTML5 police? --></p>

<p>Our users don&#8217;t want most of the things we think they want. Even if you&#8217;re an old hand at user-centered design, they will surprise you. (I never saw using the search box to find a database coming.) Interview a variety of different users, and ask smart questions. Use the answers you get to build <a href="http://usability.gov/methods/analyze_current/personas.html">composite personas</a> of different types of users. Whenever you are stumped about how to get past a design problem, go to your persona. That will help guide you to user-centered thinking.</p>

<p>If you need to get started with user research, check out <a href="http://www.amazon.com/Observing-User-Experience-Practitioners-Research/dp/1558609237/ref=sr_1_1?ie=UTF8&amp;qid=1331779788&amp;sr=8-1">Observing the User Experience</a> by Mike Kuniavsky.</p>

<h5>Usability Testing</h5>

<p>It&#8217;s like a broken record with me, isn&#8217;t it? Test your website so you can see how people use it. Test it with a variety of devices. Don&#8217;t get fancy, just do it. I&#8217;ve <a href="http://matthew.reidsrow.com/articles/12">already said</a> a <a href="http://matthew.reidsrow.com/articles/13">lot about this</a>.</p>

<p>One thing that came up in a recent test involved the &#8220;ratings&#8221; LibGuides offers to users on link lists. A few of the students that tested the site thought the ratings were generated by librarians, and wondered why sources with 3 or fewer ratings were even listed. When told that the ratings were generated by fellow students, they were shocked. The thought of their peers vetting research sources for them was disconcerting.</p>

<p>Never would have seen that coming, either. Several of our librarians removed ratings from their LibGuides because of this.</p>

<p>Understanding user needs is an iterative process. Don&#8217;t interview half a dozen students and then use the same personas for the next decade. Do new interviews every year. Do monthly usability tests. Test and iterate, don&#8217;t redesign. You&#8217;ll keep up better. The smartphone market is just 6-7 years old, and it&#8217;s already changed the way people use the Web. Your users will thank you for it by continuing to use the library website.</p>

<hr />

<ol>
<li class="footnote" id="fn1txt">Ok, so this was in <a href="http://hul.harvard.edu/publications/ln1356/04.html">2010 when the mobile site launched</a>. I know I should let it go. After all, they <a href="http://m.harvard.edu/libraries/">have some limited searching capabilities now</a> on the mobile site. But like most smartphone users, I don&#8217;t soon forget a bad experience. <a href="#fn1" title="Return to footnote 1 in the article">&#8617;</a></li>
<li class="footnote" id="fn2txt">I first learned about much of the data presented here through <a href="http://www.lukew.com/">Luke Wroblewski&#8217;s</a> excellent series &#8220;<a href="http://www.lukew.com/ff?tag=metrics">Data Monday</a>&#8221;. You should probably also read his book, <a href="http://www.abookapart.com/products/mobile-first"><cite>Mobile First</cite></a>, since it is the smartest thing written about mobile web design I&#8217;ve found. <a href="#fn2" title="Return to footnote 2 in the article">&#8617;</a></li>
<li class="footnote" id="fn3txt">Check out On Device Research&#8217;s fascinating report on the <a href="http://ondeviceresearch.com/ondeviceresearch/blogPost/7">&#8220;Mobile-only&#8221; generation in China</a>. After all, there will be more mobile-connected devices than people on earth by the end of the this year. (Eek!) <a href="#fn3" title="Return to footnote 3 in the article">&#8617;</a></li>
<li class="footnote" id="fn4txt">The distinction between context and intent was made by <a href="http://globalmoxie.com/index.shtml">Josh Clark</a> in his <a href="http://www.netmagazine.com/opinions/nielsen-wrong-mobile">super smart response</a> to Jacob Nielsen&#8217;s <a href="http://www.useit.com/alertbox/mobile-vs-full-sites.html">arguments for separate mobile sites</a>. <a href="#fn4" title="Return to footnote 4 in the article">&#8617;</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/21</guid> 
</item>
<item> 
<title>Single Sign on with EZProxy: First Steps</title>
<link>http://www.matthewreidsma.com/?b=20</link>
<description><![CDATA[<p>At <abbr title="Grand Valley State University">GVSU</abbr> we don&#8217;t have <a href="http://en.wikipedia.org/wiki/Single_sign-on">single sign-on</a>. We use Active Directory/<abbr title="Lightweight Directory Access Protocol">LDAP</abbr> authentication, but users need to log in to each service individually. For a library user, that might mean logging into the catalog to renew a book, then logging in again to check course reserves, and then logging in a third time to place an <abbr title="Interlibrary Loan">ILL</abbr> request<a href="#fn1txt" id="fn1"><sup>1</sup></a>. This only gets worse as we develop new tools that require user accounts.</p>

<p>We have a lot of tools we use for internal use, but we can&#8217;t use Active Directory to log in due to <abbr title="Information Technology">IT</abbr> restrictions: <a href="http://code.google.com/p/libstats/">Libstats</a>, instruction statistics, our home-grown <a href="http://gvsu.edu/library/labs">Library Labs</a> <abbr title="Content Management System">CMS</abbr>, our <a href="https://github.com/gvsulib/Sustainability-Website">Sustainability Challenge game</a>, and a new tool called <a href="http://twitter.com/cookiewatch">CookieWatch</a> that helps promote a culture of food sharing and notifies you when a coworker has brought in a snack. The problem is that all of these tools require different logins. This is annoying and silly.</p>

<p>So, I decided to do something about it.</p>

<h4>A solution presents itself</h4>

<p><abbr title="Information Technology">IT</abbr> has let us connect several of our services to Active Directory: Illiad (<abbr title="Interlibrary Loan">ILL</abbr>), Ares (Course Reserves), Millennium (<abbr title="Online Public Access Catalog">OPAC</abbr>), and <a href="http://www.oclc.org/ezproxy/">EZProxy</a>. Of these, EZProxy isn&#8217;t tied to a single service, but rather authenticates users against Active Directory (or technically, <abbr title="Lightweight Directory Access Protocol">LDAP</abbr>), and then forwards them along to a specified service<a href="#fn2txt" id="fn2"><sup>2</sup></a>. </p>

<p>I remembered an <a href="http://bricestacey.com/2009/07/21/Single-Sign-On-Authentication-Using-EZProxy-UserObjects.html">article I read a while back about how to turn EZProxy into a single sign-on system</a>. Written in 2009 by Brice Stacey, it was more of a proof-of-concept article than a documentation of working code, but the snippets he provided were enough to get me started.</p>

<p>Since all of our internal login systems require a session variable for the username, I figured we could use EZProxy to generate the user session variable we could replace our existing login system with EZProxy<a href="#fn3txt" id="fn3"><sup>3</sup></a>. </p>

<h4>Configuration</h4>

<p>Brice&#8217;s plan revolved around EZproxy&#8217;s UserObjects, which are configurable blocks of session data that EZProxy can generate for a user session. EZProxy lets you <a href="http://wcn.oclc.org/index.php/Populating_the_EZproxy_User_Object">set all kinds of session variables</a> in a UserObject. To use them, though, we have to set them up in the EZProxy configuration. You&#8217;ll need to generate a secret key so that EZProxy knows that your login request is legitimate. You&#8217;ll also need to know the <abbr title="Uniform Resource Location">URL</abbr> of the application you want EZProxy to authenticate for. On this example, we&#8217;ll say it&#8217;s <code>http://example.com</code>. We&#8217;ll also say that your EZProxy <abbr title="Uniform Resource Location">URL</abbr> is <code>http://ezproxy.mylibrary.edu</code>.</p>

<p>Add these lines to your EZProxy config.txt to activate UserObjects:</p>

<pre><code>Option UserObject
Option UserObjectTestMode
LocalWSKey kjshf9hkauy392jlkncq3FBC3F27F2CD4CBA25B0BE858F2A5C3823FEAB33kjyw9uhakjkjashd39uh
RedirectSafe ezproxy.mylibrary.edu
RedirectSafe example.com
</code></pre>

<p>Now we also need to add the <abbr title="Uniform Resource Location">URL</abbr> of your app to EZProxy&#8217;s white list, so add another set of lines like this:</p>

<pre><code>T My Awesome Application
U http://example.com
DJ example.com
</code></pre>

<p>See <abbr title="Online Computer Library Center">OCLC</abbr>&#8217;s <a href="http://www.oclc.org/ezproxy/support/default.htm">EZProxy manual</a> for more on how to set up your config.txt file.</p>

<p>Now we need to tell the <abbr title="Lightweight Directory Access Protocol">LDAP</abbr> server what goodies we want in our UserObject. For this test, I just want the username, so I&#8217;ll add the following line before the <code>/LDAP</code> in users.txt:</p>

<pre><code>Set session:uid = login:user
</code></pre>

<p>Now we have EZProxy set up, so we need to handle the session variable once EZProxy passes it to us.</p>

<h4>EZProxy UserObjects</h4>

<p>EZProxy UserObjects are <abbr title="eXtensible Markup Language">XML</abbr> elements that you can manipulate. I used a cURL function Brice wrote to grab the object:</p>

<pre><code>&lt;?php
    $wskey = 'kjshf9hkauy392jlkncq3FBC3F27F2CD4CBA25B0BE858F2A5C3823FEAB33kjyw9uhakjkjashd39uh';
    $url = $_GET['token'] . '&amp;service=getUserObject&amp;wskey=' . $wskey;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Won't fail on errors
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $o = curl_exec($ch);
    curl_close($ch);
?&gt;
</code></pre>

<p>Note that the secret key you added to config.txt should be the same as the key in $wskey.</p>

<p>The userObject will be stored as <code>$o</code>. If you&#8217;re only grabbing the user name here, your UserObject will look like this<a href="#fn4txt" id="fn4"><sup>4</sup></a>:</p>

<pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;userObjectResponse&gt;
    &lt;serviceStatus&gt;OK&lt;/serviceStatus&gt;
    &lt;userDocument&gt;
        &lt;lastAuthenticated&gt;2012-04-23T16:24:04Z&lt;/lastAuthenticated&gt;
        &lt;uid&gt;USERNAME&lt;/uid&gt;
        &lt;/userDocument&gt;
&lt;/userObjectResponse&gt;
</code></pre>

<p>To get the username, we just need to parse the <abbr title="eXtensible Markup Language">XML</abbr> and specify what we want:</p>

<pre><code>&lt;?php
    $data = new SimpleXMLElement($o);
    $user = (string)$data-&gt;userDocument[0]-&gt;uid;
?&gt;
</code></pre>

<h4>Putting it all together</h4>

<p>Now we want to start a session, save the username as a session variable, and redirect back to the application. Simple:</p>

<pre><code>&lt;?php
    session_start(); // Open a new session
        $_SESSION['username'] = $user; // Save the session variable
    session_write_close(); // Make sure the username is written before we redirect

    $new_url = $_GET['newurl']; // URL of the app to authenticate

    header('Location: ' . $new_url);
?&gt;
</code></pre>

<p>Because we are building these tools for internal use, we don&#8217;t need to write anything to handle new users who haven&#8217;t registered. We have a small users table in our database that helps us link users to several of the existing applications we&#8217;ve built, and the existing routine for grabbing user data comes from session variables and cookies. So we needed minimal tweaking to our existing apps to move logins to EZProxy.</p>

<h4>Building the URL</h4>

<p>EZProxy works by passing <abbr title="Uniform Resource Location">URL</abbr>s to the login script in a GET request, so that after authentication you are directed to the service you logged into. Using EZProxy to log in to your own system is no different, but we need to include a few extra parameters, including a <abbr title="Uniform Resource Location">URL</abbr> to build the UserObject, the <abbr title="Uniform Resource Location">URL</abbr> for our script that will parse the userObject (EZLogin.php), and finally the <abbr title="Uniform Resource Location">URL</abbr> of the app or site we&#8217;re logging into. Our new <abbr title="Uniform Resource Location">URL</abbr> will look like this:</p>

<p><code>https://login.ezproxy.mycollege.edu/login?url=https://login.ezproxy.mycollege.edu/userObject?service=getToken&amp;returnURL=http://PATH/TO/EZlogin.php&amp;newurl=http://PATH/TO/APPLICATION</code></p>

<p>Going to this link will first take me to EZProxy, and after logging in I&#8217;m directed to their UserObjects scripts, then to my EZlogin.php script, and finally to my application, with a session variable set for the user&#8217;s username.</p>

<p>Now we&#8217;ve managed to use EZProxy to log into a system we built, which means our users don&#8217;t have to remember 13 different passwords to do their jobs. It also means we have a lot less code to worry about, since EZProxy does the heavy lifting for us. Next up, getting EZProxy to play nice with Illiad, Ares, and Millennium<a href="#fn5txt" id="fn5"><sup>5</sup></a>.</p>

<p>You can grab the whole <a href="https://github.com/mreidsma/EZlogin">EZlogin.php file at Github</a>, if you like.</p>

<hr />

<ol>
<li class="footnote" id="fn1txt"><a href="http://www.libraries.psu.edu/">Penn State</a> highlights this problem by sending their &#8220;<a href="http://matthew.reidsrow.com/img/pennstate.png">My Library Account</a>&#8221; link to a modal window asking the user to choose which system they want to log into. This solution seems forced to me, and puts the burden on the user. In addition, I think by presenting the systems in this way, the library is only highlighting the lack of integration the systems have. <a href="#fn1" title="Return to footnote 1 in the article">&#8617;</a></li>
<li class="footnote" id="fn2txt">For anyone outside the library, EZProxy is how we authenticate our users before sending them on to databases, journals, and other subscription services we provide. <a href="#fn2" title="Return to footnote 2 in the article">&#8617;</a></li>
<li class="footnote" id="fn3txt">I am not a security expert, but I did try my hand at exploiting this system by bypassing EZProxy and setting the session variable. All of my attempts failed, leading me to believe that it was reasonably secure. If you spot a huge security hole in this plan, please let me know: <a href="http://twitter.com/mreidsma">@mreidsma</a> or <a href="mailto:reidsmam@gvsu.edu">reidsmam@gvsu.edu</a>. <a href="#fn3" title="Return to footnote 3 in the article">&#8617;</a></li>
<li class="footnote" id="fn4txt">You can see a more beefed up <a href="http://wcn.oclc.org/index.php/User_Object">version of the UserObject</a> on the OCLC wiki. <a href="#fn4" title="Return to footnote 4 in the article">&#8617;</a></li>
<li class="footnote" id="fn5txt">Campus is planning to upgrade to <a href="http://www.sungardhe.com/Solutions/Banner-Student/">Banner</a> 9 within the year, which requires <a href="http://en.wikipedia.org/wiki/Central_Authentication_Service"><abbr title="Central Authentication Service">CAS</abbr></a>, so maybe this whole project will be moot if they implement it outside of the Banner environment. <a href="#fn5" title="Return to footnote 5 in the article">&#8617;</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/20</guid> 
</item>
<item> 
<title>Control Issues</title>
<link>http://www.matthewreidsma.com/?b=19</link>
<description><![CDATA[<p>A few days ago, my pal <a href="https://twitter.com/#!/ericrumsey/status/193414340748132352">Eric Rumsey retweeted</a> an <a href="http://designfestival.com/the-fold-exists-but-does-it-matter/">article on designing &#8220;for the fold.&#8221;</a> &#8220;The fold&#8221; refers to a print metaphor for the content that appears on the top half of the front page of a newspaper when it is folded. It&#8217;s that content that everyone sees, whether or not they open the paper. In web design, the fold refers to the content that is visible on the screen on the homepage before the user scrolls.</p>

<p>There is only one problem with the fold metaphor in web design: <a href="http://www.thereisnofold.com/">it doesn&#8217;t exist</a>.</p>

<h4>There is no page</h4>

<p>When designers first started working on the web, they brought their metaphors from working with print to the screen. Thus, we&#8217;ve thought about web pages as &#8220;pages&#8221; for the past 15 years, imbuing them with many of the properties of their paper analogues, most notably a fixed size. We&#8217;ve designed first for screens that were 640 pixels wide, and then 800 pixels wide, then 1024 pixels. Then we embraced grids and settled on <a href="http://960.gs/">960 pixels</a>. The whole time we imagined our users seeing our page on a screen the size of our canvas. We started paying attention to heights, so that the most important content made it into the top 480, 600, or 768 pixels. Thus, the fold.</p>

<p>And then came the iPhone.</p>

<h4>What&#8217;s the screen size again?</h4>

<p>Suddenly, we realized that our users might see our websites on different screen sizes. But because we had this fixed canvas mentality, we simply added a second screen width, 320 pixels, to our fixed &#8220;desktop&#8221; width. </p>

<p>The problem is that there never was a fixed canvas to begin with. </p>

<p>Users have always visited our sites with different resolution screens. This is how we settled on our design widths, after all. Once enough folks came to our sites with an 800 x 600 resolution screen, we switched our layout. We knew that a handful of users had screens smaller than our designs, and that a handful had larger screens. But we chose to focus on the majority of screens that visited us, and design for those.</p>

<p>But once again, we were assuming that our users visited our sites in browser windows that filled the width of the screen. We were designing for screen sizes, now browser windows. Essentially, we ignored the fluid nature of the web in favor of a rigid, familiar metaphor that gave us the illusion of control. </p>

<h4>Screen size variety expands</h4>

<p>Well, after the iPhone came the iPad (768 pixels x 1024 pixels), Android phones (varied sizes), the Kindle, the Nook, the Kindle Fire, the iPhone 4&#8217;s retina screen, and now the iPad 3 with its crazy high-resolution retina display. Next month will bring another slew of devices with different screen sizes and resolutions. We&#8217;ll have to add a dozen, or two dozen screen sizes to our list of &#8220;fixed&#8221; canvases to design for if we still with the page metaphor.</p>

<p>I think it&#8217;s time we drop it. There is a better way.</p>

<h4>You Can&#8217;t Control the Viewport</h4>

<p>For years we&#8217;ve pretended that screen size equals browser window size, and it took the proliferation of mobile devices to make us realize our mistake. With the advent of Mobile Safari on the iPhone, Apple popularized a term for the browser window width: the <a href="http://en.wikipedia.org/wiki/Viewport">viewport</a>. Now we can stop pretending we&#8217;re designing for screens and accept the fact that we&#8217;re dealing with viewports. Only our old metaphors aren&#8217;t going to help us anymore. Because we can&#8217;t control the viewport.</p>

<p>So what do we do?</p>

<h4>The Fluid Web</h4>

<p>Last year at <a href="http://aneventapart.com">An Event Apart</a> Boston, <a href="http://adactio.com">Jeremy Keith</a> said something that&#8217;s really stuck with me: &#8220;the web has always been fluid, we just chose to ignore its fluidity.&#8221; We believed deeply in our print metaphor, and although we&#8217;re starting to see the limitations of the metaphor, the web itself hasn&#8217;t fundamentally changed.</p>

<p>In fact, if I were to choose the my greatest professional influence, I might waffle between <a href="http://zeldman.com">Jeffery Zeldman&#8217;s</a> seminal <a href="http://www.zeldman.com/dwws/">Deigning with Web Standards</a> or <a href="http://unstoppablerobotninja.com">Ethan Marcotte&#8217;s</a> terrific <a href="http://www.alistapart.com/articles/responsive-web-design/">Responsive Web Design article</a>, but in the end I think I&#8217;d say <a href="http://johnfallsopp.com/">John Allsopp&#8217;s</a> 2000 article &#8220;<a href="http://www.alistapart.com/articles/dao/">The Dao of Web Design</a>&#8221; has done more than anything else to shape me as a web professional. Allsopp turns the prevalent thinking of the day (and today) on its head:</p>

<blockquote><p>Perhaps the inability to “control” a page is a limitation, a bug of the web. &#8230; Let’s look at this through the other end of the microscope. The fact we can control a paper page is really a limitation of that medium. &#8230; The control which designers know in the print medium, and often desire in the web medium, is simply a function of the limitation of the printed page. We should embrace the fact that the web doesn’t have the same constraints, and design for this flexibility.</p></blockquote>

<p>The current best practice in making pages that are, in Allsopp&#8217;s words, &#8220;adaptable&#8221; is Responsive Web Design. Ethan Marcotte <a href="http://www.alistapart.com/articles/responsive-web-design/">coined the phrase</a> to describe this technique of designing adaptive pages with three technologies: fluid grids, flexible images, and <abbr title="Cascading Style Sheets">CSS</abbr>3 media queries. Designing sites to be responsive (like this one) can save organizations a lot of overhead and maintenance, since you&#8217;re not maintaining content for two different sites (a mobile site and a &#8220;desktop&#8221; site), and you&#8217;re also not losing the battle to do device detection to direct users on different devices to the appropriate site<a href="#fn1txt" id="fn1"><sup>1</sup></a>. It&#8217;s all one site, and it works on any device<a href="#fn2txt" id="fn2"><sup>2</sup></a>.</p>

<h4>The Fold is a Content Problem, Not a Design Problem</h4>

<p>In general, we worry about the fold because we want to make sure that the most important information is seen by all of our users. This is a huge issue for libraries, especially those that build <a href="http://www.lib.uchicago.edu/e/index.html">link farms on their homepages</a>. We have a lot of resources, and we want to make sure everyone knows about them. But our users see a pileup of list items on a website and they run for the clean, simple embrace of Google. You see, we have a content problem in libraries. We try to show too much of it.</p>

<p>I redesigned our library website last August. A few months before I went live, I started talking about cutting about 70% of our content. Everyone <strong>freaked out</strong>. &#8220;We need those pages!&#8221; they said. &#8220;They get used a lot!&#8221; they insisted (despite analytics evidence to the contrary). &#8220;I teach using those!&#8221; I stopped mentioning cutting content.</p>

<p>But I still cut over 70% of the content on our website. And so far, no one has noticed<a href="#fn3txt" id="fn3"><sup>3</sup></a>.</p>

<p>The pages still live on the server, where I monitor their use (almost none). I removed all of the links to them from our website. I was going to wait until it had been a full year to tell everyone that I killed their precious content, but I figure an academic year is plenty. Next week I&#8217;ll delete them from the server forever and no one, especially users, will care one bit.</p>

<p>The point? You most certainly have too much content<a href="#fn4txt" id="fn4"><sup>4</sup></a>. And if you find yourself shuffling links around so that your important ones can live &#8220;above the fold,&#8221; you need to think more about your content than your design. I&#8217;ll write more about that soon,</p>

<p>For now, here are some rules for dealing with content below the fold: </p>

<ol>
<li>Get rid of it.</li>
<li>Go to rule 1.</li>
</ol>

<p>Your users will thank you for it<a href="#fn5txt" id="fn5"><sup>5</sup></a>.</p>

<hr />

<ol>
    <li class="footnote" id="fn1txt">Shameless plug: I&#8217;m leading a <a href="http://www.ala.org/lita/conferences/annual/2012/programs">workshop on Responsive Design at <abbr title="American Library Association">ALA</abbr> Annual</a> (for <abbr title="Library Information Technology Association">LITA</abbr>) this year, Sunday June 24 from 10:30 until noon. You should come. I promise you&#8217;ll have fun.  <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fn2txt">If you marry responsive web design with progressive enhancement and think of layout as an &#8220;enhancement&#8221; (as Marcotte <a href="https://twitter.com/#!/shawnmole/status/166651472396812288">has been suggesting</a> lately) you&#8217;ll find that your site will work on pretty much any device that can render HTML. Even an <a href="http://www.flickr.com/photos/splorp/sets/72157624225682388/with/6141222275/">Apple Newton</a>, for instance.  <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
<li class="footnote" id="fn3txt">Ok, one person has mentioned a missing page to me. But he wasn&#8217;t one of the <strong>freak out</strong> folks, and when I told him it was gone because no one usd it, he said &#8220;Oh, that makes sense.&#8221;  <a href="#fn3" title="Return to footnote 3 in the article">↩</a></li>
<li class="footnote" id="fn4txt">It&#8217;s such a cliche that library websites are so cluttered that <a href="https://twitter.com/#!/walkingpaper/status/174634596388978688">Aaron Schmidt was surprised</a> when he did a content audit that revealed a pretty modest amount of content on a library website. <a href="#fn4" title="Return to footnote 4 in the article">↩</a></li>
<li class="footnote" id-"fn5txt">Some librarians will hate you, but as <a href="http://books.google.com/books?id=gszyGuchgQkC&amp;lpg=PT80&amp;ots=ilTEJ5htOz&amp;dq=tina%20fey%20hand%20caught%20in%20a%20thresher%20book&amp;pg=PT80#v=onepage&amp;q&amp;f=false">Tina Fey said</a>, &#8220;as occupational hazards go, that&#8217;s much better than getting your arm caught in the thresher.&#8221; <a href="#fn5" title="Return to footnote 5 in the article">↩</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/19</guid> 
</item>
<item> 
<title>Automating Logs for Fun and Tenure Review</title>
<link>http://www.matthewreidsma.com/?b=18</link>
<description><![CDATA[<p><a href="http://feltron.com/">Nicholas Felton&#8217;s annual reports</a> are a thing of beauty. He meticulously tracks data about his daily life throughout the year and then collates and designs a report about the year. I could see a great benefit in having this kind of data about my work life at the end of the year for my annual and tenure reviews (especially if it <a href="http://feltron.com/ar08_02.html">looked like his</a>). </p>

<p>I do keep a running log at work. I&#8217;ve done it for years, and it&#8217;s been a great way to look back on a week or month that felt unproductive and see that I really did get some things done (or not, as the case may be). Until recently, I kept the log as a plain text file on <a href="http://dropbox.com">Dropbox</a>, and I&#8217;d manually record the tasks I&#8217;d completed as well as any meetings or conversations I&#8217;d had that I might need to remember.</p>

<p>As plain text, the file was easy to work with. I could view and edit it on any computer as well as my phone. It was easy to grep, given that I remembered what I called that weird task I did last year. But as plain text, I couldn&#8217;t easily visualize the data as a calendar (which is what it was), and data entry relied on my remembering to type the tasks into the log. </p>

<p>To improve my ability to visualize some of the data, I tried out Felton&#8217;s site <a href="http://daytum.com">Daytum</a>, but I was sidetracked often by forgetting to add data manually. I figured there had to be a better way.</p>

<h4>Automating</h4>

<p>Although we use <a href="http://basecamphq.com">Basecamp</a> for managing projects on our team, for my day-to-day task management I waffle between paper and <a href="http://www.hogbaysoftware.com/products/taskpaper">Taskpaper</a>.   Paper is difficult to automate, but Taskpaper is scriptable, and I was already making heavy use of a few Applescripts to augment Taskpaper&#8217;s features. So, I could easily set Taskpaper to log completed tasks to a separate text file, or even grab <a href="http://www.hogbaysoftware.com/wiki/ArchiveAllOrSelectedDoneEntries">a ready-made script</a> that would do it for me<a href="#fn1txt" id="fn1"><sup>1</sup></a>.</p>

<p>But this didn&#8217;t solve the problem of tasks completed from Basecamp, or the other things I logged. Nor does it give me a better way of seeing this date-based data. What I needed, I realized, was for all this stuff to be in a calendar.</p>

<h4>The Calendar as Archive</h4>

<p>A while back, <a href="http://marco.org">Marco Arment</a> pointed out the <a href="http://www.marco.org/2010/03/28/more-ideas-than-time-logarithmic-calendar-view">problem with skeuomorphic calendar designs</a>&#8212;you care very much about the data on today&#8217;s date, and a little bit about the data for the next few days. But you don&#8217;t really care about anything else, especially days that have passed. </p>

<p>I thought about how valuable those day slots could be if it contained more than a history of the appointments I&#8217;ve had. In fact, past calendar days would be invaluable if they tracked things that matter to me (and to the tenure review committee) about what I did that day besides sit through an hour of committee drudgery: Tweets to colleagues at other institutions, Github commits, completed tasks, notes about meetings, foursquare checkins (to show what campus I was at), etc. In short, I wanted an electronic diary, and I wanted it to be automatic.</p>

<p><img src="http://matthew.reidsrow.com/img/cal1.png" alt="Calendar as Archive" /></p>

<h4>If this, then that</h4>

<p><a href="http://ifttt.com">ifttt.com</a> is a web service that lets you link two separate tasks together: if this happens, then do that. For instance, you can create a task that says if someone tags me in a Facebook photo, then save a copy of that photo to my Dropbox. </p>

<p>One of the recipes that came to mind when I was looking to log my day to my calendar was for <a href="http://ifttt.com/recipes/12708">archiving all of your Tweets to Google calendar</a>. This was exactly what I was looking for. If I could log Tweets, maybe I could log everything else!</p>

<p>I started with the services that integrate with ifttt.com that I use in my daily work: <a href="http://twitter.com/mreidsma">Twitter</a>, RSS (for <a href="http://github.com/mreidsma">Github</a>, my <a href="http://matthewreidsma.com">blog articles</a>, Basecamp changes, <a href="http://instapaper.com">Instapaper</a> favorites), and Google Reader. For kicks, I added some personal stuff as well: <a href="http://www.last.fm/user/reidsrow">Last.fm</a> favorites, Facebook posts &amp; photos, and <a href="http://soundcloud.com">Soundcloud</a> favorites<a hef="#fn2txt" id="fn2"><sup>2</sup></a>.</p>

<p>Now I had meetings, Github commits, articles I post, articles I&#8217;ve read and flagged for later use, Tweets to colleagues, location changes, and a handful of personal actions logged to my calendar, automatically, at the moment they happened in real time. But the big missing link was tasks.</p>

<p><img src="http://matthew.reidsrow.com/img/cal2.png" alt="Calendar as Archive, agenda view" /></p>

<h4>In which I cobble together other people&#8217;s code</h4>

<p>I knew I couldn&#8217;t automate tasks written on paper, so I made the choice to move to Taskpaper full-time. I just needed a way to trigger ifttt.com into logging the tasks on my calendar. They offer 2 easy ways to trigger actions: RSS and email. At first I thought about writing an Applescript that would update an RSS feed living in my Dropbox Public folder every time I completed or archived a task<a href="#fn3txt" id="fn3"><sup>3</sup></a>, but I knew exactly how to write an Applescript to send emails. Go with what you know, they say.</p>

<p>My pal <a href="http://twitter.com/adr">John Fink</a> once told me that he does everything possible to avoid writing code. I tend to feel the opposite; I love writing code. But often this distracts me from solving a simple problem. This time I knew I could find most of what I needed in existing Applescripts and I could easily knock together the code for sending the email.</p>

<p>First I visited the <a href="http://www.hogbaysoftware.com/wiki/TaskPaperAppleScripts">Taskpaper Applescript wiki</a>, and looked at Stephano Rauch&#8217;s script for <a href="http://www.hogbaysoftware.com/wiki/ArchiveAllOrSelectedDoneEntries">archiving done tasks to another file</a>, becuause I liked his code for checking that an Archive project existed. Then I grabbed a routine from the guy who inspired my desire to log everything in a format more appropriate to grouping things by time: <a href="http://brettterpstra.com">Brett Terpstra</a>. He wrote <a href="http://brettterpstra.com/log-taskpaper-archives-to-day-one/">a script that archives his done tasks</a> to <a href="http://dayoneapp.com/">Day One</a> every night at 11pm, and I thought I could use his parsing routine for grabbing and reformatting done tasks. All I needed was the script for sending out the email, which was trivial. The final script is below, or you can <a href="https://gist.github.com/2403233">grab it on Github</a>:</p>

<pre><code>
    set archivedTasks to ""

    tell application "TaskPaper"
        tell front document

            -- This next section from Stefano F. Rausch's Archive Entries Applescript
            -- http://www.hogbaysoftware.com/wiki/ArchiveAllOrSelectedDoneEntries

            -- Make sure there is an archive project
            if not (exists project "Archive") then
                make project with properties {name:"Archive"} at end
            end if

            set archive to project named "Archive"

            -- This whole function is from Brett Terpstra's excellent Taskpaper to DayOne script
            -- http://brettterpstra.com/log-taskpaper-archives-to-day-one/

            repeat with _task in search with query "project != Archive and @done"
                if entry type of _task is not project type then
                    -- remove common tags that won't matter after archiving
                    repeat with _tag in {"na", "next", "priority", "waiting"}
                        if exists (tag named _tag of _task) then delete tag named _tag of _task
                    end repeat
                    -- if there's no project tag on the task, 
                    -- add the task's current project as a tag
                    if not (exists (tag named "project" of _task)) then
                        tell _task to make tag with properties {name:"project", value:(name of containing project of _task as rich text)}
                    end if
                    -- append the full text of the entry, including tags, to our log
                    set archivedTasks to archivedTasks &amp; "Tasks: " &amp; (text line of _task)
                    -- archive it
                    move entry id (id of _task) to beginning of entries of project "Archive"

                end if
            end repeat

        end tell
    end tell

    -- Check to see if there were any completed tasks
    if archivedTasks is not "" then
        -- Send mail to ifttt to archive to calendar
        tell application "Mail"
            set theNewMessage to make new outgoing message with properties {subject:"Completed #task", content:archivedTasks, visible:false}
            tell theNewMessage
                make new to recipient at end of to recipients with properties {address:"trigger@ifttt.com"}
                send
            end tell
        end tell
    end if
</code></pre>

<p>I then created <a href="http://ifttt.com/recipes/30256">a task on ifttt.com</a> to look for incoming emails tagged with #task, and then to log those to Google Calendar. The final step was to map the default &#8220;Archive Done Tasks&#8221; keyboard shortcut, &#8984;D, to run my new script. This was most easily done with <a href="http://qsapp.com/">Quicksilver</a>, which allows you to overwrite hot keys. Now I can continue to use Taskpaper as I always have, but when I archive my completed tasks they&#8217;ll automatically be logged to Google Calendar.</p>

<p>Nerdy. And useful. And with the <a href="https://developers.google.com/google-apps/calendar/">Google Calendar API</a>, potentially more useful when I get my tenure portfolio ready later this year<a href="#fn4txt" id="fn4"><sup>4</sup></a>.</p>

<hr />

<ol>
<li class="footnote" id="fntxt1">I loved this feature of <a href="http://todotxt.com/">todo.txt</a>. <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fn2txt">Music is a great trigger for me. I can often forget a technical solution for something at work, only to remember it when I hear the song that was playing when I first thought of it. So you could argue these are work related. <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
<li class="footnote" id="fn3txt">This is still the best solution, I think, which I&#8217;ll write when I get a chance. <a href="#fn3" title="Return to footnote 3 in the article">↩</a></li>
<li class="footnote" id="fn4txt">I&#8217;m just going to call it right now: I&#8217;ve waste a lot of time later this year trying to make all this data look great, like a <a href="http://feltron.com/">Felton Annual Report</a>. You heard it here first. <a href="#fn4" title="Return to footnote 4 in the article">↩</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/18</guid> 
</item>
<item> 
<title>Pattern Libraries</title>
<link>http://www.matthewreidsma.com/?b=17</link>
<description><![CDATA[<p>Too often libraries forget to see their websites in a holistic way, and instead approach each page as a new design challenge<a href="#fn1txt" id="fn1"><sup>1</sup></a>. Add to this a lack of consistency across hosted vendor platforms and you&#8217;ll be lucky if anyone even realizes they are on your library&#8217;s website. That&#8217;s why we created a <a href="http://gvsu.edu/library/ui">User Interface Pattern Library</a>. Instead of thinking of each page as a new design project, our pattern library shows our design solutions as a set of patterns, which we can use and reuse. </p>

<p><a href="http://gvsu.edu/library/ui"><img src="http://matthew.reidsrow.com/img/uipatterns.png" alt="GVSU UI Pattern Library Snippet - Typography Styles" /></a></p>

<p>Of course, we&#8217;re <a href="http://maban.co.uk/66">not the only ones who have made such a guide</a>, nor are <a href="http://adactio.com/journal/5334/">we the only ones sharing ours</a>.</p>

<p>We were originally inspired by <a href="http://www.flickr.com/photos/aarronwalter/5579386649/sizes/l/">Mailchimp&#8217;s <abbr title="User Interface">UI</abbr> Pattern Library</a>, but many others have cropped up lately, including <a href="http://twitter.github.com/bootstrap/base-css.html">Twitter Bootstrap</a> and the excellent (and highly detailed) <a href="http://www.starbucks.com/static/reference/styleguide/">Starbucks&#8217; Style Guide</a>. Ours is a tool that helps us maintain a consistent look, feel, interaction model across all of our sites, including those dragons hosted by vendors<a href="#fn2txt" id="fn2"><sup>2</sup></a>. It&#8217;s a win for us, because we don&#8217;t have to think about presentation and can instead focus on content. And it helps maintain consistency with several people writing code and shipping projects. (Not to mention it makes launching a new project really fast, since 75% of the <abbr title="Cascading Style Sheets">CSS</abbr> will be done by including the pattern library.)</p>

<h4>Getting Started</h4>

<p>If you want to get started with a pattern library, you can download the <a href="https://github.com/gvsulib/UI-Patterns">source of our pattern library</a> or grab Jeremy Keith&#8217;s excellent <a href="https://github.com/adactio/Pattern-Primer">Pattern Primer</a>, a simple php tool for turning code snippets into a pattern library. And as always, share yours so others can learn from what you&#8217;ve done.</p></p>

<hr />

<ol>
<li class="footnote" id="fn1txt">That is if we assume anyone thought about design in the first place. <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fn2txt">I should mention that while we have the guide, now, we haven&#8217;t quite made it through all the old code to get everything on the same page. Ahem. <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/17</guid> 
</item>
<item> 
<title>Your Library Website Stinks and It's Your Fault</title>
<link>http://www.matthewreidsma.com/?b=16</link>
<description><![CDATA[<style>
.presentation-links ul,.presentation-citations ul { list-style-type:none;}
.presentation-video {width:90%;margin: .5em auto;}
@media screen and (min-width: 1000px) {
.presentation {width:60%;float:left;}
.presentation-links {font-size:.9em;color:#444;float: right;width: 25%;}
.presentation li {padding:.6em 0;border-bottom:1px solid #eee;}
.presentation-video {width:80%;margin: .5em auto;}
video{max-width:100%;}
}

</style>
<div class="presentation-video">
<video controls poster="/media/ywstinksweb.png" width="90%">
	<source src="/media/ywstinksweb.mp4" type="video/mp4">
	<source src="/media/ywstinksweb.ogg" type="video/ogg">
	<script src="http://speakerdeck.com/embed/4f616cd23b7466001f00b513.js"></script>
</video>
</div>

<div class="presentation-links">
<ul style="margin-top:1.5em;">
	<li>Comments? <a href="hthttps://twitter.com/#!/search/realtime/%23ywstinks">Use #ywstinks</a></li>
	<li><a href="https://speakerd.s3.amazonaws.com/presentations/4f616cd23b7466001f00b513/YourLibraryWebsiteStinks.pdf">Download the slides <span class="ftype">PDF</span></a></li>
	<li><a href="/media/ywstinksweb.mp3">Download the MP3</a> or <a href="http://huffduffer.com/add/68825">huffduff it</a></li>
	<li>The <a href="http://matthewreidsma.com/ltc2012">Permalink for this talk</a></li>
</ul>
</div>

<div class="presentation">
	
	<div class="presentation-citations">
	
	<p>Last week I gave a talk at the <a href="http://www.macalester.edu/libtechconference/">Library Technology Conference</a> in St. Paul, MN, on how to make your library website better. It was a great conference, and I had enough foresight to record my talk. The audio is a little distant at time (<a href="https://twitter.com/#!/eglath/status/180389412176269312/photo/1">because I pace</a>). Thanks to everyone who came out, and I'd love to hear what you think.</p>
	
	<h4>Resources</h4>

	<ol>
		<li><a href="http://scholarworks.gvsu.edu/library_sp/9/">The Impact of Web-scale Discovery on the Use of a Library Collection</a> by Doug Way</li>
		<li><a href="http://acrlog.org/2012/01/27/convenience-and-its-discontents-teaching-web-scale-discovery-in-the-context-of-google/">Convenience and its Discontents: Teaching Web-Scale Discovery in the Context of Google</a> by <a href="http://twitter.com/pfcoco">Pete Coco</a></li>
		<li><a href="http://www.slideshare.net/whitneyhess/diy-ux">Whitney Hess, <abbr title="Do It Yourself">DIY</abbr> <abbr title="User eXperience">UX</abbr></a></li>
			<li><a href="http://whitneyhess.com/blog/2012/02/27/don-draper-is-the-antithesis-of-user-experience/">Whiney Hess: Don Draper is the Antithesis of User Experience</a></li>
		<li><a href="http://weblog.muledesign.com/2011/03/designed_with_science_a_bit_ab.php">Mule Design on research methods</a></li>
		<li><a href="http://www.amazon.com/Observing-User-Experience-Practitioners-Research/dp/1558609237/ref=sr_1_1?ie=UTF8&qid=1331779788&sr=8-1"><cite>Observing the User Experience</cite></a> by Mike Kuniavsky</li>
		<li><a href="http://matthew.reidsrow.com/articles/12">Why We Do Usability Testing @ <abbr title="Grand Valley State University">GVSU</abbr></a></li>
		<li><a href="http://matthew.reidsrow.com/articles/13">How We Do Usability Testing @ <abbr title="Grand Valley State University">GVSU</abbr></a> (includes IRB documents, Consent forms, etc.)</li>
		<li><a href="http://reinvigorate.net">Reinvigorate.net</a> for real-time analytics</li>
		<li><a href="https://twitter.com/#!/UXYoda">Follow UX Yoda on Twitter</a></li>
		<li><a href="http://matthewreidsma.com/articles/15">Bad Library Websites are a Symptom</a> by Me</li>
		<li><a href="http://gvsu.edu/library/ui"><abbr title="Grand Valley State University">GVSU</abbr> <abbr title="User Interface">UI</abbr> Pattern Library</a> (source code available on <a href="https://github.com/mreidsma/ui_patterns">Github</a>)</li>
		<li><a href="http://www.flickr.com/photos/aarronwalter/5579386649/">Mailchimp UI Pattern Library</a></li>
		<li><a href="http://en.wikipedia.org/wiki/Hick's_law">Hick&#8217;s Law</a></li>
		<li><a href="http://en.wikipedia.org/wiki/Parkinson's_Law_of_Triviality">Parkinson&#8217;s Law of Triviality</a></li>
		<li><a href="https://github.com/mreidsma/360link-reset-2.0">360Link Reset - a script to hack your link resolver</a></li>
		<li><a href="http://www.walkingpaper.org/3974">Library Websites Should Be Smaller</a> by <a href="http://twitter.com/walkingpaper">Aaron Schmidt</a></li>
	</ol>
	
	<h4>Some Library Websites with Focus</h4>
	
		<ul>
			<li><a href="http://lib.ncsu.edu">North Carolina State University</a></li>
			<li><a href="http://lib.byu.edu">Harold B. Lee Library @ BYU</a></li>
			<li><a href="http://www.ecu.edu/cs-lib/">East Carolina University</a></li>
		</ul>
		
	</div>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/16</guid> 
</item>
<item> 
<title>Bad Library Websites are just a Symptom</title>
<link>http://www.matthewreidsma.com/?b=15</link>
<description><![CDATA[<p>I&#8217;m preparing for <a href="http://digitalcommons.macalester.edu/libtech_conf/2012/sessions/1/">a talk next week</a> at the <a href="http://www.macalester.edu/libtechconference/">Library Technology Conference</a> in St. Paul, and this has me looking at a lot of library websites. And they <strong>STINK</strong>. Of course, this isn&#8217;t really news. People have written about <a href="http://roddymacleod.wordpress.com/2010/03/08/many-university-library-websites-suck/">bad library</a> <a href="http://roddymacleod.wordpress.com/2011/09/08/why-do-some-university-library-websites-suck/">Web design</a> before, and many have defended it because of staff limitations, budgets, etc. But simply designing a &#8220;good&#8221; website isn&#8217;t going to solve the problem. It&#8217;s like moving into a rickety old barn, finding it is a bit cold, and installing a programmable thermostat instead of looking at the gaping holes between the clapboards. You see, poorly-designed library websites are a symptom of a much larger problem that technology can&#8217;t fix. The problem is a library culture that gives lip service to user needs while really catering to librarians.</p>

<p>This is why doing a redesign of a website is far less a technical issue than a political one. I&#8217;ve been chatting today with colleagues who say that there are internal battles among different departments about who &#8220;knows&#8221; the user better. Unfortunately, this fight isn&#8217;t about who spends more time researching what users need; it&#8217;s an internal power struggle over whose personal vision for the library website will win out. It&#8217;s about librarian tribes and political infighting, and the end results is always a bad user experience. Always.</p>

<p>I am fortunate to work at <a href="http://gvsu.edu/library">an unusual library</a> that empowers me to build to what our users need.<sup><a href="#fn1txt" id="fn1">1</a></sup> I know what you&#8217;re thinking. &#8220;We build to what our users need! That&#8217;s not unusual!&#8221;&#8221; But the thing is, you don&#8217;t. You don&#8217;t <strong>know</strong> what your users need, because you don&#8217;t take the time to find out. You do what you <strong>think</strong> they need.<sup><a href="#fn2txt" id="fn2">2</a></sup> Who, besides a librarian, would want <a href="http://remmbr.us/img/whodoweserve.jpg">all 48 links from the navigation</a> repeated on the homepage?<sup><a href="#fn3txt" id="fn3">3</a></sup> Now, librarians are not like library users. This is a fundamental rule of user experience design, and a mantra that we should all repeat, endlessly, as we do our work: </p>

<blockquote><p>The user is not like me.<sup><a href="#fntxt4" id="fn4">4</a></sup></p></blockquote>

<p>Go ahead and say it a few more times.</p>

<p>&#8220;But we test with real users!&#8221; you say. Really? Doing one usability test every 3-5 years when you redesign your website doesn&#8217;t tell you anything. Handing out a survey by itself once every few years doesn&#8217;t do anything except waste paper. Done infrequently, these things just let you check off the &#8220;user-centered design&#8221; box when you write up the whole process for <cite>Library Journal</cite>. Understanding your users isn&#8217;t one step in a long process to make a great web experience. It&#8217;s the foundation of that experience. This is about building a relationship with your users. How many successful relationships have you seen that do a quick check-in once every 3-5 years? You should always be doing it. <strong>ALWAYS</strong>.</p>

<p>It shouldn&#8217;t be such a hard sell. After all, when problems comes up at our service desks, do we wait 3-5 years until the next time the desk is &#8220;redesigned&#8221; to address them? Why does a user on the Web count less than a user in person? </p>

<p>Check your gate counts. Now check your Web usage statistics. Is your catalog on your website? Your databases? Then guess what: 100% of your users come through the website. Now, how many come through the front door? Less than 100%. Yet where do your library&#8217;s priorities lie? You can find them written in the staff directory. How many people spend their time dealing with patrons in <a href="http://en.wikipedia.org/wiki/Real_life">meat space</a>? Now how many spend their time building great web experiences? See the discrepancy?<sup><a href="#fn5txt" id="fn5">5</a></sup></p>

<p>Building great experiences on the web is 90% listening to your users. The rest is delivering your user&#8217;s needs with as little organizational interference as possible. Libraries are failing across the board, but it&#8217;s not too late.</p>

<hr />

<ol>
<li class="footnote" id="fn1txt">Mostly. <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fn2txt">Not all libraries ignore their user&#8217;s needs. Look at <a href="http://lib.byu.edu">Brigham Young&#8217;s library homepage</a>. It&#8217;s clear that there is a single focus: finding things. <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
<li class="footnote" id="fn3txt">I&#8217;m not picking on any one library here. Do a Google search for &#8220;<a href="https://www.google.com/search?q=university+library">university library</a>.&#8221; You&#8217;ll find link farms on 15 of the top 20 results. <a href="#fn3" title="Return to footnote 3 in the article">↩</a></li>
<li class="footnote" id="fn4txt">Through listening to <a href="http://whitneyhess.com/blog/">Whitney Hess</a>, I can say that this mantra is taught extensively at <a href="http://www.hcii.cmu.edu/">Carnegie Mellon&#8217;s Human-Computer Interaction Institute</a>, although I can&#8217;t get more specific with the attribution. Anyone know? <a href="#fn4" title="Return to footnote 4 in the article">↩</a></li>
<li class="footnote" id="fn5txt">We can, of course, continue to ignore this human resources problem into the future, but these digital chickens will come home to roost. Why not plan for them, maybe install a programmable thermostat in their coop? <a href="#fn5" title="Return to footnote 5 in the article">↩</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/15</guid> 
</item>
<item> 
<title>Fear, JavaScript, and Progressive Enhancement</title>
<link>http://www.matthewreidsma.com/?b=14</link>
<description><![CDATA[<p>I recently redesigned one of our hosted services, and the vendor was afraid of JavaScript. It&#8217;s no wonder; for years, developers used JavaScript to build sites that wouldn&#8217;t work unless JavaScript was enabled.<sup><a href="#fntxt1" id="fn1">1</a></sup> Some of those developers even did nasty things with JavaScript, so it ended up with a bad reputation. But JavaScript isn&#8217;t inherently bad. Used as the basis for a philosophy of <a href="http://en.wikipedia.org/wiki/Progressive_enhancement">progressive enhancement</a>, it can be a developer&#8217;s best friend. Here&#8217;s how to use JavaScript to responsibly enhance your library&#8217;s website.</p>

<h4>Progressive Enhancement</h4>

<p>I start every webpage with semantic <abbr title="Hypertext Markup Language">HTML</abbr>. No <abbr title="Cascading Style Sheets">CSS</abbr>, no JavaScript, no thought to presentation. I just make it well-structured in <abbr title="Hypertext Markup Language">HTML</abbr>. After I have a semantic page, I go back through and write separate <abbr title="Cascading Style Sheets">CSS</abbr>. Here I&#8217;ll add classes and wrap content in divs to help with presentation, but I never make a change to the structure that doesn&#8217;t fit with the semantic nature of the document. After I&#8217;m done with the presentation, I go back through and add any interaction JavaScript. I never put JavaScript inline in the <abbr title="Hypertext Markup Language">HTML</abbr> document. I include it all in a separate file, so that JavaScript is not required to read the content or interact with the forms. After all, I want each of these layers, semantics, presentation, and interaction, to be separate. As the user&#8217;s device supports more features, I progressively enhance the experience.</p>

<h4>Example of the Big Stuff: Getting Animated</h4>

<p>When I met with our Scholarly Communications team to tart up our <a href="http://scholarworks.gvsu.edu">institutional repository</a>, it became clear that the <abbr title="Institutional Repository">IR</abbr>&#8217;s homepage would primarily be a marketing tool to entice faculty and departments to get on board with Open Access<sup><a href="#fntxt2" id="fn2">2</a></sup>.  I suggested a slideshow of images to highlight faculty who are already depositing their work in the <abbr title="Institutional Repository">IR</abbr>. Not only would this serve as a great and highly visible marketing tool for the Scholarly Communications, but it would help to break up a text-heavy website that serves as a repository for text-heavy articles. </p>

<p>For the slideshow, I chose <a href="http://jquery.com">jQuery</a>, a powerful JavaScript library, as well as <a href="https://github.com/Wilto/Dynamic-Carousel">Mat Marquis&#8217; responsive carousel</a>. The script works by taking an unordered list of images and showing one at a time, animating the transitions between images. As you can see, the markup is nice and semantic.</p>

<pre><code>
&lt;ul&gt;
    &lt;li&gt;&lt;img src="img/image1.jpg" alt="Professor Smith presenting at Awesome Conference 2011" /&gt;&lt;/li&gt;
    &lt;li&gt;&lt;img src="img/image2.jpg" alt="Students being studious" /&gt;&lt;/li&gt;
    &lt;li&gt;&lt;img src="img/image3.jpg" alt="Professor Jones with her nose buried in a book" /&gt;&lt;/li&gt;
&lt;/ul&gt;
</code></pre>

<p>There is a downside to this, though. If JavaScript isn&#8217;t available, this is what you get:</p>

<div>
    <img src="http://matthew.reidsrow.com/img/nojs-image-list.jpg" alt="Images bunched on top of each other when JavaScript isn't available" />
</div>

<p>The unordered list is displayed as just that: a list of images. This creates an incongruous pile-up of images that confuses users. So how can we address this consequence of using JavaScript? Is it by running in fear? No. The answer is JavaScript<sup><a href="#fntxt3" id="fn3">3</a></sup>.</p>

<p>Since the slideshow will only work when JavaScript is available, why not make the unordered list available only when JavaScript is available? Using jQuery, this is a piece of cake. Instead of hard-coding the list into our homepage, we&#8217;ll add an appropriate element for non-JavaScript browsers and then replace it with JavaScript if we can.</p>

<p>I decided to use the first image in our list as the &#8220;non-JavaScript&#8221; fallback, since semantically a slideshow is just one image at a time and visually the design would be unchanged. This is the markup:</p>

<pre><code>
&lt;div id="slideshow-image"&gt;&lt;img src="img/image1.jpg" alt="Professor Smith presenting at Awesome Conference 2011" /&gt;&lt;/div&gt;

&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat...&lt;/p&gt;
</code></pre>

<p>This is nice, semantic markup, and using CSS, we&#8217;ll make it look sharp. But when JavaScript is available, we want to change the markup to work with the slideshow. Using jQuery, we simply need to include the following code in our script:</p>

<pre><code>
$(document).ready(function() {
    $("#slideshow-image").html('
        &lt;ul class="slidewrap"&gt;
            &lt;li class="slide"&gt;&lt;img src="img/image1.jpg" alt="Professor Smith presenting at Awesome Conference 2011" /&gt;&lt;/li&gt;
            &lt;li class="slide"&gt;&lt;img src="img/image2.jpg" alt="Students being studious" /&gt;&lt;/li&gt;
            &lt;li class="slide"&gt;&lt;img src="img/image3.jpg" alt="Professor Jones with her nose buried in a book" /&gt;&lt;/li&gt;
        &lt;/ul&gt;');
});
</code></pre>

<p>Now the content of the slideshow-image div will be replaced with the <abbr title="Hypertext Markup Language">HTML</abbr> above<sup><a href="#fntxt4" id="fn4">4</a></sup>. Add in the code to animate the slideshow, and we have a seamless enhancement for users who have JavaScript-enabled browsers. It&#8217;s a win on the semantic level, a win on the presentation level, and a win on the interaction level. Everyone gets a version of the page most appropriate to their browser&#8217;s abilities. It&#8217;s like the Web version of a Montessori school.</p>

<h4>The &#8220;Small&#8221; Stuff: Accessibility</h4>

<p>This method of layering JavaScript over semantic <abbr title="Hypertext Markup Language">HTML</abbr> is used throughout our site. We use it for high-impact things like slideshows and our drastically simplified link resolver, but we also use it for small things that make accessability a priority while not shackling great presentation. One example of the latter is our Summon search bar, present at the top of every library webpage.</p>

<div>
<img src="http://matthew.reidsrow.com/img/summon-box.png" alt="Summon Search Box at Grand Valley State University Libraries" />
</div>

<p>To be semantically correct and accessible, this input field needs a label, but visually, we want to use placeholder text to replicate the label. So we used progressive enhancement to solve these seemingly conflicting needs. I see four scenarios I needed to account for:</p>

<ol>
<li>Browser with native placeholder and JavaScript support</li>
<li>Browser with JavaScript support but no placeholder support</li>
<li>Browser with neither JavaScript nor placeholder support</li>
<li>Browser with placeholder support but no JavaScript support</li>
</ol>

<p>First, we started with semantic <abbr title="Hypertext Markup Language">HTML</abbr>:</p>

<pre><code>
&lt;div id="summon-search-box"&gt;
    &lt;label for="search" id="summon-label"&gt;Find Books, Articles, and more&lt;/label&gt;&lt;br /&gt;
    &lt;input name="search" placeholder="Find Books, Articles, and more" type="text" /&gt;
&lt;/div&gt;
</code></pre>

<p>Here is what we need to do in each scenario:</p>

<ol>
<li>Hide the label, since placeholder support will show the text the way I want it. </li>
<li>Hide the label and use JavaScript to patch placeholder support. </li>
<li>Nothing. The label will be visible and will remain semantic. </li>
</ol>

<p>In the last scenario, there isn&#8217;t much we can do. We&#8217;ll have both a label and a placeholder visible. In our case, this rarely ever happens, so I didn&#8217;t worry about it. In any case, the form is still functional, there is just label redundancy. I decided I could live with it. So the presentation and interaction work needed to focus on the first two scenarios.</p>

<p>In both of the scenarios when JavaScript is available, we need to hide the label. So I started with this jQuery:</p>

<pre><code>
$("#summon-search-box").find("label").hide();
</code></pre>

<p>That takes care of the first scenario. For the second scenario, I detected placeholder support with the JavaScript library <a href="http://modernizr.com">Modernizr</a>. If placeholder was not supported, I used a script to look for placeholder text and swap it out to the value until the input is focused on. This duplicates the functionality of the native placeholder text. The code I used was written by <a href="http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html">Nico Hagenburger</a>, and it works great. The full code is below:</p>

<pre><code>
if(!Modernizr.input.placeholder){ 

    $('[placeholder]').focus(function() {
      var input = $(this);
      if (input.val() == input.attr('placeholder')) {
        input.val('');
        input.removeClass('placeholder');
      }
    }).blur(function() {
      var input = $(this);
      if (input.val() == '' || input.val() == input.attr('placeholder')) {
        input.addClass('placeholder');
        input.val(input.attr('placeholder'));
      }
    }).blur();
    $('[placeholder]').parents('form').submit(function() {
      $(this).find('[placeholder]').each(function() {
        var input = $(this);
        if (input.val() == input.attr('placeholder')) {
          input.val('');
        }
      })
    });
}   
</code></pre>

<p>So we can give our users engaging, rich experiences on the Web without breaking our sites for people with less-capable browsers (including many mobile phones). We just have to get over that irrational fear.</p>

<hr />

<ol id="footnotes">
<li class="footnote" id="fntxt1">Summon, I&#8217;m looking at you. <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fntxt2">Most of our <abbr title="Institutional Repository">IR</abbr> traffic comes from Google directly to the PDF stored in the repository. Of the rest, I suspect a significant portion are &#8220;vanity searches,&#8221; with <abbr title="Grand Valley State University">GVSU</abbr> faculty searching for either their own work or for the work of colleagues. <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
<li class="footnote" id="fntxt3">Sadly, <a href="http://bepress.com">the vendor</a> was too afraid of JavaScript to let me use any of the code I wrote, so were stuck with a crummy, ugly slideshow that doesn&#8217;t have a semantic <abbr title="Hypertext Markup Language">HTML</abbr> fallback for non-JavaScript users. (I&#8217;m not sure how that is better, but after 4 months of arguing with them, I gave up. You pick your battles. <a href="#fn3" title="Return to footnote 3 in the article">↩</a></li>
<li class="footnote" id="fntxt4">I know jQuery has <a href="http://api.jquery.com/replaceWith/">replaceWith</a>, which would allow me to eliminate the div, have the id on the img tag, and then just swap out the <abbr title="Hypertext Markup Language">HTML</abbr>, but support for replaceWith is spotty in IE7 and below. And we&#8217;re in academia, where IE7 sometimes seems like the cutting edge. Oi vey. <a href="#fn4" title="Return to footnote 4 in the article">↩</a></li>
</ol>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/14</guid> 
</item>
<item> 
<title>How we do usability testing</title>
<link>http://www.matthewreidsma.com/?b=13</link>
<description><![CDATA[<p>Although I’ve worked in academic libraries for the past 8 years, my web development experience is from running my own shop, outside of the University world<a href="#fntxt1" id="fn1"><sup>1</sup></a>. This is a land where results matter more than statistics and reports, and everything you do has a price tag attached to it. As such, usability testing is frequently done on the cheap without a committee to write questions and do recruiting. I’ve kept it that way here at <abbr title="Grand Valley State University">GVSU</abbr>. The basic tenets of my usability test plan are:</p>

<ol>
<li>Do one test every month.</li>
<li id="tenet2">Focus on what users *do*, not what we’d like them to do.</li>
<li>No more than 5 questions for a 30 minute test.</li>
<li>Test no more than 3 students or faculty a month.</li>
<li>Invite everyone from the library to observe. <strong>EVERYONE</strong>.</li>
</ol>

<p>I can tell you from experience that getting librarians, front-line staff, and administrative staff all in a room together will get you better feedback than a room with only librarians or <abbr title="Information Technology">IT</abbr> staff. I also guarantee you’ll get buy-in on making changes from all levels. First, you’re letting everyone see what is wrong with the site by showing actual users interacting with it. It’s pretty hard to ignore problems when they are encountered in actual use. Second, you’re letting everyone participate in the discussion. Not only does this get you better feedback, but it also means employees across all levels of your organization will appreciate getting a chance to contribute to something as visible as the website<a href="#fntxt2" id="fn2"><sup>2</sup></a>.</p>

<p>First, let me say that you can learn everything you need to know about usability testing from Steve Krug’s book <a href="http://rocketsurgerymadeeasy.com"><cite>Rocket Surgery Made Easy</cite></a>. We’ve adapted a few things to accomodate the special needs of a University library, but those might not be appropriate for your situation. </p>

<h4>Setting up the test</h4>

<p>The test is simple. We set up two spaces: a space for the test and a space for observation. I use my office for the test, setting up a monitor, a keyboard, a mouse, and a USB microphone hooked up to my laptop. Upstairs in the conference room I set up the observation room. For that I use my student’s laptop, hooked up to the room’s projector and sound system. You want to make sure that the observers can see the user’s screen and hear what is being said. That’s it for setup: I bet you already have all that stuff in your office.</p>

<p>For the first few tests, I also ordered food for the observation room, as a way to bribe staff into coming. Once I got a good turnout, however, everyone realized the importance of the tests and comes whether or not there is food.</p>

<p>Since we use Macs, we run Apple’s built-in AIM chat client iChat on both machines. iChat has a screen sharing feature that allows us to share the screen and audio from my office up to the conference room. It’s built-in and easy to use, and it doesn’t cost anything. If you have PCs, <a href="http://www.skype.com/intl/en/features/allfeatures/screen-sharing/">Skype has a similar feature</a>. </p>

<p>That’s it for gear? Surely there is something fancier we can do? Getting fancy with your gear is just a distraction from getting the work done. Once you’ve got a few tests under your belt, then see if you feel like you need to invest in something better. After all, the goal here is to make your website better, <strong>not</strong> to do usability tests. Usability tests are just the vehicle to get you to a better site. If you want to get in shape, do you go running or do you buy newer, fancier running shoes? Which is going to help you trim your waistline?</p>

<h4>What happens during the test</h4>

<p>While I walk the user back to my office, I run through the basics of the test. Even though we’ve asked them to look over the <a href="http://gvsulib.com/usability/Consent_form.pdf">consent form</a>, they never do. I want them to know that I’m planning on recording them<a href="#fntxt3" id="fn3"><sup>3</sup></a> and that other people can hear our conversation before they are committed. No one has ever backed out, but they appreciate the warning before I spring it on them with a live microphone. I then read <a href="http://gvsulib.com/usability/Script.pdf">from a script</a> all the details of the test. Once I’m done, I ask the user to sign a consent form that allows me to record the session. </p>

<p>I then ask a few questions about the user’s major, interests, and internet use, mostly as a warm up. I also want to find out if he or she has had any library instruction in their classes, although sometimes I wait to bring this up until we work through tasks. </p>

<p>Now we get to the heart of the test. I have 5 tasks that I have written up as scenarios that I read aloud to the user. I ask him or her to follow the instructions in the scenario, and to talk aloud about the choices he or she makes on the site. This is where you’ll learn the most about how well your site is succeeding.</p>

<p>Here’s an example: I wanted to see how users found articles with incomplete citation information, so I wanted them to find a newspaper article by Lawrence Lessig about Google and copyright. That’s the task. To make it into a scenario, I provided some context: </p>

<pre><code>You meet with your Computer Science professor about an upcoming paper on intellectual property and the Web. She mentions an article by the lawyer Lawrence Lessig about Google and Copyright published in a newspaper, but she can't remember the paper or when it was published. Find this article.
</code></pre>

<p>Notice that I don’t have any tasks asking users to find our policies pages, or to learn more about a particular database. That’s because users don’t actually do these things; librarians do them. And, as <a href="http://matthewreidsma.com/articles/12">I’ve said before</a>, the website is for users, not librarians. (See also: <a href="#tenet2">website tenet #2</a>.)</p>

<p>When all the tasks are over, I ask the observation room for follow-up questions. I then give the user a thank-you gift (in our case, t-shirts) and get ready for the next test. One test takes about 30 minutes.</p>

<p>Once all the tests are completed, I join the observation room and we spend an hour hammering out what we saw, what was a problem, and how we are going to address it. I try to limit the actual to-do list to 3-4 items, to make sure we can get them all done by the next test. There is no report other than an all-staff email that breaks down the tasks we’re going to work on over the next month, and no follow-up meetings, except for the next test. </p>

<p>We routinely have 12-18 people in our observation room, and almost universal buy-in on changes made to the website. In the past six months alone our website has transformed, from a typical library link farm to a usabile, simplified search engine our faculty and students seem to enjoy using. Below you can see the transition we’ve made in successive iterations, all as a result of usability tests.</p>

<p><video controls="controls" poster="/media/web-revisions.jpg" style="max-width: 100%;">
<source src="/media/web-revisions.ogv" type="video/ogg">
<source src="/media/web-revisions.mp4" type="video/mp4">
<object width="480" height="360"><param name="movie" value="http://www.youtube.com/v/X1s8pAqjpYM?version=3&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/X1s8pAqjpYM?version=3&hl=en_US" type="application/x-shockwave-flash" width="480" height="360" allowscriptaccess="always" allowfullscreen="true"></embed></object>
</video></p>

<p>We’re not done. We keep testing and making changes to the site, and will keep doing so. It is the single most important thing we do to make our library experience better for our users, since 100% of our patrons come through the website while only 50-60% come through the front door. It’s easy to do and only takes a little bit of time to yield incredible insights. So what are you waiting for?</p>

<h4>Resources</h4>

<ul>
<li><a href="http://gvsulib.com/usability/GVSU_Test_Protocol.pdf"><abbr title="Institutional Review Board">IRB</a> test protocol <span class="ftype">PDF</span></a></li>
<li><a href="http://gvsulib.com/usability/Consent_form.pdf">Consent Form <span class="ftype">PDF</span></a></li>
<li><a href="http://gvsulib.com/usability/Script.pdf">Test Script <span class="ftype">PDF</span></a></li>
<li><a href="http://gvsulib.com/usability/instructions-for-observers.pdf">Sample Packet for Observation Room, with scenarios <span class="ftype">PDF</span></a></li>
</ul>

<p><hr />
<ol>
<li class="footnote" id="fntxt1">Some call this the “real world.” <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fntxt2">Always make sure to give credit where credit is due. When someone else comes up with an idea, remember to always attribute it to them. You’ll do enough awesome things in your job, there is no sense stealing other people’s good ideas. Who knows, they might bake you cookies! <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
<li class="footnote" id="fntxt3">You don’t need to record the sessions, but i find it useful to go back when I’m working on improvements to the site and watch exactly how the users had problems. Plus, we already had a license for <a href="http://techsmith.com">Camtasia</a> so it wasn’t an additional expense. <a href="#fn3" title="Return to footnote 3 in the article">↩</a></li>
</ol></p>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/13</guid> 
</item>
<item> 
<title>Why We Do Usability Testing</title>
<link>http://www.matthewreidsma.com/?b=12</link>
<description><![CDATA[<p>At Grand Valley State University, we do monthly usability testing on our website. (Yes, I said <em>monthly</em>.)  I&#8217;m going to just let that sink in for a moment. </p>

<p>We don&#8217;t have a huge budget for testing; our direct costs run about $30-40 a month. We don&#8217;t have a huge Web team; it&#8217;s just me and one 10-hour a week student. We don&#8217;t have a dedicated room for running the test or for doing observation; instead we use my office and a conference room. We don&#8217;t have a lot of technology dedicated to the test; we use my laptop and a decommissioned MacBook from 2008, along with a USB microphone. We just know that usability testing and the constant, iterative improvements it helps us make to our website are important, so we make it work.</p>

<p>I was fortunate when I arrived at <abbr title="Grand Valley State University">GVSU</abbr> last year, because the staff already knew that they needed someone to perform regular usability tests on the website. In normal universities, that means once a year the Web team dusts off some really expensive software <a href="#fntxt1" id="fn1"><sup>1</sup></a> and takes the storage boxes out of the usability testing lab, and sets up a big, 3-day event with a lot of statistics-collecting and silly question writing and whatnot. Nothing on the website ever gets changed because of these tests, but someone will probably wrangle an article full of charts and graphs out it, and maybe a few conference presentations where they fly across the country to read a bullet list out loud to a room of over-caffeinated librarians. The reason university libraries run their usability tests this way is because the website is made for the librarians, so why wouldn&#8217;t the usability tests benefit the librarians as well?</p>

<p>I have a mantra that I repeat in meetings and presentations. &#8220;The website is not for librarians.&#8221; Say it with me. If you&#8217;re a librarian (as I am) look in a mirror and repeat after me:</p>

<p>&#8220;The website is not for you.&#8221;</p>

<p>The website is for our users. Our students. Our faculty. And yes, our staff. But mostly for our students and faculty. Look at your average university website and see what sorts of things you can do on the site. You can probably read an <abbr title="Frequently Asked Questions">FAQ</abbr> with 300 entries, see folders full of policies, choose from a number of non-user friendly research tools (Database A-Z lists, Federated search engines, library catalogs, etc.)<a href="#fntxt2" id="fn2"><sup>2</sup></a>. That&#8217; s because all of this stuff is what we librarians want, and what we like to do. We love writing policies. You know who never looks at policies? Our users<a href="#fntxt3" id="fn3"><sup>3</sup></a>. We like looking at Database titles. We know, for instance, that you&#8217;ll find different things in a Knovel database than in Lexis Nexis. But you know who doesn&#8217;t know that, and frankly, shouldn&#8217;t have to care? Our users. They hate Database A-Z lists. Don&#8217;t believe me? Try asking one of them, or better yet, have them use one in a usability test. I won&#8217;t even say &#8220;I told you so.&#8221;</p>

<p>Here&#8217;s what our users do on our websites: find stuff. <strong>That&#8217;s it</strong>. And when I say &#8220;stuff,&#8221; I don&#8217;t mean policies, old assessment reports, strategic plans, and mission statements<a href="#fntxt4" id="fn4"><sup>4</sup></a>. I mean articles. I mean books. I mean sources that will help them with research. They want to find that stuff and they don&#8217;t understand why it&#8217;s so hard. If they want a book, we tell them they need to use the catalog. If they want to find an article, they need to know the best subject-specific database (and all of its idiosyncrasies). Looking for help with your research? You need to know that Subject Guides or Libguides is the right place for you. This is ridiculous. Users have enough going on in their lives, they shouldn&#8217;t have to know all of this library jargon. They want to have one big fat search box that they can find stuff in, like Google. How do I know this? Do I have any statistics or fancy reports to back this up? No, but every month I sit down with actual users of our website to see how they find stuff and to ask them what they want. And I can tell you, they&#8217;re not itching for more policies pages.</p>

<p>This frustration brought <abbr title="Grand Valley State University">GVSU</abbr> to <a href="http://gvsu.summon.serialssolutions.com">Summon</a>. Summon is a web-scale discovery service from Serials Solutions. It&#8217;s not perfect, by a long shot. But it&#8217;s a start. And one of the first things I set out to do when I got here was to see how our users were using it. We&#8217;d already spent a good deal of time looking at usage statistics and comparing and contrasting things. Statistics can tell you a lot, but they can&#8217;t give you the context of why or even how someone uses something. The only way to find out how and why someone is using your website is to sit down next to them and watch them. Ask some questions. And then determine what got in their way and try to fix it. That&#8217;s it. By shedding the usual statistics-and-report dance, we keep the tests focused on what really matters: improving the website. </p>

<p>Google is great at improving its site to be better for users. <a href="http://matthewreidsma.com/articles/6">It has to</a>. One of the most powerful tweaks they&#8217;ve made in the past few years shows you results from Web, images, shopping, and places all from a single search. Summon does show results from databases, our catalog, digital collections, and LibGuides all on one screen, but it does so poorly. Based on watching our users interact with Summon during our usability tests we&#8217;re working on improving the search results screen so that users don&#8217;t need to know which tool is appropriate before they search. A few places have already done this to good effect. The University of Michigan does this with their search tool <a href="http://www.lib.umich.edu/mlibrary/search/searchtools%3Bmirlyn%3Bejournals%3Blibguides%3Bwebsite%3Bdigitalcollections%3Bwebsite_users%3Bdeepblue/stress">Deep Blue</a>, although they do not use Summon, and do not search articles. (They have written a lot about <a href="http://www.lib.umich.edu/mlibrary/search/searchtools%3Bmirlyn%3Bejournals%3Blibguides%3Bwebsite%3Bdigitalcollections%3Bwebsite_users%3Bdeepblue/stress">usability testing on their Deep Blue</a>, though.) <a href="http://www.lib.ncsu.edu/search/about.html">North Carolina State University</a> has one of the <a href="http://www.lib.ncsu.edu/search/index.php?q=stress&x=0&y=0">cleanest search results screens</a>, pulling articles from Summon, books from the catalog, hits from the website, as well as database and journal recommendations. </p>

<p>This kind of change is not just something that we&#8217;ve heard our users say they want. We could scrap usability tests and do surveys and get that kind of information. Instead, this is something we see is needed because we watch our users trying to use our site like this now, even though the capability isn&#8217;t there yet. We&#8217;d never know that if we didn&#8217;t watch a few people use our site every few weeks and then try to fix their problems for the next time. It&#8217;s another channel we&#8217;ve opened in a dialogue with our users about how we can help them be awesome at their work. Running regular tests reminds me that the library website isn&#8217;t an end in itself, another trap libraries fall into. (Who goes and searches library websites for fun?) The library website is a just tool that should get out of the user&#8217;s way and help him or her do her job.</p>

<p><hr />
<ol>
<li class="footnote" id="fntxt1">I&#8217;m looking at you, <a href="http://www.techsmith.com/morae.asp">Morae</a>. <a href="#fn1" title="Return to footnote 1 in the article">↩</a></li>
<li class="footnote" id="fntxt2">If your library website is like most you can probably also get to any page on the website right from the home page. Libraries love links so much that most of them look like spam link farms, designed to trick Google. Every other successful website on the planet gave that up in the late &#8217;90s, but not libraries. We librarians <em>like</em> to see a big list of resources because it makes us seem more relevant. &#8220;Look at all this good stuff we have! We&#8217;re not just for novels anymore! We won&#8217;t shush you, either!&#8221; <a href="#fn2" title="Return to footnote 2 in the article">↩</a></li>
<li class="footnote" id="fntxt3">I have a theory that policies exist on the website so that public service staff have something to point to when they tell a patron they owe money, or can&#8217;t do something like eat in the library. &#8220;I&#8217;m sorry, but eating isn&#8217;t allowed in here. It&#8217;s stated clearly in our policies, on the website.&#8221; <a href="#fn3" title="Return to footnote 3 in the article">↩</a></li>
<li class="footnote" id="fntxt4">I know, your provost wants those things on the website. That&#8217;s ok. Just understand that no one besides other provosts and librarians will ever look at them and you&#8217;ll sleep better at night. <a href="#fn4" title="Return to footnote 4 in the article">↩</a></li>
</ol></p>
]]></description>
<author>mreidsma@post.harvard.edu (Matthew Reidsma)</author>
<pubDate>Fri, 18 May 2012 12:00:00 -0400</pubDate>
<guid>http://www.matthewreidsma.com/article/12</guid> 
</item>
</channel></rss>
