views:

170

answers:

3

I am developing a web application that collects data over multiple steps through a wizard. Steps are generally not interdependent, in that data input at each step has little or no effect on the consequent steps. However each step may have a set of validations which determine whether the user can progress to the next step by clicking 'continue'

What should be the behavior when the user clicks previous?

a> Quickly move to the previous page, thus losing all the unsaved data in the form. Prompting the user with a warning is an option, but it can become irritating quite soon.

b> Move to the previous page saving all the data in the current step - without triggering validations, so that when the user comes back she sees the form in the same state that she left it in.

c> any other behaviour

All opinions are welcome :)

+5  A: 

You should save the entered data, but you can get away by saving it volatilely (clientside or in memory - cookies or SESSION). No need to make it persistent in your DB or anything - if the user doesn't complete the wizard entirily, there need not be a trace (though it would be nice, if you can afford the resources. Cookies should suffice though).

This reflects the user's Mental Model: most popular Windows installers work like this. This conforms with DRY - Don't Repeat Yourself. If the user has already answered the question, don't make him re-answer.

Konerak
Client side save of course. Can not afford to have unverified data infiltrate into the DB :P
Ashwin Prabhu
Unless you have a PASSED_VERIFICATION flag. Our invoicing application saves EVERY invoice a user enters, even wrong or incomplete. This way, the user can 'oh no I have to leave or I'll miss my train', save, turn off computer... and resume his work in the morning.Offcourse incomplete invoices are not shown in statistics - but they do generate reminders.
Konerak
+1  A: 

The easy way to answer this is to remind yourself that the software exists to serve the user, not the other way around. The users job is not to fill in your form per se. That's just a means to some other end.

Do every automatic save you possibly can, remember as much as possible, and don't make the user do any more data entry than is strictly necessary.

And make sure you only validate really important stuff. Don't whine about "phone numbers can't have - in them!" and things like that. If you don't accept dashes, simply remove them and move on, don't make the user do it.

Remember: the software is there to serve the user, so when answering the question "should I ...?" always ask "how will my decision affect the user".

Bryan Oakley
software exists to serve the user, not the other way around., so when answering the question "should I ...?" always ask "how will my decision affect the user".- Nice way you put it :) Simplifies a lot of UX decisions
Ashwin Prabhu
A: 

Agree with what Bryan said.

Btw, can't you explain everything (why you need that value, what happens if user enters that value/select that option) in the form so user don't have to go back to edit?

Of course you should save everything so user don't have to re-enter everything again, but it would be nice if you can give enough info to the user while filling the form so that he dont have to go back and forth while filling the form.

Ashit Vora
I have taken care such that my forms don't require frequenting back and forth within the wizard for completing a task, or so I hope. That said, you never know how different users use the forms, hence this was a general question on design of wizards.
Ashwin Prabhu