Home » Why do users click randomly and rapidly when an application hangs?

Why do users click randomly and rapidly when an application hangs?


I believe the reason users click repeatedly is because they are accustomed to anticipating an update every time they perform an action and the clicking allows to find out if there is an expected behavior from the app or at least some reaction which informs them about what they could do.

Also this funny image might give an answer 🙂

enter image description here

With regards to the space bar key,I think it has to do with the large size of the key (Fitts Law) and the ability to easily click it again and again in the hopes of getting a reaction. With regards to the enter key, it is generally used as an affordance to move to the next step and users might hope that repeated presses of the enter key will help get past this troublesome stage and load the next stage which is hopefully working.

Finally the escape key is pressed as it has become the denotation to escape from what the user is doing on the a computer or the close something and hence an attempt to escape from this situation. To quote this article which talks about the psychology of the escape key

The button dates to 1960 and was created by I.B.M. programmer Bob
Bemer. It was intended to help programmers switch from one computer
language to another. Later, the key evolved and literally became an
escape tool: users now press it to stop what function they’re engaged
in, no matter what operating systems and brands they’re using. The
naming of the key was likely meant to suggest a sense of panic. I
personally think the language is effective: it’s powerful and to the
point, somewhat fanciful and a little dreamlike–and definitely not as
alarming as a button that would scream “help!”

Also to quote this NY times article about the ESC key design

Why “escape”? Bemer could have used another word — say, “interrupt” —
but he opted for “ESC,” a tiny monument to his own angst. Bemer was a
worrier. In the 1970s, he began warning about the Y2K bug, explaining
to Richard Nixon’s advisers the computer disaster that could occur in
the year 2000. Today, with our relatively stable computers, few of us
need the panic button. But Bob Frankston, a pioneering programmer,
says he still uses the ESC key. “There’s something nice about having a
get-me-the-hell-out-of-here key.”

Finally the control +alt+delete option might be used in an attempt to shut down the application and start afresh.

I believe the user’s mind flows in this pattern

let me check if there is a reaction (click stage) –> let me try to get past this stage (enter key) –> let me kill this application at the local level (ESCkey stage) –> let me shut this application at the root level or computer level (control-alt-delete stage)

People tend to think of their interface in physical terms. You think of a ‘window’ not a ‘rectangle of lights on a matrix’. And so, when an application hangs, people revert to interacting with it in the way they might do with a physical object when it stops working.

Shaking things seems to be the way that many people try to ‘fix’ a physical object that isn’t working, and the digital equivalent to this is to beat it with your clicking might.

Additionally in times gone by (thankfully), sometimes a click wouldn’t be picked up by the computer for whatever reason, and so clicking again when nothing appears to be happening often solved the problem, because the computer would then often pick up the click. So the clicking was a way of making sure that you had indeed clicked, and it had been picked up. The fact that this often worked re-enforced the behaviour and so people ‘learnt’ to do it to be sure that it wasn’t the click that was missed or at fault.

I recently read something about this called Extinction Burst from the book You Are Not So Smart. Here is the chapter that I’m talking about and this is an excerpt from Wikipedia:

Take, as an example, a pigeon that has been reinforced to peck an electronic button. During its training history, every time the pigeon pecked the button, it will have received a small amount of bird seed as a reinforcer. So, whenever the bird is hungry, it will peck the button to receive food. However, if the button were to be turned off, the hungry pigeon will first try pecking the button just as it has in the past. When no food is forthcoming, the bird will likely try again … and again, and again. After a period of frantic activity, in which their pecking behavior yields no result, the pigeon’s pecking will decrease in frequency.

Another excerpt explaining the potential benefits of such a behavior:

The evolutionary advantage of this extinction burst is clear. In a natural environment, an animal that persists in a learned behavior, despite not resulting in immediate reinforcement, might still have a chance of producing reinforcing consequences if the animal tries again. This animal would be at an advantage over another animal that gives up too easily.

Related Solutions

How do I reset a lost administrative password?

By default the first user's account is an administrative account, so if the UI is prompting you for a password it's probably that person's user password. If the user doesn't remember their password you need to reset it. To do this you need to boot into recovery...

How can I use environment variables in Nginx.conf

From the official Nginx docker file: Using environment variables in nginx configuration: Out-of-the-box, Nginx doesn't support using environment variables inside most configuration blocks. But envsubst may be used as a workaround if you need to generate your...

Difference between .bashrc and .bash_profile

Traditionally, when you log into a Unix system, the system would start one program for you. That program is a shell, i.e., a program designed to start other programs. It's a command line shell: you start another program by typing its name. The default shell, a...

Custom query with Castle ActiveRecord

In this case what you want is HqlBasedQuery. Your query will be a projection, so what you'll get back will be an ArrayList of tuples containing the results (the content of each element of the ArrayList will depend on the query, but for more than one value will...

What is the “You have new mail” message in Linux/UNIX?

Where is this mail? It's likely to be in the spool file: /var/mail/$USER or /var/spool/mail/$USER are the most common locations on Linux and BSD. (Other locations are possible – check if $MAIL is set – but by default, the system only informs you about...

How can I find the implementations of Linux kernel system calls?

System calls aren't handled like regular function calls. It takes special code to make the transition from user space to kernel space, basically a bit of inline assembly code injected into your program at the call site. The kernel side code that "catches" the...

Is a composite index also good for queries on the first field?

It certainly is. We discussed that in great detail under this related question: Working of indexes in PostgreSQL Space is allocated in multiples of MAXALIGN, which is typically 8 bytes on a 64-bit OS or (much less common) 4 bytes on a 32-bit OS. If you are not...

Explaining computational complexity theory

Hoooo, doctoral comp flashback. Okay, here goes. We start with the idea of a decision problem, a problem for which an algorithm can always answer "yes" or "no." We also need the idea of two models of computer (Turing machine, really): deterministic and...

Building a multi-level menu for umbraco

First off, no need pass the a parent parameter around. The context will transport this information. Here is the XSL stylesheet that should solve your problem: <!-- update this variable on how deep your menu should be --> <xsl:variable...

How to generate a random string?

My favorite way to do it is by using /dev/urandom together with tr to delete unwanted characters. For instance, to get only digits and letters: tr -dc A-Za-z0-9 </dev/urandom | head -c 13 ; echo '' Alternatively, to include more characters from the OWASP...

How to copy a file from a remote server to a local machine?

The syntax for scp is: If you are on the computer from which you want to send file to a remote computer: scp /file/to/send username@remote:/where/to/put Here the remote can be a FQDN or an IP address. On the other hand if you are on the computer wanting to...

What is the difference between curl and wget?

The main differences are: wget's major strong side compared to curl is its ability to download recursively. wget is command line only. There's no lib or anything, but curl's features are powered by libcurl. curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP,...

Using ‘sed’ to find and replace [duplicate]

sed is the stream editor, in that you can use | (pipe) to send standard streams (STDIN and STDOUT specifically) through sed and alter them programmatically on the fly, making it a handy tool in the Unix philosophy tradition; but can edit files directly, too,...

How do I loop through only directories in bash?

You can specify a slash at the end to match only directories: for d in */ ; do echo "$d" done If you want to exclude symlinks, use a test to continue the loop if the current entry is a link. You need to remove the trailing slash from the name in order for -L to...

How to clear journalctl

The self maintenance method is to vacuum the logs by size or time. Retain only the past two days: journalctl --vacuum-time=2d Retain only the past 500 MB: journalctl --vacuum-size=500M man journalctl for more information. You don't typically clear the journal...

How can I run a command which will survive terminal close?

One of the following 2 should work: $ nohup redshift & or $ redshift & $ disown See the following for a bit more information on how this works: man nohup help disown Difference between nohup, disown and & (be sure to read the comments too) If your...