December 16, 2006

Don't show errors - Prevent them

Posted by Sudhindra Rao

One of my colleagues Josh Evnin recently did a User Centered Design study for the application we are building at a client.

We were trying to build a web application where the user interacts with the system using the well known html forms.
We were doing the traditional form validation where the user is required to enter information/select the required fields.
When the user clicks submit the application does a validation routine and displays errors next to the error fields.

This is one way to make sure that no erratic information enters the application. I would call this method as 'trial and error'.

With the new UCD that Josh came up with - he gave a new direction of thought to error handling and error perception to the user.

The philosophy was why let the user make an error and submit in the first place.
Why not just stop the user from submitting ? - (by being more proactive) - that way the user already knows something is missing and he needsto fill out/select the required fields or else he will not be able to proceed.

Essentially what my UCD expert wants to tell me is why let the user get into error conditions at all.
I as a developer think -Let's do preventive design and minimise the number of round trips to the server and make sure only valid data gets to the server in the first place.

This saves me not only the time to build code for all the errors that the server gets and also adds confusion to my user. (Also I should mention that all the analysts on the project had their own opinions about the error text that should go on the page - but that is a funnier discussion in its own right)

The new design of the above page would look and behave as shown below.

Notice the difference.
As a developer I don't have to use server side validation - which at most times is desired - also with the different types of validation required today the number/string validation that comes standard with frameworks is hardly of any use. So I write my own regex based validation in javascript anyway.

As a user - this is what is more pleasing because I know that I have not completed this page correctly till the submit button is clickable.

Some sugar around training/informative messages on the screen make the screen more friendly to the user.

Get your Agile UI/UCD/Human Computer Interaction earlier in the game... and make friends with him/her..- It can save u a lot of code and make the application look slick....

November 22, 2006

How to write a blog

Posted by Sudhindra Rao

I follow Seth's blog. He has a short post about writing a blog post.

November 3, 2006

who are we creating software for?

Posted by Sudhindra Rao

who are the users of an apple imac, an ipod, a bluetooth phone, a laptop with a dual core processor? - do all of these have to be designed for your granma?

if you glance over the types of users for these hitech devices - or applications - it is the techno savvy college going/graduated individuals. Not many granmas actually own a computer or would like to own an ipod to listen to music. If your granma is anything like my granma (I bet she is) she would be happy with a radio or a record player or a TV that plays decent programs.

so why should we build everything that is good for my granma. I think I would build each of the above based on what my intelligent user - who is different if slightly so in each case - needs. An Ipod - as it is rightly so - is for the active user who travels to college, to work, is in the gym for 2 hours a day etc.
A laptop with dual core is useless for viewing pictures or checking email - that my granma does.

Point to be noted - Don't think about your granma when u design something