Seeing the connections

This demo of Parallex, a plug-in for Freebase, shows multi-faceted searches which you can visualise on a map or a timeline. The narrator snidely comments that you can’t do that on Google, but actually you can with Google Experimental, as well as the Google Visualization API. Nevertheless, it’s still pretty impressive.

Freebase Parallax: A new way to browse and explore data from David Huynh on Vimeo.

Friends forever

I’ve never been a fan of Facebook, but suddenly I’ve been reconnected to a whole bunch of old friends from high school, university, even summer camp, all thanks to Facebook. Some of these people I’d completely forgotten about, some I still can’t remember (!) and some I’d thought about every couple years and even googled, with no results.

This has created a really odd and somewhat unnerving phenomenon for me. People I considered a distant memory now tell me about their daily minutia. Friends from different parts of my life mix together in a schizophrenic cocktail party filled with small talk. Memories long forgotten are resurfacing.

To me this is interesting because it represents a generational turning point. My generation is reconnecting in a way previous generations never experienced. Long lost friends and acquaintances are reuniting from across the years and across the world.

Meanwhile, the current generation were ‘born connected’. They will always be connected, they can never lose touch. Is it a burden to carry around all that baggage? In different phases of my life I’ve had the chance to discover different aspects of my personality and form very different relationships. I wonder how that works when all the people you have ever known are observing and commenting on your every step?!

Get your story straight

This was found in a good article on pricing and selling strategies

…things-with-stories sell faster than things-without-stories. How much faster depends on the story.

The value of an item – in the mind of a consumer – is simply the difference between the anticipated price and the price on the tag. When the anticipated price is higher than the price tag, it’s a “good value.” When the anticipated price is lower than the price tag, it’s a bad value. Good stories raise the anticipated price.

I would also add that good stories get repeated.

Speaking of good stories, below are some from my reading list, via Good Reads (I’ve tried most of the competitors and this was my fave). I need a new book, so I would love to get your recommendations.


Now I get it (thanks Mr. Hand)

Common Craft has come up with a way of explaining some fairly complex technical concepts using raw stick figure drawings, cut out bits of paper and Mr. Hand. They do quite a good job explaining things in a clear, engaging way.

Google Docs in plain English…

Social Bookmarking in plain English…

RSS in plain English…

The lo-fi approach is brilliant, but the reason it’s really effective is the way they contextualize the technology using ordinary, day-to-day scenarios of interpersonal relationships.

Share and share I like

I’ve been loving Slideshare. It’s an extremely useful tool that makes it dead easy and actually fun to share presentations online. It’s bringing to the surface some outstanding expertise. I’ve collected quite few goodies in my Slideshare favorites. Below are some presentations that are particularly relevant to my most recent slides.

Agile Usability Testing

10 Lessons from the design of Slideshare (the slides don’t get interesting until slide 25)

Usability Analysis of WordPress

The customer isn’t always right

Waterfall bad, washing machine good

Soap Boxing

The Xero UPA presentation in Wellington is happening on Tuesday 7 August.

I’ve been invited to speak next month at UPA events in Wellington and later in Auckland.

I’ll be talking about and showing the interaction design process used to create Xero, providing some insights into the different design techniques used to build a complex online application quickly, yet effectively. I will also discuss how those techniques are evolving as the company and the software grows.

Wellington details:

Xero Interaction Design Case Study
(there will also be a presentation on the recent UPA conference held in Austin)
Tuesday 7th August, 12pm – 1:30pm, 2007
Statistics NZ House, The Boulevard, Harbour Quays (across from the Railway Station on the waterfront)

Auckland details:

Xero Interaction Design Case Study
Tuesday 28th August, 6pm – 8pm, 2007
Bank of New Zealand, 3rd floor, 125 Queen Street, Auckland

Web 2.0 debate

Last month, I participated on a panel debate at Webstock, arguing the merits of Web 2.0. I thought about making my presentation silly, but I couldn’t help myself and ended up creating a genuine analysis of what Web 2.0 is really all about, what makes it so significant, and why it’s important to understand. I think my slides do explain it pretty well.

I have to admit that our opponents did a much better job of making their case, using their rye cynical wit and deft charisma. Their tactics were extremely effective, but ultimately they were fighting a hopeless cause.

You can watch the full antics here.

The Magic of Montessori

I have 2 kids (Emory 7.5 and Jasper 3.5) who are both going to our local Montessori school. I have always felt strongly that the standard school system sucks. I’ve always had a desire to help reshape formal education, to create a better experience focused on: inquisitive thinking, creativity, collaboration, discovery, and following your passion.

No worksheets, no tests, no lectures, no classrooms, no homework.

It turns out, Montessori is what I’ve been after.

We went to a parent night where they showed us some of the materials the kids are currently using and learning. It was incredible. I was so jealous. I wanted to take my 7 year old’s class!!! The things he’s learning are concepts that I’ve only just barely discovered myself after re-reading Bill Bryson’s book “A Short History of Nearly Everything”. I went home and talked to Emory about it and I could see how much he’s absorbing: stong nuclear force, weak nuclear force, dark matter, supernovas, on and on. The learning he’s experiencing is not the type that’s only good for passing tests. He gets it, probably not all of it entirely, but he gets the big important ideas. Meanwhile, he’s enjoying it, really loving it, and because of that a lot more is actually sticking and getting processed in a meaningful way.

The following night we watched a video that outlines the major differences between Montessori and traditional schooling. (I’m happy to lend out my copy if you’re interested in watching it)

At first, it comes off like a cheesy corporate training video. But the content blew my mind.

I came to the profound and stark realization that sending your kid to a traditional school is like giving your kid a lobotomy and throwing them in a torture chamber. If they come out fine, it’s in spite of the education they were given. That’s how I felt about school when I was in it. Now I just wish I saw that video about 2 years ago (and I wish my parents saw it 30 years ago). Our older son Emory went to Montessori pre-school. It was awesome. Then when he was 6 we decided that he should go to the local school: it’s a block away, it had a great reputation, we were unsure whether the Montessori primary school would provide enough “grounding”. Ugh. In some ways it was a necessary and important way for us to learn that even at a “good” school in a country with a good reputation for their education system is just the same old bullshit: worksheets, tests, and catering to the lowest common denominator. It’s just as backwards as everywhere else. After eighteen months of standard schooling, we switched Emory back to Montessori and we are ecstatic.

While watching the Montessori video, I realized how directly related the principles are to interaction design, the web, social networking, and open platforms. Fundamentally, Montessori is a well designed platform that uses the same underlying techniques as our best digital platforms:

  • object oriented architecture
  • peer networking
  • multi-sensory inputs and outputs
  • parallel processing
  • iterative and agile development
  • progressive disclosure and perceived affordances

Best of all, the Montessori platform provides so many beautifully simple, highly imaginative, fun materials to help people (kids and adults alike) enjoy the learning process so that it is an extremely powerful and meaningful experience.

If you’re interested in finding out more about Montessori I highly recommend that you watch the video, read this article and others like it, read this FAQ and go observe a Montessori class.

This past week I went in and spent a couple hours with Emory’s class. I had a lot of fun making this simple little digital story together with the kids. I can’t wait to do it again!

XERO SPECS. The key to rapid design and development.

Sticky notes

When I first started working on Xero, I used sticky notes to help me get a sense of what it would take for us to build an online accounting system. After working on those sticky notes for about two weeks, we felt comfortable that we had a good foundation for the product architecture. Two weeks might seem like a long time to spend scribbling on sticky notes. But it was worth it. Those sticky notes are still a point of reference for us to this day – they still reflect the overall product structure and the product roadmap.

From our earliest plans we mapped out two major milestones: having a beta ready by November 2006 and having the product released by April 2007. We had a vague feeling that those two targets were theoretically do-able under ideal circumstances, but we all knew from our past experiences that theory and reality never align, and ideal circumstances only happen in theory.

That’s why I am so amazed that we pulled it off – hitting both targets to the day! Besides working with an amazing team of talented people, with all the hard work and some good luck, I think one of the most important factors that enabled us to make those targets has been our commitment to an agile design and development process.

If we would have done “proper” software specs for Xero we’d still be bogged down writing and arguing over use cases and flow diagrams to this day. Nothing would have even gotten designed or built yet. Instead, our specs process generally involves an hour at the whiteboard identifying the core requirements for an entire piece of functionality. From there, I go straight into prototyping.


My method for prototyping is doing rough screenflows. These are intentionally rough so that we don’t burn our time on low-level visual details, when we just need to sort out the high-level functional concepts. I quickly mock up screen layouts for each transaction in a typical user scenario, from the start of a task to the end, hitting every transaction along the way. It’s like storyboards for movies, scene by scene you see the plot unfold. I can build these prototypes very quickly, generating lots of ideas as I iterate through dozens of different designs in a few hours.

Screenflow sample

View an example screenflow prototype from Xero
To step through the screens first click on the Flash document, then use the left and right arrows

The screenflow prototypes are done as black-and-white outlines, similar to traditional wireframes. Except you move through it like a slideshow, seeing how one thing leads to the next, getting a feel for how it all flows. Traditional wireframes and written specs take a lot more time to create, plus they force you to intellectually resolve how it all works together in your head, instead of seeing how it flows on screen. Having to work it out in your head, instead of seeing it in action, leaves too many things open to misinterpretation, causing major confusion and delays.

With the screenflow prototypes we quickly evaluate what’s right and wrong about a design, what’s missing and what needs to be ripped out. We put the prototypes in front of users to get their feedback, which quickly gives us a good indication if we’re on the right track or not, and it provides us with some insights on how to make it better. Then we do more iterations.

This passage from an article written by the head of IDEO Tim Brown describes what I’m talking about really well:

People need to have a visceral understanding — an image in their minds — of why you’ve chosen a certain strategy and what you’re attempting to create with it.

Because it’s pictorial, design describes the world in a way that’s not open to many interpretations. Designers, by making a film, scenario, or prototype, can help people experience the thing that the strategy seeks to describe.

Build to Think

Design thinking is inherently a prototyping process. Once you spot a promising idea, you build it. The prototype is typically a drawing, model, or film that describes a product, system, or service. We build these models very quickly; they’re rough, ready, and not at all elegant, but they work. The goal isn’t to create a close approximation of the finished product or process; the goal is to elicit feedback that helps us work through the problem we’re trying to solve. In a sense, we build to think.

When you rapidly prototype, you’re actually beginning to build the strategy itself. And you’re doing so very early in the innovation cycle. This enables you to unlock one of your organization’s most valuable assets: people’s intuitions. When you sit down with your senior team and show them prototypes of the products and services you want to put out in two years’ time, you get their intuitive feel for whether you’re headed in the right direction. It’s a process of enlightened trial and error: Observe the world, identify patterns of behavior, generate ideas, get feedback, repeat the process, and keep refining until you’re ready to bring the thing to market.

The Prototype Tells a Story

Prototyping is simultaneously an evaluative process — it generates feedback and enables you to make midflight corrections — and a storytelling process. It’s a way of visually and viscerally describing your strategy.

Web as platform: the video

This is making the rounds, so you’ve likely seen it. Even if you have, it’s so good that it’s worth watching over and over again. Once a day, at least. Let it permeate you.

It lucidly demonstrates what the concept of “web as platform” means, how it has come to be, and why the web is already the most important operating system we all use.

Thinking points for building a web app

I’m involved with a start-up building a web app. The following was my initial outline describing what I thought were some important thinking points in developing a web app.

Key ideas:

  • Workflow is everything
  • Email is the lowest common denominator – every app needs ways to interface using email (get and set data) – the concept extends out to email-via-mobile
  • Distributed platform – a site is just one interface to your platform (others = email, rss, docs, widgets, mobile)
  • Emergent architectures – data is dynamic, architectures need to be dynamic (tagging, faceted browsing)
  • User participation – the web is a read/write platform
  • Publish and subscribe – smart ways to automate read/write (RSS, SOA)
  • User generated content – both explicit (comments) and implicit (user meta data – "People who like this also like")
  • Scalable participation – needs to work for lurkers and power geeks
  • Content generation is a selfish act – a lot of user generated content is created by "implicit creation" – bring user meta data to the surface. Let people pivot around the meta data to get different perspectives (faceted browsing).
  • Mass customisation – tools/services to allow millions of people to customise their product/experience
  • The long tail – a corollary of mass customisation – providing easy access to millions of niche items can be more profitable than focusing on a few big hits – metadata is key to making this happen
  • Programmable web – developers need the ability to build new tools and features via SOA
  • Agile + iterative – func specs can kill, design for adaptation

Other import ideas:

Web as platform

  • The End of Software Upgrades, Fixes, and Security Patches.
  • Software and Data Available Wherever You Go
  • Isolated Software Can’t Compete with Connected Software
  • Deprecation of the Traditional Operating System
  • Software That Is Invisible

Agile design

  • Design the system not the surface
  • Design as evolutionary and user-driven
  • There is no page, only pathways
  • Rapid and iterative over final
  • Simplicity over complexity
  • Collaborative and open design

Game theory

  • Easy to Learn, Lifetime to Master
  • Offer clear and obvious short term and long term goals.
  • Players should be able to succeed in the first 10 minutes or earlier.
  • Support short session times of 10-15 minutes as well as longer.
  • Support multiple player styles such as Bartle’s 4 types: Achievers, Explorers, Socializers, and Player Killers.

Important sites/platforms:

  • amazon – read/write, recommendation system, mass customisation, distributed platform, long tail, open API – progammable web (must read amazoning the news)
  • ebay (trademe) – read/write, distributed platform, marketplace, reputation system
  • paypal – email is the interface, distributed platform
  • wikipedia – read/write, user participation, reputation system, distributed platform, infinite version control
  • flickr – AJAX workflow, read/write, social platform, distributed platform, open API – progammable web, long tail
  • gmail – AJAX workflow, read/write, distributed platform
  • delicious – read/write, distributed platform
  • craigslist – read/write, social platform, long tail
  • cafepress – read/write, mass customisation, distributed platform, marketplace
  • 37better – great web UI thinking, "Getting Real" agile + iterative approach
  • IM, p2p – read/write, distributed platform, always connected, asynchronous
  • typepad – read/write, ASP, social platform
  • firefox – tabbed browsing, extensions (programmable web), standards compliant, open source
  • RSS – distributed platform, read/write, pub-sub, in-box for the web
  • greasemonkey – programmable web
  • – read/write, implicit creation, social platform, recommendation system, distributed platform
  • zohowriter – read/write, AJAX workflow, infinite version control, distributed platform
  • tivo – workflow, publish and subscribe, recommendation system