Showing posts with label UI. Show all posts
Showing posts with label UI. Show all posts

So you wanna be a user experience designer — Step 1



Pretty much every single day I get a tweet, email, or in person request for information on how to get started in the field of user experience. I’ve recently had a few people reach out to me even asking me to mentor them throughout the process. Given that I often find myself repeating the same answers over and over again, I decided to put all of my resources in a single blog post so that folks could easily access a consolidated version of my advice.

The best way to learn a new language is to go to a country where it’s spoken and immerse yourself in the confusion. Soon the unfamiliar will become familiar, and before you know it you’ll be fluent.

If you’re interested in getting to know more about user experience, I recommend doing the same. You may choose to simply understand the terminology, or become conversant. You might later decide to tackle some of the more complex concepts.

There are many steps to the process, but I am starting with Resources because I believe you need a great arsenal before kicking off any journey. In future posts I’ll discuss:
Guiding Principles
Process
Tools
Transitioning from other careers
Practice Landscape
…as well as any other topics that come up along the way.

I have organized the resources below in what I perceive to be lightest to deepest engagement — publications and blogs, books, local events, organizations, mailing lists, webinars, workshops, conferences, and schooling.

DISCLAIMER: These are my personal recommendations, and plenty of people will disagree with me on many points, I’m sure. But this is what has worked for me — the people/places/events/organizations that have kept my interest throughout my schooling and career — and where I believe anyone who wants to immerse themselves in user experience should start their journey. Please feel free to add your suggestions in the comments.


And here is the rest of it.

Read more!

Usability Testing - few thoughts


Usability testing is a technique used to evaluate a product by testing it on users
Usability testing focuses on measuring a human-made product's capacity to meet its intended purpose. Examples of products that commonly benefit from usability testing are web sites or web applications, computer interfaces, documents, or devices.

Usability testing measures the usability, or ease of use, of a specific object or set of objects, whereas general human-computer interaction studies attempt to formulate universal principles.
If you develop web sites, you need to be doing usability testing. It is that simple.
This tutorial will teach you how to conduct a simple usability test on your web site (using the hands-on task based method).


Plan the Usability Test

1) Know the Goals of the Usability Test

The primary point of usability testing is to provide feedback during the design/development process to ensure that the web site will actually be easy and effective to use and provide valuable information to the users. Four primary elements to measure are:

Ease and effectiveness of navigation - Do users find what they need easily. Is there a clear pattern to the navigation that fits easily into the users mental model. Are you links labeled with terms that make sense to your users. (Or, are you speaking in your own private jargon!)
Usefulness of content - What information do your users want/need? Have you organized the content on each page in such a way that it is easy for your users to quickly find it? Or do they have to read all the fine print while standing on their heads?
Effectiveness of presentation - Did the graphic design, fonts and colors highlight the navigation and content, making the site easier to use? Or did the presentation distract or create a barrier between the user and the information?
Task success rate - Were the users able to accomplish the key task they needed/wanted to accomplish. If they were able to complete the task, did they feel satisfied, neutral or angry and frustrated?
2) Determine Usability Testing Timeframe

Meet with the clients who are requesting the usability testing as well as the developers who are designing the site. Ask the client when they hope to have the site live. Ask the developers when they hope to have the system available for usability testing. Request at least 4-8 weeks between the Usability Testing dates and the "Go Live" Date.

Example of an absolute minimum timeframe:

Week 1
Determine usability goals, timeframe, audience, recruiting plan
Review web site with clients/developers, develop usability test instruments
Week 2
Recruit test subjects
Test the test, make adjustments to test or web interface
Week 3
Conduct the tests and gather testing data
Week 4
Compile data and draft a report, review report with all test facilitators for consensus, produce final report
Present final report to clients and developers. Clients/developers decide what recommendations they will address.
3) Determine the Target Audience & Test Subject Recruitment Plan

Ask the client who the primary audience(s) are for this web site. Try and keep the audience focus down to 2-5 audience types. After the primary audience(s) have been named, considering setting a goal of 3-5 representative test subjects for each primary audience type. For example, when testing the UT Austin home page we had 14 test subjects. See Jakob Nielsen's article on why testing 20 users is enough.

3 Faculty/Staff
3 Alumni
3 Prospective Students
3 Students
2 Students w/ Visual Disabilities
Identify possible test subjects, gather their contact information, establish the week(s) that you will be conducting your testing, schedule locations for the testing, double check with your clients, developers and test facilitators that the testing week(s) are realistic.

Consider offering an incentive for people to participate in the usability test. Common incentives are free lunch or gift certificates. For students, we often order pizza and soda. We have also used $20 gift certificates to local bookstores, music stores or UT related stores. Incentives greatly improve attendance. When we have used incentives, we have reliably had 100% attendance in our test subjects.

-----------------------------------------------------------------------------------
Develop the Usability Test Documents

There are four basic documents used for hands-on task based usability testing. These documents are:

Waiver
Entrance Questions
Task Based Questions (the heart of the hands-on usability test)
Exit Questions
If you don't have MS Word you can download a free viewer for Microsoft Word.

Let's look at the purpose of these docments and see a sample of each.

Waiver - Each test subject should sign a waiver or consent form, indicating that they are giving permission for you to take notes (or video/audio tape) them during the testing. Sample Waiver.
Entrance Questions - these documents help you collect demographic information that you can later use when analyzing your results. Questions include name, age, gender, internet experience and target audience group. Sample Entrance Questions.
Task Based Questions - The heart of hands-on usability testing is the Task Based Questionnaire. During the test, the subject is sitting in front of a computer with the appropriate starting page on the browser. The facilitator verbally leaeds the test subject through a series of questions/tasks, encouraging them to think out loud. The facilitator does NOT lead the subject to the answer. Sample Task Based Questions.
Exit Questions - At the end of the testing session, you will want to allow at least 10 minutes for your test subject(s) to give you their opinion of the site. How easy was it to navigate the site? What did you like or dislike? What was confusing? Sample Exit Questions.
Feel free to use the samples above as your template, making changes as needed to adjust to your specific testing needs. The document that will require the most work will be your Task Based Questions. Here are some pointers on how to write your task based questions:

Key Pieces of Info - Think about your site. What key pieces of information will people need to find on your site? Consider writing a task/question for each of your key pieces of information.

Top Ten - Have too many key pieces of information, then test for the "Top Ten" things people need to get from your web site.

Audience Versions - Don't hesitate to write a slightly different version of your Task Based Questions for each of your target audiences. Different target audiences have different needs on your site. When I create different versions, I usally have a core group of questions that work for all my audiences (perhaps 60-70% of the questions) with a few more audience specific questions.

Non-leading Questions - When writing the text of the question, make sure you are NOT leading your test subject to the answer. Use common vocabularly and specifically avoid the vocabulary that you are using in your hot links and buttons. For example, if I wanted to test the ease of finding the "Campus and Parking Maps" and the link text was "Campus and Parking Maps", I might word the question like this, "You are planning on taking your friend to the Texas Memorial Museum this weekend and you need to find out where you can park."

Simple - the task/question should be simple, so the test subject can keep it in their mind without reading it. Try to write the task in the vocabulary of the target audience.

Realistic Scenarios - The Task/Questions should be realistic scenarios that your target audience would really experience. The point of the test is to simulte being "the fly on the wall" while a real person is using your site.
-----------------------------------------------------------------------------------



Conduct the Usability Test

Pre-test preparations

You've developed your Usability Test, scheduled your test subjects and now your are ready to go, right? But before you bring in your first test subject, you have three important quality checks.

1) Test the Usability Test - sit down at your computer with the usability test in hand, read the questions to yourself, and attempt to do all the tasks. Does the test work for you? Or are parts of the web site not ready for prime time yet? Share the Usability Test with your web site developers so they know what sections of the site you are testing. Make sure that the site will be stable and ready during the dates you are conducting the usability test.

The site doesn't need to be perfect, or finished. Just make sure your questions/tasks are actually doable, and not just a dead end.

2) Practice Giving the Test - grab an unsuspecting co-worker or friend and conduct the entire usability test on them. This will help you feel more comfortable when you do the test on your first real test subject. Have your friend/co-worker complete all the paper work (waiver, entrance and exit questions). As you read the task based questions aloud, remember not to lead them to the answer. Encourage them to talk out loud (with some folks you will need to encourage them to do this on every question).

Remind them over and over, that you are not testing them, but you are testing the software. If they have problems completing the tasks, their complaints and frustrations (voiced aloud) will help you convince the developers that things need to be changed.

Tell them you want them to be brutally honest. You had nothing to do with the design of the system and want them to tell you exactly what they are thinking. If they think the site "stinks" or they are ready to pull their hair out, you want them to tell you!

As they give you feedback, both negative and positive, tell them "that is a good point" and write down what they say. Show approval and appreciation for their comments.

3) Supply Checklist - make sure you have everything you need to conduct each test. Your checklist might look something like this:
Waiver
Entrance Questions
Task Based Questions
Exit Questions
Computer with internet connection and all required plug-ins
URL of working web site
Token of appreciation - food or gift certificate
Pen(s)
I like to create a web page that has copies of all the usability testing documents online as well as a link to the site. Then, if I have forgotten anything, I can grab a copy online and print it out wherever I am.

Testing Methodology

Okay, now we are ready to conduct the test.

1) Welcome: Welcome the test subject and thank them for coming. Make them feel at ease. Tell a joke, or talk about the weather. Ask if they have ever been in a usability study before. Assure them that it is fun and easy.

2) Agenda: Outline the main things you will be doing during the usability study. For example, you could say:

First, I will have you sign a waiver that indicates your willingness to participate in this usability study and let's you know that I'll be taking notes of your comments, but will keep all your personal information private.

Second, I will ask you some basic demographic questions.

Third, I will ask you to complete X number of tasks on the new web site. Keep in mind that we aren't testing you, but we are testing the web site. Any problems or frustrations you encounter will help us see where the design needs to be changed.

Fourth, I will ask you for your general feedback on the site. We want to know your opinion.

This process should take about an hour, so let's get started. (Note: It is important to end the test on time. You need to be respectful of the persons time, especially if you want to get honest answers.)

3) Waiver/Entrance Questions: Have the person complete the waiver. Answer any questions they have. Have the person complete the demographic/entrance questions. You can either have them complete the form on paper, or ask them the questions out loud and fill it in for them. Whichever works best for you.

4) Task Based Questions: Have a computer ready with the browser open and sitting on the starting page of your web site. As the test facilitator, you will instruct and observe the subjects performing fairly simple, common tasks. You will verbally lead them through the series of tasks/questions, encouraging them to think out loud and respond to what they are looking at. You will ask questions about their thought processes and their decisions as they work, without being intrusive or leading. You will also take in-depth notes directly on the Task Based Questionnaire.

Things "To Do" and Things "Not to Do" while facilitating the test:

Things to Do Things Not To Do
Listen carefully Fail to Listen
Encourage Criticize
Be Neutral Be Defensive
Speak English Speak Geek
Answer questions with "What would you do?" or "What do you think?" Lead user to the answer
Be Patient Be Impatience, Rush
As you ask each question aloud, try to use the exact words on the test. Do not lead the user to the answer. Do not help the user answer the question. Remind the user we are testing that software, not them. Encourage them to think out loud. (“what words are going thru your mind?”, “what are you looking for?”)

Make note of the click stream (the path the users follows to complete the task). Note any of the users comments and suggestions for making the task easier. Finally, indicate if the person was able to successful complete the task, as well as your opinion of their satisfaction or frustration level.

Remember, someone will have to transcribe these notes. So try to write legible and capture what you are observing.

5) Exit Questions:

When users are finished going through the set of task-based questions, hand them the exit questions and ask them to answer them. Then give them a few minutes to talk informally about their usability experience with you. Ask them what they liked/disliked about the site most, if they have suggestions for improvements, etc. If they’ve done or mentioned anything during the test itself that you want to ask further questions about, now is the time to ask. In my experience, users are only too happy to talk with you when the test is over!

-----------------------------------------------------------------------------------
The Final Report - Usability Findings & Recommendations

Now it is time to compile your usability data, analyze it and write your recommendations. I recommend entering all of your entrance, exit and task information into an excel spreadsheet. If you don't have MS Word and Excel, you can download free viewers for Microsoft Excel and Microsoft Word.

Sample spreadsheet of raw usability data (microsoft excel)

Sample Usability Recommendations Report (microsoft word)

Look for trends in comments and task completion. Document the impact the data shows on effectiveness, efficiency, time on tasks, errors and satisfaction. Group your recommendations in severity/priority order.

1st Priority - must be fixed, brick wall
2nd Priority - would be good to fix, but can wait
3rd Priority - okay as is, could be improved
Don't just critique and point out what is wrong. Suggest a solution or remedy for each problem. Your suggestions could be a change in the design or the content.

If you sense that the application owners/developers will be resistant to suggestions, consider sharing the usability recommendations with them individually and in draft form, then when it comes to the formal meeting where you review the recommendations, there are no surprises.

Another key to helping developers/designers truly understand the usability issues is to actually let them observe the usability testing process. This works best when the develop/designer is behind a one way mirror (so when they scream and cry and state that "any idiot would know what to do", your innocent test subject won't have to be intimidated by them)! Since most offices don't have usability testing rooms with one way mirrors, other methods for letting them see include:

audio recording the sessions and letting them listen
video taping the sessions and letting them watch
live webcast the sessions and let them watch from another room
make sure your test facilitator/notetakers are people that your developers/designers will always believe
in the rarest of cases, allow your develop/designer in the room while testing (but you may have to tie them in a chair and put duct tape over their mouth). I do not recommend this option.
In my experience, I've yet to make use of the audio recording or video taping we've done. I now just pick well trusted facilitators and note takers and pre-review my recommendations with the designers/developers before making formal recommendations.


Additional Usability Resources

Recommended Reading:

Don't Make Me Think by Steve Krug
Good introduction to practical low-cost usability testing. Filled with excellent examples.

Designing Web Usability : The Practice of Simplicity by Jakob Nielsen
Good introduction to usability. More theoretical than "how to".

The Design of Everyday Things by Donald Norman
One of the foundational text of usability. Excellent theory.

Usability Expertise on Campus

TeamWeb - The ITS Web Technology Team ITS offers consulting on many web topics including usability. Request help from TeamWeb.

Define Internals - Jefferson Stewart, Bennett Donovan, Lewis Phillips, Tracy Caillouet, Carey Christian & Glenda Sims conducted an extensive Web Usability Survey of Define Internals. The report was released in June 2005. This extremely comprehensive report is a wonderful text book from which to draw ideas.

Online Usability Resources

Introduction to Usability Testing by Carolee Mitchel
MIT Usability Guidelines
Usability Professionals' Association
Usability Testing Materials
Web Design & Usability Guidelines


http://www.utexas.edu/learn/usability/resources.html
Read more!

jQuery

jQuery is a fast, concise, JavaScript Library that simplifies how you traverse HTML documents, handle events, perform animations, and add Ajax interactions to your web pages. jQuery is designed to change the way that you write JavaScript.



jQuery is an amazing JavaScript library that makes it easy to create wonderful web effects in just a few lines of code. As the website says:”



“jQuery is a JavaScript library that takes this motto to heart: Writing JavaScript code should be fun. jQuery achieves this goal by taking common, repetitive, tasks, stripping out all the unnecessary markup, and leaving them short, smart and understandable.”
Maybe you are thinking… “Why I would need another JavaScript library”? Just give a try and you will see how simple and powerful it is even if you have already used Moo.fx, Scriptaculous, TW-SACK or Prototype.


Why I should use jQuery?
Simple. In just one glance at the source code of a page using jQuery you’ll see how easy it is to use, how much it accomplishes in so few lines of code, and how graceful it is.
My mind was opened one day when I stumbled across some code written with jQuery. I was flipping through the RSS feeds and reading my daily dose of web design blogs when I came across an example of JavaScript loveliness that used jQuery. Truth be told, the code on that site had some browser related bugs… but the concept was something I hadn’t seen before.


What about the code?
The code looked almost simple. Like nothing I had seen before. It made sense.
I started reading through the documentation and was amazed to see how much could be done with so little extra code.



When you can use jQuery?
You should use jQuery when you need:
A small library that gives you powerful control over the Document Object Model
With very little effort or work on your part
Or
Quick access to AJAX
Without a lot of bloat (overhead - wasted code)
And some basic animation effects to spice things up
But…
If you need super fancy effects for animation, drag and drop, and super smooth animation then you’ll probably want to use Prototype and one of the many great library created to enhance the effects.


Where to get it?
You can download the source code (15k), a lot of plugins and read some excellent tutorials at the
jQuery website. jQuery was created by John Resig.




Read more!

What does a front-end web developer do?

Front-end web developers, the "artists" formerly known as web designers are the bunch of people in the company that make sure that the data coming from the backend gets displayed on the browser. They also make sure it looks as closely as possible as the design, that , CED came up with, and that the user can navigate through it, accessing the data.



Front-end web developers, the "artists" formerly known as web designers are the bunch of people in the company that make sure that the data coming from the backend gets displayed on the browser. They also make sure it looks as closely as possible as the design, that , CED came up with, and that the user can navigate through it, accessing the data.


Web developers don't have it as easy as it sounds though. True enough, markup languages are easy to learn and scripting languages are not much harder, but there is an aspect of uncertainty, that has to be taken into consideration, when judging their skills.

As a web developer you work in an uncertain environment. What looks good and works on your computer can be a popup hell and dire to look at on the machine next to you or on the machine of a customer. The first is not much of a problem, just ask your colleague to upgrade his browser, the second, however, is a problem.

As a web developer, your work can be wrecked by users and customers in many ways:

They can

* use a browser that is completely outdated
* set his browser font to "very small" or "very large"
* use a video card that displays 16 colours only
* run a resolution of 640x480 pixels and still have the large font setting
* run a resolution of 1024x768 but still keep his window as large as 200x200
* use loads of toolbars to make the area of the screen available for your site pitifully small
* turn off any scripting support for safety reasons
* turn off images to load the pages faster
* use a modem with the speed of two tins connected through a wire
* use a PDA
* use a text-only browser

and if the site does not work with that, they'll blame you for it.

In other words, you never know what is going to be the mean of display at the other end.

What to do about that? Don't fret, there are standards that the World Wide Web Consortium (W3C) defined a long time ago. Just follow these standards and you are safe.

The only problem is that the browser industry keeps telling their products follow these standards, but, in reality, they don't.

So by doing the right thing, you do the wrong thing. By following the standards, you make sure that your site will perform fine in future browsers and display units. On nowadays and yesterdays browsers though, there might be loads of issues.

What you do need to do is to make sure your site is following the standards and still looks OK on older browsers. This is the perfect option. Another would be to define a certain browser and platform environment. This is possible when we are talking about Intranets and B2B sites, but B2C means you are in trouble.

You are really in trouble, when the design you got was done by a designer who is not firm in web design. The web is a media, not a sheet of paper. Designs that look really nice on paper (and impress customers) might not work on the web. Same as screen layouts do not work on television or game consoles.

Users are able to resize the text part of your page, or, in newer browsers even add own rules of display onto your site (through own stylesheets). This means that every layout, that relies on fixed font-sizes, and text, that can only use up a certain area, is doomed to fail.

You can go the other extreme and keep everything flexible, which may result in really ugly texts, with lines too long to be readable. This is a minor issue though, as, when the user has a problem with that, he can simply resize his browser window.

In any case a good web developer needs to know a lot about the media he works in.

He needs to know

* what browser/platform configuration breaks your page when you use which technology
* which technology or elements to use to create the navigation in
* what to do to avoid wrong display on browsers
* how to keep the size of the final document small
* how to convert graphics so that they are small in file size and yet good looking
* how to deal with data coming from the customer in various and sometimes rather exotic formats
* how to keep his work from stalling when there is no data coming in that he can use.
* How to communicate to colleagues or customers that the amount of final data in the product does not really fit the design (which is a case of bad planning to begin with, but it does happen)
* How to keep up with the rapid web development market and techniques.

These are the most obvious bits. Another obstacle a web developer has to tackle all the time is the media and software market hype.

At every computer fair and in magazines software companies advertise products, that help you do a web site in 20 minutes without knowing anything about code. For good measure you can also add all the multimedia you want and connect it to the database, you don't know anything about either.

When looking at these ads one starts to wonder why people care about hacking in their HTML. Front-end development is considered a task that can be fulfilled by any application or even the export filter of a graphics development program.

True, these applications do put out HTML and Javascript. True, the results look good. Wrong, they can replace a web developer. They can replace a "web designer", someone who hand-codes "HTML designs". When talking about HTML designs, I mean web sites without any other purpose but being eye candy. Standalone, plain HTML documents, a few links, some rollovers, but no back end connections or interactvity. Sites that are nothing but an ad can be safely done with them. As soon as you need the site to fulfil a specific task, be really optimised and fit the other components in your development framework, these WYSIWYG editors (like Dreamweaver, Frontpage, Adobe Pagemill and so forth) stop being that handy.

The worst nightmare for a front-end developer is to be confronted with markup code generated by these programs. A script or application can never optimise like a human being can, the code is bloated, unreadable and not logically structured in most of the cases. Keeping in mind that the outcome was meant to look great for 20 minutes work, why would it? The user never sees the source code. The developer does, and it's his job to keep it as small, fast and readable as possible. Especially when you remember, that he might have to hand it over to another developer for changes.

The availability of web content is amazing and great, but also has a downside to it. Content and code can be published immediately and is available to everybody. This is very nice and actually one of the main reasons to make people start web developing. After all it's easier to create your first web site than to try and get some time on TV or radio. The downside of it is that content gets published without any quality testing. Any enthusiastic developer, with more drive than skill. creates some new, cool design or effect, and publishes it on his web site. As it is cool and new, other developers see it, and implement it as well, to stand out from the crowd. Looking at this effect closely makes it obvious that it only makes sense in a very restricted browser environment and only for some content. Sometimes it might not even make sense at all. Nevertheless it becomes more and more spread and used, and sooner or later customers will see it and want it as well. Or colleagues see it, don't realise the flaws it might have (as it works on their browser) and offer it to the customer.

Then the web developer gets asked to implement it, and gets blamed when it does fail in the quality test.

There is no such thing as free lunch. Also there is no such thing as a perfect web site that you assemble from free content from the web without knowing what you do. Script libraries and personal developer sites advertise their content much like software companies. They claim their products have perfect output. Truth is, you can find anything on the web, and that is great, but make sure you test it thoroughly before you even think about using it in a product someone pays you for.

To conclude, the web developer is the developer on the project that has it all: A very unstable display environment, a skill set that needs to range from code to design and usability, and the blame when the end product does not look the way it should.

It's a hybrid position, you are someone that paints with code. Programmers don't accept your work as real code, and designers don't consider it design.

Now you might be at the point where you ask yourself: If that is such a horrid position in the development circle why bother taking it?

Well, the love for the media I suppose. The challenge to make things visible to users and not exclude a lot of them. The hybrid position in between programmers and designers and dealing with both. The satisfaction of seeing things you have done online and realising that people use it. The immediate satisfaction of hacking in some funny words with brackets around them and controlling the layout of a text by doing so.

It is a position that needs constant improvement, and interest in the media you work for. The days of front-end developers that attend a 2 day course and make a lot of money the week after are over. Now it is the job to clean up the mess those "web designers" left behind. To work with design and backend and project managers to make sure the customer gets something that is looking good and works fast and reliable.

So next time you think about smiling about those tag coders or HTML monkeys (I saw that as an official title in a work contract) you are welcome to try it yourself.

Read more!