Designing User Interfaces

One of the biggest criticisms leveled at open source projects is that the user experience of open source products sucks. This post is about an attempt to introduce design standards into an open source project, particularly one without designers. If you already know how personas are used in a development product, you might want to skip this post. Otherwise, read on!

Anyone who’s been within shouting distance of myself or Paul Downey over the past six months will know that we embrace the mantra laid out in “The Inmates Are Running the Asylum” by Alan Cooper. For those who haven’t read this book, the main contentions are:

  • Products should be designed based on end users and their goals, rather than on the underlying system or code
  • Features shouldn’t be included just because they’re easy to add. Unnecessary features result in a bloated interface and a poor user experience. Features should help end users reach their defined goals. If they don’t, maybe they should be removed.
  • Developers aren’t well positioned to design great user interfaces because they have too intimate a relationship with the underlying code.

The TiddlyWiki community in particular might disagree with some of this. After all, where TiddlyWiki is concerned, the unique functionality is the experience – and some see it as more of a toolset than a web site. And how can you design the front end without a deep understanding of how javascript and css works?

I still think there’s plenty for us (the open source community) to learn from Cooper’s book. Even for those who think open source is all about scratching your own itch. If you want other people to use your product (open source or otherwise), it will greatly improve the chances of adoption if you try and understand the end user’s goals, and design the user interface to help them meet those goals.

Cooper provides guidance on how to achieve this. We use personas. We make up pretend people, and design for them. We attribute them with believable characteristics, give them goals and motives, and then base the user experience around those goals.

It sounds simple, but creating good personas is an art, and this is my first attempt. But I have tried to learn from Cooper, as well as my former (rather talented) colleagues at LBi. (Sadly, these assets have been lost over time).