Tuesday, May 10, 2016

How to run an heuristic evaluation

Being a user experience designer often requires juggling tensions, whether they be juggling creative tension, managing stakeholder tension, or constantly living in the tension between design expertise and user-centred design methods. In the early 1990’s this third tension sparked a lot of high-level thinking by people wanting to define, once and for all, what the principles and best practices for interface design should be. But they didn’t quite crack it.

The process we use for heuristic evaluations today can be traced directly back to that period. Rolf Molich and Jakob Nielsen published their foundational ‘Improving a human-computer dialogue’ in 1990, building on work by people like David Cheriton (1976), Neilsen’s future consulting partner Donald Norman (1983), and Ben Schneiderman (1987), amongst others.

At the same conference where Molich and Nielsen presented their heuristic evaluation method, Clayton Lewis, Peter G Polson and their colleagues at the Institute of Cognitive Science presented a walkthrough methodology tackling the same problems. Usability practitioners recognised the benefits of combining these two methods, and although the naming rights are a bit grey, this combination is what most UXers consider an heuristic evaluation today.

The good and the bad

There are some good reasons why you might use this technique:

  • It can be a quick and inexpensive way to generate feedback for designers
  • It can be used pretty early in the design process
  • It can give a more comprehensive (death by a thousand cuts!) assessment of the system than usability testing
  • Assigning the correct heuristic can suggest a good place to start for corrective measures
  • You can use it together with other usability methods

But there are also some fundamental problems with the technique, so it is  critical that you understand its limitations and dangers too:

  • For it to be done well, the evaluators should ideally be double-experts; usability experts as well as experts in the subject domain of the project (i.e. finance, education, insurance, etc)
  • You need to use more than one evaluator—this is often forgotten. A single expert working in isolation may only pick up 20% of the usability issues. Even ten experts may only surface 85%. A good compromise between effectiveness and practicality is to use between 3-5 evaluators, which gives you about a 60% hit rate.
  • Finding people suitable as evaluators can be difficult, and nowadays it may turn out to be more expensive than running a proper usability test with 5 participants.
  • Using heuristics to identify usability issues is a relatively black-and-white approach. It will identify more minor issues than usability testing, but it will also have plenty of ‘false positive’ issues that aren’t really problems at all.
  • Placing all of your trust in the heuristics may not be well founded. I’m not sure that Nielsen’s heuristics have been formally validated. Does anyone know?

The argument goes: “If you’re such an expert and have the experience you claim, how come you can’t just give us the answers for the right design?” Well, if you have sufficient experience and expertise in usability, you’ll also be well aware that users are notoriously unpredictable. It’s common to experience ‘aha!’ moments in usability tests that show something we never expected, even when the design seems to conform to key heuristics perfectly.

Heuristic evaluations are no substitute for usability testing, but they can help improve the potential of usability tests if they’re used in conjunction; running a heuristic evaluation before beginning a round of usability tests will reduce the number and severity of design errors discovered by users, helping minimise problems and distractions during the testing.

Getting your hands on some suitable heuristics

Although Nielsen is probably the best known, there are many other sets of heuristics, and some of them are considered better. Here’s a list of all the ones I know of. Any that I’ve missed?

  • Jakob Nielsen’s Heuristics for User Interface Design (1994 version)
  • Ben Shneiderman’s Eight Golden Rules of Interface Design from his book Designing the user interface (1987)
  • Jill Gerhardt-Powals’ 10 Cognitive Engineering Principles
  • Connell & Hammond’s 30 Usability Principles
  • Bastien and Scapin created a set of 18 Ergonomic criteria
  • Tognazzini, B.First principles of interaction design (2003)
  • Lidwell, W., Holden, K., and Butler, J. Universal principles of design (2003)
  • Constantine, L. and Lockwood, L. (1999). Software for use. Addison-Wesley.
  • Cooper, A. and Reimann, R. (2003). About face 2.0: The essentials of interaction design. John Wiley & Sons.

If you really want to get stuck in, check out Smith & Mosier’s nine hundred and forty four guidelines for the design of user-interfaces (from 1986).

Susan Weinschenk and Dean Barker decided to amalgamate the usability guidelines from multiple sources (including Nielsen’s, Apple and Microsoft) and did a massive card sort resulting in twenty of their own heuristics.

I use Jill Gerhardt-Powals’ heuristics as they take a more wholistic approach to evaluating the system, which I find easier to get my head around.

Running your own heuristic evaluation

Ingredients:

  • 3-5 experts
  • a set of heuristics
  • a list of user tasks
  • a system to test (or screen shots/prototypes at a stretch)
  • a standard form for recording your notes

Before you start:

  • You need to know who your users are, and what their goals are. Your existing research may set the scene with scenarios, personas or story mapping, so use those to get up to speed. Do more research if you don’t have a good idea of who you’re designing for.
  • You also need to define the tasks that your users need to accomplish to achieve their goals, and how these work with the design vision you want to evaluate.
  • There will be lots of different tasks, so I find it useful to rank them and focus on the most important. You can achieve this by listing them all (there may be hundreds of tasks) and getting lots of users to choose just their top 5. This is a statistical, quantitative method, so the more the merrier—two hundred user respondents is a ballpark. It’s also critical that you use the right language and terminology for your tasks, as users are only going to be skim reading to try and pick out their favourite tasks. Get your handful of stakeholders to do the same activity too, and then compare the results. Hopefully, you have a handful of tasks that users suggest are clearly ahead of the pack. If these match with what your stakeholders say, add these tasks directly to the priority list. Some other tasks considered important by users and stakeholders may need more discussion!
  • Work out what the best evaluation method is, given the project and the tasks you’re investigating. Heuristic evaluation may not be the right answer.

Method:

  1. Decide on a set of heuristics to use. If you don’t have a good reason not to, I would recommend Neilsen’s or Gerhardt-Powals.
  2. Select your team of 3-5 evaluators. Ideally they both usability experience as well as domain knowledge related to your project, and might be found in your design team or list of professional contacts. You should give them all the same training on the principles and process, and ensure they’re interpreting the heuristics properly.
  3. Set up a system of severity codes (critical issue, serious issue, minor issue, good practice), or traffic light scheme (red, orange, yellow, green), and make sure the evaluators understand them and can use them consistently.
  4. Conduct the walkthrough itself. Step by step through each agreed task, wearing the users shoes (terminology, priorities, likely choices).
  5. Look for and identify problems based on the set of heuristics.
  6. Note where the problem is (the page/screen, location on the page), how bad it is (rating scale), and push on to the next issue.
  7. I like to go back and note the options for fixing the issues seprately afterwards, as switching between ‘seek mode’ and ‘fix mode’ is pretty distracting.
  8. After you’re done, collate and analyse results from the multiple experts. This is where you realise the consistency between evaluators was important. Otherwise you’re trying to reconcile too many levels and interpretations.

Writing up a report

The whole point is to surface the key issues and start a discussion about how to improve. There’s enough detail that you can’t avoid a certain amount of documentation, but it’s also pretty important that you deliver the findings in person. You’ve systematically deconstructed and criticised something that your team and stakeholders will likely be protective of, so being there to show your loyalty, to clarify and explain gently, and to justify your findings is pretty key.

Presenting the report itself is often done as a deck of slides, or as a written report. Some really slick presentations have captured video of the  screens to include mouse movement, interactions, audio of the issues being described, and to highlight particular issues.

However you choose to put it together, make sure you cover the following:

  • Don’t put more work into the report than the system you’re ultimately designing. That would be silly.
  • Include a statement of which set of heuristics you have used, and why they are an appropriate guideline to trust. A lot of your credibility will be resting on the shoulders of the person who developed the heuristics, so make sure you trust them.
  • Note the professional backgrounds of the experts that were used as evaluators (some proof of why they can be considered experts), such as a CV or resume.
  • Include a simple summary of the aggregated key findings, including which things need time and resources to address. This is for the executives who just need the punchline.
  • List and describe the issues you discovered, in order of severity.
  • With each issue, make recommendations for what it would take to adjust the system to follow good practice.
  • Relate the issues and recommendations to visuals for easy reference. Annotated screenshots are a good option.

What comes next?

Heuristic evaluations only give you an indication of where likely issues are. They suggest some options for heading towards fixes, but you still haven’t put the design in front of real users, so you won’t know how much you’re missing out on. Your next step is to take a stab at solving the biggest problems, and then arranging your next set of usability tests. You’ll find that you have both some assumptions that you can base design hypotheses on, and some ideas of where to focus your testing. From there, you can be guided by the users themselves. Just promise me you won’t stop with only a heuristic evaluation!

The post How to run an heuristic evaluation appeared first on UX Mastery.


by Luke Chambers via UX Mastery

Emoji Marketing: Are We Speaking the Same Language? [INFOGRAPHIC]


“Plain, boring text is out. Visual content is in. The human brain is wired to understand images; we process visual information 60,000x quicker than text. When it came to getting your message out during the Internet’s early days, the written word was the best method. But today we receive five times as much information as we did 30 years ago. Today 63 percent of social media is made up of images. This has opened up a number of creative opportunities for marketers. One of the biggest visual trends to take the marketing world by storm is emoji. Chances are you’ve already seen your fair share of emojis littering social feeds and text messages. But just in case you’re not quite sure what we’re talking about, we’ll officially introduce you to the visual world of the emoji and explain what makes them a perfect fit for marketing campaigns.”

by Irfan Ahmad via Digital Information World

6 Ways Freelancers Can Separate Their Work & Personal Lives

Freelancer

Working as a freelancer can be a double edged sword … or lance, if you want to get technical. Our flexible schedules afford us opportunities that the nine-to-five life simply can’t, but they often give friends, family, and clients unreasonable expectations of our time and availability. We can pick and choose our projects and revel in the autonomy, but if we’re not careful, the workload piles up and communication derails. Soon we’re answering emails during our friend’s accordion recital and browsing jetski forums while we’re supposed to be answering emails.

[author_more]

Fortunately, we freelancers are an adaptable bunch, and have developed a handful of techniques to compartmentalize our two existences. Here are six of the best.

1. Set Boundaries with Clients

Many freelancers put clients on a pedestal. The fact that someone agreed to pay us for our time and services makes us feel indebted to them for the entirety of our work relationship, and therefore, whatever the clients wants, and whenever they want it, is just the cost of doing business.

“As freelancers, we get worried about making clients mad, and possibly losing them to our competitors,” says Shannon K Steffen, freelance SEO strategist, entrepreneur, and speaker. “The truth of it is that clients respect us more when there are boundaries in place.”

Boundaries set reasonable expectations, illustrate professionalism, and result in a better working relationship. But how do you politely, yet firmly communicate these boundaries to your clients?

Hitesh Sahni, freelance digital marketing consultant, advises freelancers to avoid responding to clients after work hours and on weekends. To ensure that clients respect his time, he only sends emails during business hours, and even if he finds himself working on the weekend, he uses apps like Boomerang to schedule his emails to be mailed on Monday.

“This helps me keep my clients under the expectation that I’ll deliver only during the workweek,” Sahni says.

Freelance marketing consultant Corey Barnett follows a similar strategy. “My rule is to quit work at five pm, no exceptions,” he says. “Once clients realize they can’t contact you at 8PM on a Sunday, they stop doing it.”

2. Block Websites

Separating work from business often involves sacrifices, and there is no sacrifice greater than prohibiting yourself from accessing your favorite websites. Yet setting boundaries for yourself is just as important as setting them for your clients.

Andrew Reeves, freelance translator, struggles with this very issue, and has turned to installing web filters on his computer, which only grant him access to certain websites during certain times.

“For example, YouTube cannot be accessed during work hours,” Reeves says. “Similarly, my work email cannot be accessed in the evenings when I am relaxing. Of course, I have the capability of defeating these filters, but just having the filters in place helps resist the temptation.”

There are a number of website filters on the market, but here are a few to choose from.

3. Use Two Phone Numbers

In the bygone days of yesteryear, clients would bribe carrier pigeons with porridge to deliver freelancers messages at any hour. Today, all a client needs is your phone number. That’s why it’s important for your business, and your sanity, to use multiple numbers.

If you want to have multiple numbers on one device, one option is Flyp, a new app that gives you multiple numbers on your smartphone. Over the past nine months, more than 50 percent of Flyp users categorized themselves as freelancers and small business owners.

Google Voice is another option for multiple numbers. Kelly Donovan, an executive resume writer and LinkedIn profile writer, created a Google Voice account because she didn’t want clients or prospects calling her on her off time. She lists her business number publicly, and only gives out her actual cell number to friends and family.

“I have calls to the business number forwarded to my cell phone, but I use the Google Voice settings to limit incoming phone calls from 8AM to 6PM on weekdays,” Donovan says. “Calls to the business number outside of those times go directly to voicemail, so I can keep my phone on for calls from friends on evenings and weekends without having to worry about fielding customer calls.”

If you already have two phones, but can’t keep your hands off the business phone after hours, you can always do what freelance standup comedian (is there any other kind?) Dan Nainan does.

“I lock up my work phone and the power adapter for my Internet router on weekdays after 9PM, and every weekend, in a device called the Kitchen Safe, a time lock safe which I can set so that I only have access the next morning,” Nainan says. “This way, I simply cannot access my work phone or the Internet in the evenings.”

4. Track Expenses with Mint

Freelancers are required to pay self-employment tax, and man does that add up. That’s why it’s critical to track and document every business expense you make throughout the year, so come tax time, you can maximize your write-offs without spending all day rummaging through a shoebox of receipts.

To make this process easier, consider using an app like Mint, which Corey Barnett uses to manage his personal and business finances. “Anything business related on a credit card, check or Paypal gets tagged as business expense,” Barnett says. “At the end of the month, I export in Excel all the expenses.”

“Using Mint is a great way to see how much you’re spending and where your money is going,” says Arianna O’Dell, a freelance digital marketer and writer. “I use Mint for both personal and professional expenses as a way to stay on track with budgets and allocate funds accordingly.”

Continue reading %6 Ways Freelancers Can Separate Their Work & Personal Lives%


by Joshua Kraus via SitePoint

Build Your Own Custom SlackBot with Node.js

This article was peer reviewed by Dan Prince and Matthew Wilkin. Thanks to all of SitePoint’s peer reviewers for making SitePoint content the best it can be! Slack has a certain appeal and huge fan following in both developer and non-developer tech communities. Its slick user-interface, concept of teams and channels to keep communication separate […]

Continue reading %Build Your Own Custom SlackBot with Node.js%


by Gaurav Ramesh via SitePoint

Using Internet-Scale Data to Guide Product Planning

There are so many potential projects we could spend our time on, but like most engineering teams, we have limited time. Since our time is finite, how do we go about deciding which features, bugs, or enhancements should get this valuable resource? Ultimately, it comes down to a variety of inputs, and one of the most important inputs is data. Come learn about some new tools that we're making public, to help you see how this data plays into the decision-making process.

Continue reading %Using Internet-Scale Data to Guide Product Planning%


by Microsoft Developers via SitePoint

Up and Running with WordPress Contextual Help Screens

Developers often go to great lengths to build something useful for their users. Whether it’s an eCommerce system, booking plugin or gallery showcase for example, there’s a dedicated developer or two that’s worked hard putting everything together.

Documentation on the other hand sadly becomes an after-thought, left to either a scarce few sentences on the WordPress plugin directory, a series of notes on GitHub or if you’re lucky a poorly maintained external website (that may vanish at any moment).

WordPress comes with an in-built Contextual Help Screen that can be accessed from anywhere in the admin dashboard. You’ve probably seen this before, it likes to hide up in the top right hand corner of your page (toggled with the ‘help’ button).

Continue reading %Up and Running with WordPress Contextual Help Screens%


by Simon Codrington via SitePoint

Masking in the Browser with CSS and SVG

Masking is a technique that lets you display selected portions of an element or an image on the screen while hiding the rest. Web developers can use this technique in the browser via the mask property and the SVG mask element. These features allow you to display masking effects on images and other elements in the browser without using any kind of image editing software.

In this article, I'm going to show CSS and SVG masking capabilities in action, also making sure to include some info about current browser support issues.

At the time of writing, most code samples work only in WebKit browsers while SVG-based masks seem to enjoy wider browser support. Therefore, if you'd like to try out the examples, I recommend you use a WebKit browser like Chrome.

Masking on the Web

You can achieve masking effects on the web using clipping or masking.

Clipping involves laying a closed vector shape, like a circle or a polygon, on top of an image or an element. Any parts of the image behind the shape will be visible, while any parts outside the boundaries of the shape will be hidden. The shape's boundary is called the clip path, and you create it using the clip-path property.

Masking is done using a PNG image, CSS gradient, or an SVG element to hide some parts of an image or other element on the page. You can accomplish this using the CSS mask property.

In this article, I will focus exclusively on masking with the CSS mask property and the SVG <mask> element.

The CSS mask Property

mask is the CSS shorthand property for a whole bunch of individual properties. Let's take a closer look at some of them in more detail.

The mask-image Property

You can use the mask-image property to set the mask layer image of an element.

The value none is not the same as setting no value at all. On the contrary — it still counts as a transparent black image layer.

You can set mask-image to a URL value. This can be the path to a PNG image file, an SVG file, or a reference to an SVG <mask> element. You can set more than one mask image layer by adding a corresponding number of URL values separated by a comma.

Here are a few examples:

/* masking with two comma-separated values */
.masked-element {
  mask-image: url(mask.png), none;
}


/* using external svg graphic as mask */
.masked-element {
  mask-image: url(mask.svg);
}

This is how you reference an SVG <mask> element with an id of mask1:

.masked-element {
  mask-image: url(#mask1);
}

A gradient image is also a suitable value for the mask-image property:

.masked-element {
  mask-image: linear-gradient(black 0%, transparent 100%);
}

The mask-mode Property

With mask-mode you can set the mask layer image to be either an alpha mask or a luminance mask.

An alpha mask is an image with an alpha channel. In more detail, the alpha channel is the transparency information contained in each pixel's data. Masking operations with the mask-mode property set to alpha will use the image's alpha values as the mask values.

A handy example of an alpha channel is a PNG image with black and transparent areas. The masked element will show through the black portions of the mask image, which have an alpha value of one. Everything else beneath the transparent portions, which have an alpha value of zero, will be hidden.

I'm going to use this PNG image as my alpha mask:

Example of image to be used as alpha mask.

and perform a masking operation on the JPG image below:

Image to be masked.

This is where the magic happens:

.masked-element {
  mask-image: url(alpha-mask.png);
  mask-mode: alpha;
}

and here's what the result looks like in the browser:

Image masked using alpha or luminance mask-mode.

A luminance mask uses an image's luminance values as mask values. A PNG image like the one above — but in white — is a good example of a luminance mask:

Example of PNG image you can use as luminance mask.

The areas of the element you want to mask, which are covered by the mask's white pixels, will show through. The portions of the masked element covered by the mask's transparent pixels will be hidden.

Setting the mask-mode property to luminance and using the image above as my mask, will display the same result as before.

Here's the code:

.masked-element {
  mask-image: url(luminance-mask.png);
  mask-mode: luminance;
}

The mask-repeat Property

mask-repeat works pretty much like the background-repeat property. It controls the tiling of mask layer images after you've set their size and position.

Possible values are:

  • no-repeat: the mask layer image is not repeated across the available space.
  • repeat-x: the mask layer image is repeated along the X coordinate.
  • repeat-y: the mask layer image is repeated down the Y coordinate.
  • space: the mask layer image is repeated and spaced out throughout the available area.
  • round: the mask layer image is repeated a whole number of times across the available area. If a whole number doesn't fit in the available space, the image is scaled until it does.

For instance, this is the image I intend to use as my mask:

Example of mask layer image to use with mask-repeat property.

The code snippet below sets the mask-repeat property to a value of space:

.masked-element {
  mask-image: url(imgs/trapeze.png);
  mask-repeat: space;
}

resulting in the following masking effect:

Example of mask-repeat property set to the value of space as rendered in the browser.

The mask-position Property

You can position a mask layer image using the mask-position property. You can set this property to the same values you would use for the more familiar CSS background-image property. Its initial value is center.

For instance, if you want to place the mask image layer on the top left corner of the viewport, set the mask-position property to a value of 0 0:

.masked-element {
  mask-position: 0 0;
}

This is what the code above looks like in the browser:

Mask layer image positioned to the top left of the container.

Changing the value of the mask-position property above to 100% 100%, displays the mask layer image on the bottom right of the viewport:

Mask layer image placed on the bottom right of the viewport.

The mask-size Property

You can quickly set the size of your mask layer image using the mask-size property, which accepts the same values as the more familiar CSS background-size property.

For example, setting mask-size to 50% displays the mask layer image at 50% of its full width:

Mask layer image at half its full width using mask-size.

Setting mask-size to contain will scale the mask layer image to the largest size so that both its width and height can fit inside the mask positioning area:

Mask layer image sized using the contain keyword value.

You can see these demos live in action on CodePen below:

See the Pen CSS Mask Examples by SitePoint (@SitePoint) on CodePen.

Compositing Mask Layers

As explained above, you can use more than one mask layer on the same element by separating each value of the mask-image property with a comma. The layers get stacked one on top of the others with the last layer displaying first on the screen.

For instance:

.masked-element {
  mask-image: url(mask1.png), url(mask2.png);
}

Continue reading %Masking in the Browser with CSS and SVG%


by Maria Antonietta Perna via SitePoint