UX: Icing on the cake or broccoli?

What do you think about user experience? Is it something that makes the application pretty? Or is it something that is required for a final, shippable product?

I'm a UX professional, so I'm a little biased as to it's value. In my ideal world, if I compare an application to a meal, then the database and codebase is the meat and potatoes and honestly – the UX is the broccoli. It's not the gravy – gravy is good documentation. QA is a process – so that's not counted. It is just too important and holds the application together. Further, gravy is optional for a meal and is there mainly for taste and not really nutrition (I know I'll be debated on that by some friends). Help manuals, well, we can consider that to be dessert.

If you show an application to your users, guess what they notice first? Not the perfect database structure. Not the clean, simple code. They notice the UI – the colors, the fonts, the words on the screen, how the system works. And yes, looks matter. They matter a LOT. Often users will leave a poorly designed interface because they just don't find it appealing.

UX is like broccoli – you may not like to eat it, but fresh green broccoli is good for your health and makes you strong.

Depending on the UX team and how it's managed, sometimes it's considered to be a nice to have (less on words and more on actions based on a how a project is managed). We sometimes choose the CSS colors, fonts, and styles at the end of the project, as if the application were a coloring book. Don't get me wrong – I went along with this plan for a long time. I wanted to make sure the flow and general architecture was there and figured we'd make it pretty later. The UI work was done at the end during one of the development breaks – we'd clean up the interface and get it "pretty."

But I was wrong. It was a bad idea.

Why?

How can you review a story about functionality without it looking close to final? Or styled? How do we know that it works as expected? A visual designer may not be able to apply a look/feel for the page while it's being developed, but could a visual designer come up with some general visual elements to apply to a page? How about some kinda/sorta finished copy from a copywriter?

All that is a yes. Especially if the goal of Agile is shippable product at the end of every iteration.

By adding the visual design and content at the end of a project, we are adding icing on the cake. It's not even part of the main course because it moves the UI to the end as an almost optional step – it doesn't get the time or attention it deserves. And further – when you review stories with the business, are you getting even a close result of what the UI could be? And what is the business and owner really approving anyway?

Now, if we include users as a stakeholder group in a project this makes the UX more like broccoli. Now you can have meat and potatoes – the main application – without broccoli, but there are some implications of that (and this isn't a digestive blog so I'm going to drop this quickly). You can eat broccoli alone, but let's face it – in an hour you will be hungry for another snack. You need the main course and sides to make a balanced meal. The same is true with UX. If you want to review an application with not just the business owner, but a user – you BETTER make sure it is neat to use. I've been in usability tests with a greyscale/wireframe/Greeked copy UX and one with a more complete UX. I like using the rougher UX because it makes it clear that this is a draft and you see where the problems really are. However, throughout the entire test all we heard was feedback on what the users didn't like about the colors (are you really going to use grey?), lack of instructional copy (what does lorem mean?), and similar comments. We learned where the pain points where most definitely – but man, it would have been easier to have a more complete UI to test.

So by waiting until the end of a release for incorporating the UX, what do we risk:

  • Prevents iterative usability testing – or rather – user reviews and solid results (see the Usability Hokey Pokey)
  • Prevents the business owner from having a real review – they have a partial review and we still need to create stories to fill in the gaps for the UI and possibly additional functionality
  • Prevents real QA

You end up doing QA only backend systems – which limilts the addition of Javascript functions which add on that "cool" layer

  • Makes for sloppy coders

The more constraints you put on developers, the tighter they code. Sure, they may need to work with a UI guru, but that's good for pairing and giving someone more experience in the UI area. It's not a bad thing. We all have our focus in work (another topic for another day – what it means to focus on an area in Agile)

So – Why don't we integrate UX development with iterations to get as close as possible to shippable product?

Often don't have the final UI in place the classes ready for the CSS and we aren't sure of the final look/feel

My arguments back:

  • You can make up a palette and design early on and do the same with design that you are doing with the features and iterate from there with stories
  • Create a structure just for testing or for presentation and add to that over time to keep the shippable product in mind
  • Try to draft copy for each iterations as complete as possible
  • Target a date for interim testing and get a UX together for that – kinda like the icing approach, but at least it's not left to the end and it focuses on a more complete UX

I think there is a lot of room for work in this area. There is a great book out – User Centered Agile Methods, by Hugh Beyey, which, after reading, I realized I need to revise my views if I continue with Agile, and see my role as a UX consultant as being a representative of the users of a system with users more included in the process in general.

UX: Icing on the cake or broccoli?

Iterative Usability Testing or the Usability Hokey Pokey

Jakob Nielsen admits in his article, "Why you only need to test with 5 users" that 5 test subjects can find 80% of the usability issues; 15 users will find all issues. I'll be honest, based on my experience, that extra 20% of usability issues are usually so minor that they don't have an impact on the main flow. So if 5 test subjects find 80% of the usability issues, why do we keep having tests with 10 people or more? Sure, we want to find as many issues as we can with an online application or site, but why be so complete right out the gate?

A huge risk that should be considered during testing is what if the system as designed just generally doesn't work – people don't get it, they don't like it, find it problematic, etc. and you have to redesign it entirely. At that point, knowing about misspellings and incorrect page space usage doesn't matter. So let's say you have a very complete test group of 15 as Jakob notes in his article, and you find out that the general design doesn't work. You go back to redesign your application. In theory – you should test it again (most times, this does not happen. But ideally, it's a must happen because it is a new system and it's not tested – it's a result of a failed system in the first place). But there is the next risk for the UX – will the business fund testing with another 15 users?

Let's say instead, you approach this as an iterative test as Jakob suggests. You do some work, create a prototype or some type of sketch to get feedback and show it to 5 people. Let's say it's a bust and you go back to the drawing board. You do the same thing again and test with 5 more people. Let's say this time it works, but needs some work. You refine it and then test it again with 5 more people. Let's say there are minor problems to fix. You could do at least 1 more test (if not 3 more) based on the original budget for testing to capture all usability problems. This is far more efficient and effective to product a UX that users will find helpful and they will use.

Every time you make a change in the test, in a way, it's a brand new test because there are different risks and factors in the design that need to be reviewed. I think this is a better method for testing mainly because you can experiment and get constant feedback from your users. Also, you start treating users as more of a stakeholder in your project/product. Right now, users are treated as a visitor – someone who comes in and uses what you made here and there. They usually are involved only 2-3 times in a project. It's up to the UX professional to know their needs or raise questions to get the business owner to know the needs. In a way, that's just a ridiculous notion – we aren't mind readers and we need the direct input of users – just a better communication chain.

The best way to get feedback from users is to include them in reviews, in the same way that the developers have reviews with the business owners. This is the 5 person usability test process. I wouldn't suggest having a board or panel to do the reviews regularly – you could do that to help get new features to add, but usability works best with new eyes. Automated testing with thousands of users is nothing more than A/B testing – and in a way, that is measuring preference (I'll be writing more about this later – but this is also a type of usability that can be tested). Doing an online test for the initial testing sessions is more than sufficient. At those stages of testing the goal is mainly to understand if the flow works or if people can find what they need to complete a task. If you feel the need to have in-person sessions, I would suggest to leave it at the end when you want to see how the user responds to the look/feel of an application. But in general, if you can see the face of a person and their facial expressions, have that person test on a computer he plans to use at the time of day that person will use it, then you should be ok.

Basically to get requirements from users you need to do the hokey pokey – put a hand in (test), pull it out (refine) put a foot in (test), shake it all about (larger test or maybe bigger test). This is probably one of the easiest ways to get the requirements out of users and have a successful product.

 

Iterative Usability Testing or the Usability Hokey Pokey

User testing – observing lab rats or gorillas in the jungle?

How do you best learn about animal behavior – move the animal to a lab or go to the environment and observe the animal?

I've been reading a lot about usability testing lately and I started wondering, when we test applications with users – do the users need to be onsite or could the test subjects be somewhere else, like their home or business environments? Based on my experiences with testing, I'm wondering if the model we currently use for testing gets accurate results of if, well, we need to do something differently to really understand how users think.

I took a class a while back about design research. Design research, which is similar to usability research in many ways, has been moving toward having in person interviews with subjects at their native environments (home, work – anywhere that they want to learn more about the user/subject). So let's say for a consumer product to use at home, a researcher would come into your home, watch what you do, and come up with ideas for a product based on your behaviors. This helps researchers understand their audience far better than any interview over the phone or in a lab could do – you get to see how people act directly in the environment they will use the device or equipment.

I started wondering if it made sense to do this for usability testing. I have a few reasons for this:

  • When we bring users into a lab, are we really getting a true response as when the same user is at home? Are we really seeing the true response to the user experience? For example, people have a tendency to multi-task and being in a lab, you just don't see that
  • How honest are people really when they are being interviewed in person (even if they are told that they are not offending people with feedback)?
  • Words vs actions – which means more in usability and user experience. I'd rather see the user's actions than hear them rave about an interface

 

User in a lab vs home – which provides more accurate feedback?

If you are testing a consumer product, you may want to test it while the person is on his home computer. You would want to see if the person does indeed multi-task while using your application, or if the person gets distracted and stops using it for any length of time. What if the user gets interrupted by his kids frequently – it would be good to know that to be sure to include longer session times. What if if the user makes dinner while computing – that would encourage extended session times as well or encourage the development of a recipie program. What about the living room? The bedroom? The bathroom? (ok, maybe I don't care to know the user uses his computer in the bathroom). This is how we have movies, music and books on the iPad and other devices for entertainment.

The same is true for business users for applications – what if the business user gets interrupted frequently? What if he already has 3 other systems to use for a similar purpose? You may get this information from a lab session or phone call with questions, but the best way to learn this is through direct observation of the person's behaviors in their own work environment.

If a user comes into a lab with the 2-way mirror or recording devices, will you get the same response as if you saw how the user works in his natural environment? From experience I have picked up more by being at someone's workplace to pick up on nuances that I never would have seen or experienced in a lab. For example, to watch a user switch application screens very quickly on a 15 in monitor allowed me and a colleague to make a recommendation to management to have data entry clerks get a larger screen to display up to 3 application screens at once. In another case, I heard a lot about how travel agents had a difficult time logging into this travel application. Sure, it sounded bad, but I didn't feel their pain until I sat next to one of them and almost threw the computer out the window myself out of frustration on not being able to log in.

The value of seeing users in their native environments is immeasurable. I see it as a requirement for accurate user testing and research. Otherwise, the test is too clinical and isn't really giving accurate readings except to know how someone uses an application when he is in a room, alone, with no other applications on the screen.

Honesty of test subjects

I think this is always tricky. You never know if someone is telling you the truth in testing about their experiences. You can only get a good idea based on the user's actions and what you observe from the system. With most people, just in general, if their actions and words don't agree – watch their actions. Actions definitely speak louder than words.

Sometimes users will over-exaggerate or over-emphase an issue because they are looking for something to say. They believe that you are looking to get feedback and feel they need to give you something for the money they are getting. Sometimes users don't know what to say – they get how the application works, find what they need, and are not sure what else you are looking to learn from them. There is sometimes a feeling that the subjects know that they are subjects, like mice or rats or monkeys. I've been behind the wall or as a facilitator and heard from subjects "Is this what you are looking for?" "Am I being helpful?" "Did you hear that back there?"

With comments like that, are you getting accurate comments and feedback? Or are you learning about a user in the same way a researcher learns about a rat (getting clinical details that help with research, but they are controlled to find basic items being researched – nothing about the environment).

Words and Actions

As I wrote earlier – you can always trust actions over words. So, can you really trust what someone says about an application if, at the end of the day, he doesn't use the tool anyway? I've witnessed users not reading instructions, skipping through an application, and then at the end saying "You really need to add instructions," as if the user would read it anyway. I've seen users comment how they would buy a product from the company I was doing testing for and make the results work to support that – but their actions showed how well or not well they understood the application.

This is where leveraging Web stats and other tools help researchers understand what users actually do rather than what they SAY they do. It also helps for observation and understanding why users may drop off at a key point. With these theories, you can then make observations that could be tested and researched in the user's main environment.

 

These factors are why I find great success with remote testing in the user's environment. If you have a camera, can see the user's facial expressions, see the user's response to the test questions, observe what they click on screen and see the recording, get an idea how users multi-task, and see what is going on in their home – you learn a lot more about users in a way that is not direct and in their faces. Hopefully, the user will forget that you are there and observing them. I think moving to a model like this – more remote observation in the users environment – will give better results for better product development and innovation.

So I guess this means I would prefer watching gorillas in the jungle to better understand what they do and how they think. I'd rather see how they play and make observations than construct a test that may direct results.

User testing – observing lab rats or gorillas in the jungle?

Developing UX for Agile – It’s a Process

Whenever I start working on a new Web site or new project, I get pretty excited about creating a new UI. I especially get excited about working on a user interface using Agile. But one thing I always remember about working in Agile is that I have to take a very different design approach. So what do I mean by that?

Often in a design project, UX professionals will want to understand all of the requirements and what the application needs to do in order to design – it's a very "waterfall" process. This is why some UX professionals find that Agile is counter to design methodologies – in design you often need to understand how an entire system works to put all of the pieces together and to create a scalable structure. However, waterfall designs are not all really that scalable – in fact, Agile gives you more opportunities in design and creating innovative UX.

What is iterative design? Well, I'm sure there are more formal industry definitions of it, but then there is the way I tend to work with it. There are a number of Agile articles on UX that define a process to integrate UX development with programming and have the UX folks work 2 weeks ahead of the team. I agree with that approach for adding features to a UX. To create a new UX, I think the UX professional does need to understand what the application will need to do (generally) and understand who the audience is, but I don't think the UX professional needs the details. For the initial phases of the project, the UX professional needs to establish a general infrastructure for the site – something that could have features added or be tweaked to accommodate features and be tested. The best way to approach this is to create a general workflow and UI that meets the basic needs of the project.

So rather than design something using Ajax and Javascript and more current technology solutions, I go basic. And by basic I mean super basic – try 1997 approaches to site designs. It sounds ridiculous, but at the same time, it's easier to get something up and working and into testing and add new features to it than to labor over creating features that may not add to the UX and users may not find useful. It's all about being basic at the beginning – basic for the user to make it easy and basic for the developers to get shippable product out the door as soon as possible.

The best part about designing using Agile methodologies is that you can't over design. By designing at the base level, you create something simple and straightforward that people find helpful. The users don't need to have previous knowledge, try to understand the system, or wonder what will happen next. Surprise is great for users to experience, but not in a first release of a product. In fact, having too many surprises can jeopardize your UX – people won't find it credible and may perceive it to be trendy and not usable. And the challenge of having too many surprises in a first release – it may not be fully developed or tested. The business owner would rather focus the development team to get the basic application to work as expected rather than getting a little widget to work as the UX designer spec'd out.

By keeping in mind simple and Agile, you also keep in mind that the sit or app is for the users and that they should be involved in the earliest stages of development. A developer can more easily create a tool that follows a more basic UI and leverage style sheets than to complete 3-4 stories to create a complex Ajax flourish. Users want functional – and by getting a solution in front of them quickly (with a clean, basic UI) you achieve that. And you can more easily get their feedback. One surprise that you may experience working this way is that users prefer the simpler designs and flows – they don't need or expect advanced functionality. They just want it to work as they expect. Once that is achieved, then it makes sense to take the app to the next level and research new approaches that more closely meet the user's needs.

Like any piece of artwork (from food to sculpture and painting), it's easier to add than to take away. We, as UX Professionals should keep that in mind when creating experiences. Keep it simple and basic and then work with the users to create artwork that they want to use.

Developing UX for Agile – It’s a Process