I was in a discussion in another forum where I disagreed with the purpose of intentionally delaying an application's actions, and I'm hoping someone can clarify where doing would be considered acceptable design.
The scenario presented by the developer was that in their application, they add a delay of "a second or so" when updating a record—simple items like a phone number, address, and the like—saying that "Humans are usually happy to wait for a couple of seconds and are more disturbed when something happens instantly" and actually going so far as to show a progress bar for even the simplest actions.
My point was that intentionally delaying actions is typically a sign of poor design decisions, and that the progress bar should only appear when an action is going to take an extended period of time; if a transaction takes only a second that there are other ways to let the user know the state has changed. It may only be a second here and there but that time does add up and to delay things unnecessarily is just wasting the user's time, and only because one may think the user would be concerned if there were no feedback of some kind.
I want to ask the community what they think would be an appropriate use of this technique. I'm not looking for materials that would specifically disprove either position. But I did want to get a better understanding of why one would want to do something like this because. Frankly, I'm not buying his argument, but I also don't mind being proven wrong as long if I learn something from this.
I've tagged this question community wiki because I've looked for questions related to this, but they all deal with how to actually perform a delay as opposed to the context in which a delay is done.