Software that affords its user total control of its tasks and interactions is often thought to provide an ideal user experience. After all, so goes the rationale, if I’m allowed to do anything I want unimpeded by the system, I should be satisfied by the experience.
Joel Spolsky of Fog Creek Software recently claimed on his blog that “when people are successful at controlling their environment they become happier, and when they can’t control their environment, they get grumpy”. This can certainly be true. But does this mean we, as experience designers, have to concede control to the user to provide a favorable experience?
Let’s take a look away from the glow of the laptops and monitors and go outside for an appropriate, though perhaps seemlingly reaching, example. As an avid golfer, I’ve played a number of courses where the layout of the course is prohibitive to walking. As a result, I’m required to use a golf cart, many of which are equipped with global positioning system software.
The GPS system often features scrolling sports scores, the club house’s menu with one-touch ordering, the ability to summon the on-course beverage cart, and of course the layout of the particular hole we’re playing, complete with multiple views of the fairway, green, and so on (the blog post discussing these GPS golf interfaces is for another day).

While these features are a great amenity to the experience, it also allows the pro shop to monitor exactly where I am on the course and to confirm I’m keeping up with the pace of play. The software also regulates where I can drive on the course, either to protect its property (by forbidding the cart to drive onto greens or into bunkers) or to protect me (by limiting the speed of the cart, particularly on steep slopes).
In short, though I feel like I can drive the cart anywhere and as fast as I want, the software system is actually well in control of the environment but offers me an implied perception of control.
Such a paradigm of perceived control works well in the software space as well.
When designing software, the ideal experience does not provide total control by the user, but a perception of control by offering relevant, context-aware tasks and content to the user.
For instance, many online shopping cart and registration process flows remove the site-wide navigation to limit distraction and to focus the user’s attention on the imperative task.
From the business’s perspective, regulating what users can and cannot do can protect users from themselves and prioritize important actions or content.
See the screenshot from the familiar Amazon.com checkout experience as an example of limited navigation. The user cannot begin browsing for another book here and risk abandoning the cart. Likewise, the user cannot undo any information that’s previously been submitted which could confuse and aggravate the user.

In other cases, an adaptive interface may be instrumental in providing users a feeling of control. After all, if a fledgling investor just opened an account with $1,000 in a money market fund and identified himself as a novice investor (required during brokerage registration), there may not be a strong need to offer foreign currency exchange research as a primary option. Of course, such links to currency exchanges are available, but not as prominent as more common tasks based on the persona model of a novice investor.
And while much of Spolsky’s article really cites the benefits of system feedback and not user control, there are a few strong examples that outline how we can design software that provides this perceived control.
For example, Spolsky discusses how implementing AJAX allows his software’s users to manipulate table columns and employ keyboard shortcuts. Indeed, the ability to drag or hide table columns or send keyboard commands to the system can certainly instill a feeling of control in a user. If these features were designed to be available after the user was familiar with the system then that sense of control should be heightened, as the user will have developed his confidence in his skills and mastery of the system. Immediately providing these features risk burdening the user with distracting glitz.
So while it’s certainly true users may say that want full control of their software, the systems that offer a perception of control while monitoring how its users interact with it will have a sturdier foundation with which design a better experience.
