Category Archives: Development

Golden Rules of User Interface Design

Is there really such a thing? This article notes down Ben Shneiderman’s eight golden rules of interface design from his book “Designing the User Interface: Strategies for Effective Human-Computer Interaction”. Note to self: go speed-read this book. 

Anyways, let’s see the golden rules and some of my comments:

1. Strive for consistency. Consistency quickly familiarises a new user to a particular interface by allowing quick transferral of knowledge. This also gives users a greater sense of control (tied to point 7)

2. Enable frequent users to use shortcuts. Hmm.. not too sure about this point. I think the base-line design of an interface ought to be both graspable and usable by a newbie and not frustrating to a frequent user (i.e. having excessive prompts and orientation screens). I tend to believe there shouldn’t be a need for frequent users to need to customise their own hotkeys or hidden prompts if the base design is simple enough and intuitive enough. [But then again maybe this applies to interfaces that are fundamentally more simple. I can see how this would apply to toolkits with an extensive range of functionalities (eg. Photoshop)].

3. Offer informative feedback. So important! Let people know whether a button they have pressed has actually been pressed. I love it when the feedback has a certain level of real-life relevance – my favourite example is Apple’s wrong password “shudder”.

4. Design dialogue to yield closure. Hmm.. don’t really understand this. Any help?

5. Offer simple error handling. Because no one likes to see some weird jumble of numbers corresponding to a particular type of error.

6. Permit easy reversal of actions. A user will only be confident to explore an interface if he knows that he can reverse his actions easily. Such confidence can come in the form of toggle buttons, back buttons, clear navigation breadcrumbs and so on..

7. Support internal locus of control. Users feel more engaged and involved when they feel like they are in control of whatever “world” the interface allows them to explore. Users should feel like they are the initiators of actions and events.

8. Reduce short term memory load. Our short term memory sucks. Max 5 – 7 distinct items at one time before we feel overwhelmed.

Yawnz.. somehow ‘golden rules’ never appealed to me. I guess these rules can form the basis of interface development, but it definitely cannot substitute actual user testing. Never assume..


What exactly is AB Testing?

Oh man.. I’m still quite the neophyte when it comes to web/mobile development – there’s still much I need to learn in terms of methodology and tools.

That being said, I kinda wish user experience jargon could be a little more intuitive. haha.. eat your own medicine eh?

AB testing is (simply put) a simple science experiment used to make a decision between two choices.

There’s a control – A

There’s an alternative – B

Ideally, A and B should only differ on ONE variable (the variable you are interested in – this could be placement of a particular button or so on) Common sense dictates that including too many variables in one test just muddles the end results, though i suspect the lack of time and resources just makes people do a short cut.

We choose a test group (of statistical significance) and randomly allocate the subjects into either the control condition or the alternative condition and check for resulting conversion rates.

Conversion rates essentially refers to the number of subjects whom are sufficiently “convinced” in the particular condition to become a “follower”. In more web development/marketing specific terms, it just refers to first time visitors who decide to buy something or follow something.

That’s AB testing in a nutshell. Useful tool for development, but I can imagine the amount of effort required. Am not too sure on a few points though –

1. Seems like AB testing is used when there’s an existing product/interface and one wants to make changes and see if the changes has a positive effect on conversion rates.

Does it make sense to do it on a brand new project — to offer two alternatives and potentially double the development effort?

Or is it used in a incremental manner – compare updated development version with earlier version to see if change is well received. If not, ditch the change and move on to a different feature.

2. In a development phase, how do we get a steady stream of first time visitors? Or do we just have a pool of testers and re-use the testers? (the mere hypothesis would argue against this)

Read more about AB testing here.