What we’ve discussed so far applies both to games and to your product. However, there are two important differences between them: where tasks come from and who sets the tasks’ difficulties.
When playing a game, the game itself provides the tasks. With your product, the user provides the tasks. I sometimes hear user interface designers say something like:
Games make the player do unnecessary tasks, such as collecting coins. But people have fun playing games. So, it’s probably OK for my application to make the user do unnecessary tasks; they’ll still have fun using my product.
This rationalization seems to offer some justification for overly complicated design. ...