I am developing a system that helps auditors complete a security review using a checklist. Here's a snippet of the UI:

enter image description here

The current UI only saves the changes to the server when the user clicks save. However, this is causing issues when multiple people are working on an audit. The system detects conflicts and blocks the later save (which is based on stale data). This could potentially be solved by providing a merge feature, although that would be complex to implement.

A simple solution a few people have suggested is that the form should immediately save each change. This is easy enough to implement, but I worry it creates a UX problem. If a single click is saved to the server, it's easier for a mistake to be permanently recorded. And moreover, I'm concerned that auditors will be more reluctant to click things without a confirmation step, and this will impact their performance.

If it helps, this is an AngularJS web application. I've included the context in case it helps. What I'm really asking is: What is the tradeoff between user actions taking effect immediately, and there being a confirmation step?

  • 1
    Why not use something in between like confirming on a second click. That way you wouldn't require the user to get an "in the face" confirmation dialogue and at the same time you would be able to save it upon the second click.
    – geostocker
    Oct 11, 2016 at 9:17
  • @geostocker - That could work. One concern: an auditor would typically update a lot of checks, then click "save" once. Your suggestion would double the number of clicks.
    – paj28
    Oct 11, 2016 at 9:22
  • Yeah, I realize that. It is a bit of a trade-off, but if you don't want to show a confirm dialogue but still want to have some sort of confirmation it would be a viable option. Another one could be that you allow the user to change the form from read-only to rw and only allow the data to be manipulated in rw. Or simply allow users to change previous saves by letting them update the dataset / insert on top of the previous dataset.
    – geostocker
    Oct 11, 2016 at 9:26

2 Answers 2


In my opinion saving each change as they go is the best UX.

If I understand correctly, your main concern with this approach is that users might make mistakes when there is no confirmation step? Instead of a confirmation step, you should make it super easy to undo a selection right after it was done.

Generally it is better to allow user to undo their mistakes easily than to make them go through a confirmation step.

Check out this link for further explanation why allowing undo is better than asking for confirmation: http://www.goodui.org/#8

You can also check out the chapter 19 on this page http://www.creativebloq.com/ux/problems-81412676

  • Thanks. Just to be clear, there's isn't an explicit "Are you sure?" confirmation step. It's an implicit confirmation in that the auditor has to first update the status, then click save.
    – paj28
    Oct 11, 2016 at 12:55
  • Ah ok, that is a good clarification. However in a sense even just having the additional step of clicking the save button serves similar purpose as a confirmation step, right? It's only purpose is to make sure that the user is sure they want to save the changes.
    – Satu
    Oct 11, 2016 at 13:12

It is better to save each change as you go.

One of the main advantages to this is reduced risk of lost data if somehow your session is terminated before the final save (this can be a common problem)

The caveat is though if you implement instant changes you must implement a quick undo for mistakes.

If your issue with instant updates is that the changes will be recorded instantly, you can add a short delay and some confirmation UI (subtle loader and tick for example) on click so quick mistakes like misclicks can be reverted quickly before anything is sent to the server.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.