A forcing function is a constraint where the user "is forced" to complete a task based on a limited, paired down set of features or controls.
Forcing functions help streamline, simplify or minimize how a user interacts with a design. Designers benefit from this interaction design technique by reducing navigation redundancy, task effort and the complexity caused by "feature frenzy" (see my previous article on feature creep).
Not all forcing functions are based on good design decisions. Successful designs that make use of the forcing function interaction design technique are based on an empirical understanding of user default behavior, task expectations, error and failure analysis and context of use observations.
When should you use "forcing functions" in your design?
When you want to:
- Constrain a user interaction
- Speed up or re-direct a task
- Limit an interaction
- Eliminate confusion
- Simplify a design
- Protect users from danger or hazards
When forcing functions go wrong
Feature-forcing (making users interact with features they don't want) tends to be the end result of inappropriate use of the forcing-function technique. A forcing function is a disciplined use of force, the way a mother would give her child what they need, not what they want.
In general, products that lack good usability are characterized by designs where users are more error-prone, where defaults are inexact, where layout or instinctive behaviors don't feel right. In general designs that include error handling and/or error recovery as a component of the user experience, are lacking a forcing-function. This isn't to say error-handling is bad, it's just that many times error prevention should be the focus not error recovery.
Making a user do something an elegant way is far better than making a user do something a mediocre way and then offering them support as they fail and recover from the error.
The two extremes of forcing functions are too much force, and too little force. An example of too much force, is like making a user interact with implicit rules, hidden actions or metaphors that are unnatural. An example of too little force is making a user 'hunt around' to make something important happen (also a potentially inappropriate use of the progressive disclosure interaction design technique). DVD remote controls are a hideous example of "design minus forcing functions". Too many options get you in to trouble quickly.
Getting the right balance of force is important. Force can be a powerful design tool, but it can also be oppressive: poor user adoption is often the result of force that is difficult for the end user to get used to. When designing a forcing-function, there needs to be a good reason (user-validated) to justify the use of the technique.
Why do we use forcing functions?
Forcing functions are the mothering instinct of user-centered design. A forcing function should feel natural and transparent to the user. Users should never question why there is no "choice" in completing their task. The "dead-end" or directive action required should seem natural and protective either by way of the product experience or by way of the interface that limits all other options in that momentary task.
A razor blade company, after watching women shave their legs in the shower (wearing swimming costumes), realized that a design flaw would potentially cause the razor to slip, leading to dangerous cuts (and lawsuits). The razor handle and blade were constrained for wet hand use to prevent cuts or mistakes holding the razor.
An automotive manufacturer, after observing truck drivers driving on the highway, realized that an incoming email, while driving--could only display two sentences of text, before resulting in driver distraction and an accident. The messaging system was constrained to show no more than a short two sentence summary of the message- the rest of the message available when the vehicle was stopped.
The forcing function allows a design to follow user intuitions based on their expectations, derived from studying their behavior, environment and context of use.
However, designers should take precautions against imposing this powerful interaction design technique without first understanding the user task flow, context of use and error scenarios involved.
Frank Spillers, MS