Archives For interaction design

When I started as an independent consultant in 2005, I had 2 clients. Seven years later I have a successful design group built entirely on referrals. My first 2 clients, both start-ups, referred me to other start-ups who in turn referred me to more companies, eventually allowing me to build a portfolio that includes Adobe, eBay, Fidelity, Salesforce and many others.

Unfortunately we can’t help every start-up that contacts us now, but we do accept 3-4 each year. Our Sponsored Start-Up plan is geared to help start-ups launch with a great user experience. We work closely with the team on their UX strategy, from contextual research through development and launch, at a reduced rate and generous payment terms.

Obaid Khawaja, a Carnegie Melon graduate and former program manager at Microsoft, presented his plan to us in early 2011. He had the magic formula to help eBay sellers increase sales, but the existing interface wasn’t intuitive. We created a simple UX that focused on showing sellers which listing had problems, and offered tips for improvement.

The Boost BI beta was well received and brought in a number of clients including BMW and Littlewoods. And just as importantly for a start-up, it generated valuable feedback.

It turns out customers were thrilled to get insights for improving their listings. But they wanted Boost BI to go one step further and allow them to take action within the application. In V1 (under development) we’ve taken the UX to the next level. V1 makes it easy for sellers to address their most critical (revenue and volume wise) listings problems, to significantly increase their impressions and conversions.

We wish Obaid and his team at Boost BI the best, and can’t wait to see what happens next!

I don’t know where I’m getting the free time to click through Slideshare over the past week, but here’s another presentation I enjoyed. I think they did an excellent job highlighting how a product’s interface (not just copy) can influence our behaviors.

Happy new year! I’m excited to say our group is continuing to grow, not just with more clients and projects, but in our experience as designers. In 2011 we had the good fortune to lead the design forImage

One thing that was common across many of these projects was the need for a comprehensive cross platform UX solution.

So we’re offering something new this year, a complete design and development solution for classic web apps + mobile  web apps + installed apps for smartphones and tablets.

We’ve pulled together designers and developers from our little group to build the UXpert Team. Our team includes:

  • a senior UX designer
  • a creative lead
  • 2-4 very experienced developers to code the user interface and provide integration support

So if you have a project that needs expert help, our first opening is mid-January. Email me for details.

Update: we are booked until fall (Aug-Sept) 2012.

We’re proud to have worked with Cloudera’s team and our friends at Projekt202 to design Cloudera Manager, the industry’s first end-to-end management application for Apache Hadoop. Read more on Tech Crunch.

Congratulations Cloudera on the release and the great press so far. Here’s my favorite quote:

“We were treated to demos of Cloudera Enterprise 3.7 at Hadoop World, and it really blew us away with its functionality for total lifecycle management of Hadoop Clusters. That lifecycle management includes planning, creation of clusters, management of their health, control of access, logging/auditing and many other tools, all put together in a fantastic interface.”

-Bob Gurley, SYS-CON Media.

We recently had a new mobile project starting and all of our experienced mobile designers were booked. This gave me less than a week to ramp up a new designer. So I made a quick tutorial with lots and lots of screenshots, illustrating good design and not so good design. Gradually a set of patterns for mobile application design emerged.

Even as I was cataloging these patterns, I knew that the real value wasn’t only the pattern identification, but in the hundreds of examples I’d captured. So instead of a tome of abstract patterns only an author can love, this book is a showcase, or gallery, of mobile application design. This book includes 400+ current screenshots from iOS, Android, BlackBerry, WebOS, Symbian and Windows mobile applications, organized by pattern type.

Check out the:

And follow me on Twitter, @mobilepatterns, for expert mobile design tips.

This is a little off topic from the normal posts on interaction design and UI design patterns. But I was really impressed by the software my son used at two camps this summer:

  • Game Salad for designing games for the iPhone and iPad
  • Lego Mindstorms NXT for the robotics camp we hosted for seven 10-12 year olds this week.

Game Salad

This installed application for the Mac has a slick drag and drop interface and makes it pretty simple to design a multi-level game for the iPhone or iPad. In one week my son created a 10 level game with a fire breathing dragon. The only thing that would make this tool better is if they offered image libraries for use. I would have definitely paid to license a library instead of spending an hour trying to find the “right” dragon egg for my son to use in class the next day.

Lego Mindstorms NXT

The NXT software is pretty cool because it has a simple drag and drop GUI, but you can also use Python for development. There are sample programs to download that even show best practices for commenting code. In our camp, the kids built their own robots from scratch and coded them.

Here’s a short clip of the final robot war. The goal was to be the last one in the ring (black tape triangle) after pushing the rest of the robots out.

I noticed an article on bokardo, Joshua Porter’s blog, about Functionality, Gamification, and Feedback Loops. He has some insightful comments on the Wired magazine article Harnessing the Power of Feedback Loops.

I saw a great example of gamification and feedback loops in the iPad app Kobo. Kobo is an alternative to iBook. Unlike iBook, Kobo has integrated a concept called “Reading Life” that offers awards, statistics, and images to share in my social networks

Kobo tablet screenshots- from OhGizmo

I immediately called my friend and asked her to get Kobo on her iPad so we could both use it and see who reads the fastest (a little competitive spirit going on). Then I sent a link to another friend- encouraging her to use it too. Then I bought some books and will shortly post my Bookcover on Facebook.

Compare this to Audible’s Stats (timer, achievement awards and badges), which leave me feeling undermotivated. I mean, I’ll use the app and all, but I’ll never intentionally open the Stats screens again.

Kobo and Audible are both using gamification techniques to encourage specific behaviors (buy more books). So why is Kobo getting me to change my behavior and Audible isn’t?

  1. Audible has a bug and isn’t pulling in any of my hundred of stories I’ve bought over the past few years. So the feedback loop that might encourage me to “level up” isn’t working because the data is bad (I’m not an AppNewbie).
  2. Kobo started me off with some badges already earned (good for me!), Audible has me at 0 out of 15 (lame-o).
  3. The stats in both apps stay up to date to reflect my reading/listening patterns. Audbile only has one stat, listening time, whereas Kobo offers lots of interesting information.
  4. Most importantly: Kobo tapped into not only how I read (pages per hour), but how reading is a part of my life. I’m in a book club, I share my favorite titles and authors with friends, I read out loud to my kids, my mom and I bond over books. With Kobo’s “Reading Life” I can now easily share what I’m reading with my circle of friends and family.

Please share other example of apps using gamification and feedback loops effectively, or examples of ones that failed.

Harvest, the time tracking and invoicing tool we use, just added a new filter mechanism to their report generator. While I appreciate the additional functionality, I was most impressed with their multi-select combobox. It looks like a normal text field, but once the field has focus you can select any option and it will be added into the field, click again and you can select another option, building up any number of options. The field just gets larger (more rows are added) when you add more options than can be displayed in a single row.

It is equally easy to remove items from the field by clicking the little ‘x’ next to each option.

Does anyone know if there is a JQuery control for this? That would be awesome. A Flex control like this would be nice too, just in case there are any motivated developers reading this (wink, wink)…

Update: Rajesh Rajappan provided a link to the JQuery control: http://loopj.com/jquery-tokeninput/. It has autocomplete with multi selection.

Update again: Harvest released this control called “Chosen’, it is available here: http://harvesthq.github.com/chosen/

We’ve been working with Adobe since last year to design and develop a showcase of reference applications for Flex 4.5 and Flash Builder 4.5. This has been an amazing project from a design and development perspective, designing for multiple form factors, and coding with the new SDK.

Read more here:

Just a year after Flash Builder 4 and Flex 4 SDK were released, new versions are available with Flash Builder 4.5 and Flex 4.5 SDK! The main focus for Flex 4.5 SDK and Flash Builder 4.5 is the ability to build mobile applications that target the Google Android, Blackberry Tablet OS, and Apple iOS operating systems. Additionally, Flex 4.5 SDK introduces new Spark components and improvements for large application development while Flash Builder 4.5 introduces dozens of new coding productivity features for faster ActionScript and MXML development.

Shopping Cart


Expense Tracker


Sales Dashboard

Check out this excellent article by Janko: Ultimate guide to table UI patterns. It is full of great examples and suggestions.

After reading it, I just had to add three more scenarios:

1. Inline Editing


Quicken Online allows simple editing with a pull down for more advanced editing.



Mint.com does the same.

The Ajax framework Ext JS and Ext for GWT offers a pre-built Grid row editor component. Try out the demo. This would work well for tables that are primarily read-only but might need to be edited. This design is not for heavy data entry.


For heavy data entry, use a design like Harvest. They offer a simple grid layout that keeps a live total and provides a Save button for saving all the entries once the person is done (it also auto saves periodically).


Google Docs is an online spreadsheet application with inline editing. It also has a Save button for the whole spreadsheet, as opposed to per row updates.

Inline Editing Best Practices

  • Implement tab navigation when you create a table with inline editing.
  • Consider how to handle errors, such as highlighting rows or cells with errors in a way that is easy for a person to correct the issues. Don’t break the person’s data entry flow by locking them in a cell with an error, simply highlight the cell with the problem and provide a way for them to return to it later to fix it.
  • Offer undo and redo functionality.


Swivel is an app that acts a lot like Excel and provides cell specific error messages.

2. Super Wide Tables

I received an email last week asking me about super wide tables. The email said “I’ve come to the conclusion that breaking them up into smaller chunks is maybe the best way to go, rather than going with a horizontal scroll-bar that goes on for days.”

Based on a lot of design work Bill Scott and I did for the airline industry, I would instead propose instead applying these principles:

  • Organize the most important columns to the left.
  • Experiment with frozen/fixed columns, so if the person does need to horizontally scroll, they can keep context.
  • Only show a set number of columns in the default view (so there is no horizontal scrolling in the default view) and offer a Customize option so the person can choose to hide or show more columns. ExtJs has this built into the column dropdown; I usually add a customize button to the table toolbar with Hide/Show column functionality.
  • Offer resizing of columns.
  • Offer rearranging of columns.
  • If you have a table with some columns editable and other read-only, group editable with editable, read-only with read only.
  • Don’t abbreviate column titles, reduce spacing or padding, or drop to a smaller font to fit your table on the screen. That won’t help anyone use your app.
  • Try out fat rows like this example from Survs. Instead of having a column for title, created by, created on, last updated on, all of that information is in the second column. Good visual design can help organize the information in a more meaningful way which makes your data easier to scan.
  • Use a summary row to chunk the data if appropriate. I know this won’t make your table any narrower, but it might make it more readable.
  • Consider putting a visual summary, or roll-up, above the table so the person can make sense of the data visually before diving into a huge table of numbers.

  • Discover Spend Analyzer offer a dual purpose summary and filter above the rows of transaions. Play with the demo to try it out.

    Swivel example

3. In-column Filtering

The example included in Janko’s article has dynamic filters above the table (dynamic meaning, when you make a selection, it dynamically updates the table content- without an extra submit action).

In some web applications, like heavy productivity applications or enterprise apps, in-column filtering is a powerful option to offer. It is pretty easy to implement with Flex or Ajax. Just validate the need for this type of functionality with your customers; it could be overkill for people who just need simple filtering.

Example from Zenoss Open Source Server and Network Monitoring

Try this at Telerik RadControls. This example requires a click on the filter button in the column, and has the option for selecting a specific way to apply the filter.

Play with SmartClientRIA, where the implementation ( they blank out the whole content area while filtering) makes it seem slow.

And a Flex example, where clicking on the filter icon lets you search in that specific column, and then you can further refine by filtering other columns.

Make sure you take a look at Janko’s original article: Ultimate guide to table UI patterns, and another informative post 15 Tips for Designing Terrific Tables.