What are computer programs for?
Computer programs are to help humans to perform different tasks. This works for every type of programs including websites or apps on mobile phones. It’s the user who’s doing something; software only helps.
Using the app is only one step in his way. For instance, she may read a website when she’s looking for some information; or she may use a routing app to figure out how to reach a destination. But she may also be talking with someone else, or even be in a hurry. Therefore, the user is not interested in the app by itself. He only wants to get some output from it, to achieve the actual larger goal he’s pursuing. Nobody is interested in using apps. People use apps to get something. Even with games: people play to have fun, and to fill a form to register is seldom fun even if this is the price to play a game. Using an app makes only sense in the context of the user’s flow of action.
The user is doing something **beyond** using the app. So the user has a plan. He intends to do something and he wants to do it right now. He may even be in a hurry! So it’s a bad idea to force him or her to do something else. Actually, it’s a pretty terrible one. Let’s think about some cases.
If the user wants to quickly note some information on the go, a suggestion to update the app may be seen as an obstacle. And a delay caused by some unrequested data format update may be seen as a huge obstacle. The user may be writing something important just while some identification dialog pops up and then not only he cannot jot down what he wants, but he accidentally would have removed that password he wrote months ago and cannot remember.
In scenarios like these, the app may ruin the user experience. Programmers cannot fully figure out the user context, so **deciding when it’s a suitable time to take command of the application is highly risky**.
The usual annoyances include:
– To require to enter an id and even a password.
– To pop up suggestions for social sharing.
– to lead to a form to enter some information.
– To promote other products or services.
All things the user **may** be interested **after** the program has delivered the output he’s supposed to do.
Thus, all these goals should be achieved by displaying notices _the user may choose to accept_.
Removing command from the user will lead him to experience frustration. He may even not understand how to _properly_ use the program. And will unlikely push him to rate high the app in the market. Quite the opposite of the developers’ goals.
These are my thoughts. I invite you to comment on them if you wish.