Tuesday, May 12, 2009
Designing RIAs...the Right Way
Friday, January 30, 2009
User Experience Designers...Listen up!
What are the best methods you’ve experienced with regard to incorporating quality design & usability practices into Agile software development?There is some debate in the software industry regarding the scope of UI design work to be completed before Agile software development can begin. What are your thoughts? When is a detailed prototype necessary? When is it not necessary?
Thursday, January 29, 2009
Do prototypes help or hinder the Interaction Design process
Tuesday, January 27, 2009
User Experience Designers... speak up!
What are the best methods you’ve experienced with regard to incorporating quality usability practices into Agile software development?Before posting my answer, I am interested to hear what all of you think.
Wednesday, December 10, 2008
As usual, I mostly agree with Jakob Nielson
"It's perfectly feasible for developers to do interaction design and usability."
Wednesday, December 3, 2008
Experience Designer/Interaction Designer Wanted in Massachusetts
You can see the official job posting here. If you have questions email me at rob[dot]mckeown[a]workscape.com
Monday, December 1, 2008
Experience Designer/Interaction Designer Wanted!
- Proven track record designing enterprise applications
- Experience participating in usability studies
- The ability to quickly create wireframes and mockups
- Design skills that will "Wow" while adding real value to users
- Experience working in an Agile environment
Thursday, August 7, 2008
Usability testing on a budget... but only on a Mac
All that and its only 49.99.
It really begs the question, "Why didn't something like this already exist?"
Unfortunately, for those Windows users, it only runs on the Mac. If you know of something similar for Windows users, feel free to comment.
Why is UX hard to sell?
In light of those facts, you would expect that anyone building a product, whether a physical product or a piece of software, would place ease-of-use at the top of the priority list. However, in may cases that isn't true.
It goes back to the early history of computers when the people using them were the people that created them and they understood and appreciated how difficult they were to program to do anything. So when presented with something complicated, they thought "wow... this must have been really complicated to develop". They were ok with that. But now, computers and software are "magic" to the majority of people. They don't care how complicated they are to develop and don't appreciate the effort (and they are right not to). But people creating software sometimes think that users will understand how difficult a feature is and cut them some slack if the interface isn't as good as it could be. It just isn't true anymore.
I, and other designers I'm sure, would be interested to here success stories from those designers who have overcome the "lets just make it work... we'll make it easier to use later if we have time" mentality. Feel free to comment.
Wednesday, August 6, 2008
Adaptive Path and Mozilla's Aurora - Part 2
Aurora (Part 2) from Adaptive Path on Vimeo.
The second part of the video shows two people using a mobile device to access a similar interface to the desktop version shown in the previous video. What is interesting is that the mobile device is not also a phone, camera, mp3 player and food processor as would expect in "the future".
Tuesday, August 5, 2008
Adaptive Path and Mozilla's Aurora
Aurora (Part 1) from Adaptive Path on Vimeo.
It seems that some people like this interface while others have had mixed feelings about it. But let me put my two cents in.
When I look at these types of videos I typically stand back on try to imagine a world in which I use that tool. In most cases, like with Aurora and the multi-touch coffe table, I wind up thinking that I would never use that. However, one thing to keep in mind is that the purpose of these futuristic visionary interfaces is not to predict exactly what the future will hold. The real purpose to to explore the possibilities much like a concept car from an auto manufacturer. In most cases the total package never gets rolled out but certain aspects of them get rolled into more realistic versions of cars.
So while I think some of it is interesting from an interaction design aspect, other parts seem like a solution looking for a problem to solve... but thats ok and I commend Adaptive Path for going well outside the box.
Thursday, July 31, 2008
Here's something you should think about but probably don't
The 404 error page is one of those things that you assume people on see when they make a mistake and enter an nonexistent page url. This is probably true in many cases, but it could also be because you made a change to a page on your site and inadvertently broke a link (that never happens does it?) Regardless of why people wind up on the error page they end up in the same situation since they were expecting the content they requested and didn't. So, why not take the opportunity to help the visitor find what they were actually looking for. Robert Hoekman, Jr. talks about this in his book Designing the Obvious (which is great by the way). Take a look on page 1154 and you will see a discussion about it.
For some ideas on how you can create a better error page, also check out http://patterntap.com/tap/collection/404-pages
And before anyone comments and asks if my sites http://www.mcgraphix.com and http://klok.mcgraphix.com have custom error pages, let me admit that they don't. Hey... I'n not perfect you know. But, I will be rectifying that immediately.
Tuesday, May 20, 2008
Bullet Graph - Free Flex Component
Granted, this could probably be made more configurable, but this is just the first crack at it. So, right now, you can set the label, target, actual value and give the ranges that would indicate "bad", "satisfactory" or "good". You can also specify how many tick marks should be shown on the quantitative scale.Feel free to check it out here (view source is enabled) or download the zip here.
I highly recommend Stephen's book for anyone who is creating any application that needs to display complex data. You don't have to be building a traditional "Dashboard" put his suggestions to good use.
Monday, April 14, 2008
MXNA is down. What do I do?
I have to pack some kind of User Experience lesson in here, so here goes. Don't trust what user's tell you. They become so unaware of the things that use all the time that they take them for granted. Anyone who looked over my should on any given day, they would probably notice that every time I am doing a build (which takes a couple of minutes), I switch over to my browser window which always has the first tab open to http://thoughtfaqtory.com/flex/mxnaviewer/.
So keep that in mind when you want to find out how users actually use the software you build. Just remember to ignore what they tell you and pay attention to what they show you.
Sunday, April 13, 2008
Worst UI Ever - Progressive Disclosure
I am in the market for a minivan so I head over to the Toyota site to see what it would cost for the one I am looking for. The site is looks very nice, however I ran into this little problem. The dropdown shown below has a clearly labeled link called "Build Your Sienna" as shown below.

When clicking it, the problem is obvious

I actually had expected to be taken to the "Build Your Sienna" screen rather than have this mysterious little form pop up. In fact, for a second or two I didn't even notice it. When I did notice it, I wasn't sure what I was supposed to do. So I just clicked "Build Your Sienna" again. While my mouse button was held down, the words "Zip code" were displayed in the form field. When I released the button, it went away again.
Since I didn't think my zip code was relevant, I just clicked on "Go" and was met with this:

Apparently, a zip code is required in order for me to build my vehicle.
First of all, the if the zip code field was going to be there it should be labeled initially. This could just be a bug due to me using Firefox. Perhaps the site wasn't tested enough.
In my opinion though, if a zip code is a required part of building my vehicle then it should be part of the vehicle building process rather than this unlabeled popup. The reason for the zip code is probably due to changing costs based on geographical location. They may not want to say that on the site, but they could have said something like "Your zip code is used to find dealers near you that might have the vehicle you build in stock" This would do two things, give the user a reason why the zip code is needed and also benefit the customer since there is a good chance that a potential buyer might want to actually go test drive the vehicle at a local dealership.
While it might seem cool to add the little form using Progressive Disclosure, this is not an appropriate place for it. "How" we put stuff on screen is only part of the equation. The "Why" and "What" are usually far more important.
Tuesday, April 1, 2008
Moonwalking bears and RIAs - The effects of change blindness
If you are wondering what this has to do with RIAs, lets think back to the web 1.0 days. In most applications the only way to see changes in data was to refresh the entire screen which resulted in a brief loss of focus followed by an attempt to regain focus once the page was refreshed. Usually the new page was different enough to make you briefly rescan the entire screen.
Now fast forward a few years and we are in Web 2.0 land with all the RIA goodness thanks to AJAX, Flex, Flash, etc. With these new technologies has come the ability to refresh only the data of the screen which, on one hand, is much better since you don't have to reacquaint yourself with the screen after every change. However, on the other hand, without page refreshes it may become difficult for users to actually notice that a particular portion of the screen has changed. For example, if I add an item to my shopping cart, I could miss the fact that my total or estimated delivery date has changed.
Keep in mind that if it is important that the user notices a change, then we must make it obvious (with a non-modal) notification.
Thursday, March 27, 2008
To save or not to save
It tells me when it last did it so I can be sure that if something went wrong and I lost my internet connection or my machine crashed, all but the last few words would be safe. If I click SAVE NOW, I get this so I can differentiate when I saved vs. an auto-save.
Notice that the text saying when it was saved is not modal, so I can happily ignore it if I want. This is much better than an Alert saying the same thing since you can't ignore an Alert.
Usually the argument against this goes like this "We can't decide when the user should save" or "What if the user doesn't want to save?" In actuality, it is safe to assume that the user always wants to save. After all, how often do you spend a bunch of time writing something and then not want to save it? You may infrequently, discard changes but that certainly happens much less often. Since it happens so infrequently, Blogger has no way to not save. This was no doubt a concious decision based on knowledge of real users' goals.
Now, some applications may need the ability to not save. But, that doesn't mean that you can't have auto-save. One solution would be to store the last manually saved data in a secondary location until the next manual save. Then if you wanted to revert to your last save after auto-saves have occured, you could simply retrieve it from that secondary location. If revert is never needed, then you could just throw that data away when the session ends.
I can already hear the arguments now. "That would be very difficult to implement", "We should spend our time on REAL features", "How would referential integrity be maintained?", etc.
In some applications this not trivial. But, as usual, the arguments against rarely mention Jane Smith, the professional writer. Remember, software is meant for humans to use to solve their problems. We can't leave them out of the equation.
Sunday, January 13, 2008
What's your title?
If you are someone who is responsible for designing what software behaves and looks like, then what is your title? Just curious if there is a succinct way to sum it up.
Tuesday, January 8, 2008
Worst UI Ever? Error Messages Part 2
I can't take credit for finding this one but it is a great example of how not to treat the user. I won't bother to repeat all my thoughts here but you can read them in the comments of the original blog.
However, I will take a moment to summarize what should be a global philosophy for anyone creating software. Here it is:
"Software is a tool to be used by humans to accomplish something. It is NOT a tool used by computers to accomplish something."
When you step back and think about it, it seems obvious. I buy and use software because I need to accomplish something (editing photos, paying bills, communicating with friends) in a way that is easier than the way I used to do it. The last thing I want is to feel like I am driven by what the software wants from me.
If a person said, "write your phone number down for me" and I wrote 555.555.5555, (555) 5555555 or 555 555-5555 then they would have no problem understanding that. If they said to me that when they think of phone numbers, they think of the format (555) 555-5555 and then asked me to write it in that format I would laugh and not expect to actually have to do it. I don't think it is asking too much of the software developer to implement that kind of logic. Some human-like logic is hard to implement obviously but some isn't. An when it is done, it can have a huge impact on the opinion a user will have of your software.
Who is "The User"?
The problem is that if you don't know anything about who you are designing software for, you are very likely going to create software that either is geared toward use by the developers or product owners themselves or is based on some union of all traits of any possible user. Since most software companies are not building software development tools there is an obvious problem with the former. And, unless you are building very specialized software for a narrow population of user, you can't really combine the traits of a super power user and occasional perpetual novice user into one ideal person which makes the latter a problem.
Why shouldn't the developer build what she would want?
The answer is simple. Developers are a different breed of person. Take no offense if you are one. I am one too. Developers enjoy having an understanding of the inner workings of software and can appreciate the technical difficulty of it. Plus, they understand every aspect of the software they are building. All of that makes it hard to see the software from the point of view of a non-technical person, who has no interest in how software works and doesn't care how difficult something is to implement.
Why can't one UI serve all the traits of all possible users?
If you think about most things in the physical world, there is little that is "one size fits all". In fact, things that used to be called "one size fits all" now say "one size fits most". The reason is obvious. One size can never fit all. This doesn't just pertain to size...
Imagine you were in the shoe manufacturing business and you created a line of sneakers. So far so good. If someone decided that you should make shoes that would be good in the winter while shoveling snow, you would not likely try to adapt the sneaker design for this purpose. Even if you could make that work you will ultimately wind up in the situation where as you need to create dress shoes, sandals, water shoes, etc. they can't be combined into one shoe. The only way this can work is to understand the needs of "The User" better.
In our shoe manufacturer example the better solution would be to think of the different types of shoes as meeting the needs of particular consumers. As you go through the process of defining the different types of shoes needed, you will probably see opportunities to combine types. A sneaker and a hiking boot could be combined. But a hiking boot and a sandal probably can't.
When designing software we need to do the same thing. Certain functionality is meant to meet specific user goals. Those goals can usually be categorized into buckets such as Employee or Manager, Student or Teacher, Player, Coach and Scout. Once you categorize the functionality, you can start to make decisions about how the UI can support those types of user.
As UCD practioners will notice this is a step toward defining Personas. While Personas are very powerful mechanisms for understanding specific users, I have found that Agile teams are very reluctant to spend the appropriate amount of time defining them. If you have the time, by all means, go for it. If you don't, and can't get the time somehow, at least try to make a quick pass at it at the beginning of the process. Finding out during the middle of development that the software is going to be used for global reporting by executives as well as the individual employees for data entry would be very costly .
The Bottom Line
While you don't need to go survey hundreds of real users, it is very valuable to at least think about who those users are. Every user will be happier with the result.