In Everything, Find Purpose

It really is as simple as that. As a software developer, business analyst, or even project manager, you will find yourself tasked with designing user interfaces no matter how hard you try to avoid it. Clients will tell you how they want it to look and act, others on your team will provide input, and at the end of the day you’ll have to come to some decisions. This process may not prove all that difficult, but I want to provide you with a handy trick I use when assessing whether a UI design decision is the right move. Ready for this? Here it is:

Look at each decision you’ve made, and simply ask, ‘Why?’

Links should be blue, you’ll decide. Next action: Why?

Each time we use the word MagicTouch in a headline, it should be followed by an ® symbol. Next action: Why?

A client will say to you, “I think it will look better if this text is center justified, rather than left aligned.” Next action: Why?

Stopping to ask why? will force you and others to think about the actual intended use of a feature. It will push you to think about user behavior, instead of random decisions. And most of all, it will teach you that you actually believe in what you’ve designed, because you’ll know you’ve thought it through. If at any point you can’t answer the Why? intelligently, you’ll know you have some rethinking and potentially redesigning to do.

This concept should be applied outside the world of design, as well. When you come to a decision, it’s never a bad idea to test it out with a well thought out Why?

In the end, it’s all about finding purpose. In everything, find purpose.

And with that message, I would like to share the news that I have decided to move on from ThoughtWorks. My time here has been tremendous and purposeful, but it is time for me to go try something new. If you read my blog via ThoughtBlogs, I invite you to subscribe to my RSS feed, because it likely won’t be displayed here much longer. Thanks, ThoughtWorks. I’ll miss you.

Have I mentioned I’m on Twitter?

I seem to be posting there a lot more frequently than I am on the blog. Here are my latest thoughts:

Introducing TwiddleEast

This weekend as Israelis and Palestinians clashed again in Gaza, and it seemed like everyone had a reaction to the violence.

As I consumed the popular media, I began to think about the more pedestrian views out there. It is important to understand what the everyman thinks, even if one does not agree with him or her (and I certainly do not agree with many of the opinions out there). After all, it is only by understanding others’ points of view that we will ever get ourselves out of these international confrontations. Peace comes when people understand and interact with one another.

A great place to get at peoples’ opinions is the popular new communication tool: Twitter. Twitter allows users to post messages, opinions, and thoughts 140 characters at a time. Each post is a tiny glance at a person’s thought. If you’re not a member yet, you should give Twitter a try. It’s quite fun and addictive.

So, as I set out to glance at what people were saying about the situation in the Middle East via Twitter, I decided to build a tool that would help with this task. And so I did just that, with TwiddleEast.

Here's what TwiddleEast looks like
Here's what TwiddleEast looks like

TwiddleEast allows you to quickly glance at what people on Twitter are saying about a few of the Middle Eastern countries in the news today.

Check it out, and I’d love to hear if it is helpful to you. If there is anything I can do to make TwiddleEast better, don’t hesitate to let me know, and while you’re at it: follow me or TwiddleEast on Twitter.

Google Chrome’s Design Comic

So the big news on the internets today is Google’s new browser: Chrome. It’s only available for Windows as of today, and since I’m on a Mac I haven’t been able to play with it yet. But that’s ok, because Google hasn’t completely left me out of the loop. I have access to the comic interpretation of their engineering decisions.

Google Chrome Design Comic
Google Chrome Design Comic

Comics have been a topic of discussion in the Interaction Design Community for a while now. With Scott McCloud providing the art for Google’s message, they really couldn’t go wrong. McCloud has quite literally written the book(s) on creating effective comics. (Of course, you can create your own design comics too, thanks to projects like Martin Hardee’s Design Comics.)

One thing that I’d like to applaud Google for with this comic is their use of actual Googlers as the narrators of the story. Naming names like this gives credit to the actual thinkers behind the work. All too often in the business world today, we hide individuals behind a big corporate brand. In this example, these Googlers will feel real ownership and responsibility for their product, and they’ll be motivated to continue working on the project even if (and when) they leave Google. Of course, I’d also like to call out the fact that no User Experience team members were named in this document, even in the section titled “Search and the User Experience.” This is strange, and I hope there was a User Experience team dedicated to this project.

And another thing Google did well here was in not trying to over-engineer their explanations of highly technical processes. They simplified their message down to bare essentials, and I felt enlightened after reading this document. Most technical documentation talks down to people, assuming that all the basics are already understood. Google removed some barriers to entry by explaining their new technologies in a way that almost anyone with a little technical know-how can understand. This is something almost every other open source project out there fails at. Technical documentation is far more than simply documentation…it’s an implicit invitation to take part in the experience.

Browser Threads Vs. Processes
Browser Threads Vs. Processes

At the end of the day, I’m really impressed at the quality of this documentation. I actually read the entire thing, which is much more than I can say about the technical documentation for any other software I use. Who knew that I could find the difference between multiple threads and multiple processes interesting?

Well done, Google. Now I just have to find a Windows computer…ugh. I swore off those things months ago…

Ask “What if” Questions

What if we could travel 5 miles in less than 5 minutes?

What if we could watch movies in our own homes?

What if we could buy things for a whole day without using any paper money?

What if we could communicate with friends on the other side of the world without leaving the house?

I hope you noticed that, in fact, we can do all these things today. However, a mere 100 years ago, these questions would have been dismissed as pipe dreams by most people. But dreamers dream, designers design, technologists build, and before you know it, really difficult problems find solutions.

This is why I try to take the long view when thinking about design problems. Today’s technology is ephemeral, it will be gone before you know it. But when you find solutions to the big problems, those interactions can last for centuries. So the next time you start a project, instead of asking, “What would the UI look like to solve this problem?” (or even worse, “What will the architecture of the software look like?”) ask “What if we could ________?” And fill in the blank with a really challenging problem.

After all, if you’re like me, you didn’t get into technology to solve tiny little problems. You got into technology to make lives better & jobs easier. You got into technology because there are challenging problems to be solved. What if you solved them?

Comments on a User Interface Manifesto

Jono DiCarlo at Mozilla Labs documented his feelings about user interface design in a great post titled These Things I Believe. While I do not agree with him across the board, he does make some interesting points, and helps guide software developers toward the (great user experience) light. I’ll call out a few of his assertions here:

Software is for humans, not computers

This is the only absolute truth in the world of technology. Software architectures change, programming languages go through cycles of popularity, and code design patterns will be preferred by some over others. At the end of the day, though, the software we build is always being built to help some human be more productive, happy, or both, even if it literally has no user interface. Before building your next piece of software, I implore you to ask yourself how this software will make the world a better place, as Jono suggests.

People use computers to connect with other people

’nuff said. This is the only reason 99% of people use computers at all. (If you’re reading this, you’re probably not part of the 99%. That’s ok though, because you are not your user.)

There’s no such thing as free software

Open Source software is, by and large, really difficult to use. I would never leave my mom alone in a room with Linux, it’s just too cruel. Like Jono says, “Linux is only free if the value of my time is zero.”

The job of the UI Designer is to provide what the users need, not what they say they need

This paradoxical statement succinctly defines what it is that I do for 40+ hours every week. There are various methods that provide clues as to what users really need, other methods that design for those clues, and still other methods that test whether the users’ needs have been fulfilled. What I do at work all day is carry out those methods.

User interface design can be approached scientifically. But usually isn’t.

This is where Jono and I will disagree. He lays out a list of metrics that can bring about statistically significant results when it comes to usability testing software. My clients frequently argue to me that if we drive down the number of clicks in an application it will be easier to use. I don’t care about click counts. I’ve seen well liked software with high click counts, and hated software with low click counts. On top of this, while gathering metrics based on click counts, frequency of use, time on task, error rates, and error frequency may get you some information about your software (which is good), these methods never tell you how to fix the problems. Real world, in-situ usability testing will tell you these problems, and suggest solutions.

It is a sin to waste the user’s time, break the user’s train of thought, or lose the user’s work.

Yup, sin is the right word to use here. Have you sinned lately?

Thanks to Jono for creating this list. Maybe one day I’ll make one of my own. 🙂

Generate Design Ideas. Rinse. Repeat.

Adaptive Path‘s Kumi Akiyoshi blogged a quick piece about the visual design of Aurora. I really love the exploratory designs that were created before deciding on the one we saw in the videos. I don’t necessarily love all of the features within them, but it is so important to create multiple design options before settling on the one that will be developed.

Aurora Design Option

A visual design option for Adaptive Path’s Aurora, by Kumi Akiyoshi

Another Aurora Design Option

Another design option (see more)

These examples show different options for the visual design, but you can generate ideas for anything you design. I do this all the time when I’m designing exactly how a feature will work. Anyway, go check out Kumi’s post. There’s lots more to see.

Aurora, the Future of the Browser, and Agile Envisionment

As your local Interaction Design opinion one-stop-shop, I feel obliged to weigh in on Aurora, Adaptive Path‘s newest concept series in collaboration with Mozilla Labs. First off, if you haven’t watched the videos they’ve published so far, do that first:

Aurora (Part 1) from Adaptive Path on Vimeo.

Aurora (Part 2) from Adaptive Path on Vimeo.

Aurora (Part 3) from Adaptive Path on Vimeo.

There are a few more videos on the way, but those should be good enough to kick off a little commentary.

First off, it should be noted that envisionment videos like these have become an often used tool for Interaction Designers. When you’re intent on creating an experience that does not yet exist out in the world, an envisionment video invites viewers to see how people might be impacted by new technologies, and allows technologists to begin to build the future. Bill Buxton describes Envisionment Videos in his already classic Sketching User Experiences:

As their name suggests, these are clips that are created to communicate some holistic view showing an envisioned system in context. Unlike many of the examples that we have seen, they go beyond just presenting a demo. Rather, they usually are built around a narrative that tries to capture a way of working with technology, as opposed to the design specifics of the device itself…Overall, they are very much part of the story-telling tradition of design.” – Bill Buxton

If you’d like some more examples of envisionment videos, I recommend checking out the ones Buxton discusses in his book:

One of my favorite envisionment videos is HP’s Cooltown, which is extremely polished, but a cool look at the “future” nonetheless. Unfortunately, it seems that the concepts in HP’s video have not come to fruition, at least in a way that impacts HP’s wallet. That’s the way of many of these videos, though. They tend to be so forward looking that one company could not hope to build tools to enable all of the concepts in the sketch, at least in the short term. But, the videos can be used as a guide to the company’s long term future. For example, we’re seeing concepts from Apple’s Knowledge Navigator come to fruition only now, many years after the release of the video.

When it comes to long-term vision, I believe that the “just-in-time” philosophy causes Agile methods to fall apart. See, from the Interaction Design point of view, technological innovation occurs to solve big & ugly human problems. Agile methods encourage developers to build the simplest thing that works in the hope that incrementally (and sometimes iteratively) big & ugly human problems will be solved. But the whole solutions to the big & ugly problems are often not the sum of their parts. More often than not, it takes a long-term strategy to solve these issues.

I’m not saying that the Interaction Design and Agile Development points of view are too incongruous to come to terms. Quite the opposite, in fact. Long-term visioning Interaction Designers and just-in-time Agile developers should be able to come together to solve those big & ugly human problems, but must agree that their day-to-day goals are not the same. I’ve seen too many Interaction Designers called in (myself included) to tweak an already developed application’s interface when the entire vision of the product is unclear.

I just returned last night from the Agile 2008 conference, and if there’s anything I learned there, it’s that Interaction Design and Agile Development are friends, not foes. However, we need to work together to understand our separate goals and outputs. At the end of the day, both groups need to be successful if we want to build great software.

So Agilists, let’s think about long-term vision a little bit. Let’s create some quick & dirty visions of the future. Then let’s build the heck out of them.

And finally, to return to Aurora, I simply want to say that I am really enjoying the videos. Is this what the future of the web browser will really look like? If the other videos I mentioned are any indication, probably not. Still, there are some fantastic concepts packed into those short videos, and we have a lot to learn from them. I wouldn’t be surprised if many of those concepts do see the light of day, and at the same time I won’t be holding my breath.