Software too often contains interactions that are top-heavy with extra work for the
. Programmers typically focus so intently on the enabling technology that they don't
consider the human actions required to
the technology from a goal-directed
. The result is software that charges its users a tax, or excise, of cognitive and sometimes even physical effort every time it is used.
This chapter focuses on the nature of this excise, and discusses the means by which it can be reduced and even eliminated altogether.
What Is Excise?
When we decide to drive to the office, we must
the garage door, get in, start the motor, back out, and close the garage door before we even begin the forward motion that will take us to our destination. All these actions are in support of the automobile rather than in support of getting to the destination. If we had Star Trek transporters instead, we'd dial up our destination coordinates and appear there instantaneously—no garages, no motors, no traffic lights. Our point is not to complain about the intricacies of driving, but rather to distinguish between two types of actions we take to accomplish our daily
Any large task, such as driving to the office, involves many smaller tasks. Some of these tasks work directly toward achieving the goal; these are tasks like steering down the road toward your office.
, on the other hand, don't contribute directly to reaching the goal, but are necessary to accomplishing it just the same. Such tasks include opening and closing the garage door, starting the engine, and stopping at traffic lights, in addition to
oil and gas in the car and performing periodic maintenance.
is the extra work that satisfies either the needs of our tools or those of outside
as we try to achieve our objectives. The distinction is sometimes hard to see because we get so used to the excise being part of our tasks. Most of us drive so frequently that
the act of opening the garage door from the act of driving towards the destination is difficult. Manipulating the garage door is something we do for the car, not for us, and it doesn't move us towards our destination the way the accelerator pedal and steering wheel do. Stopping at red lights is something imposed on us by our society that, again, doesn't help us achieve our true goal. (In this case, it does help us achieve a
goal of arriving
at our office.)
Software, too, has a pretty clear dividing line between goal-directed tasks and excise tasks. Like automobiles, some software excise tasks are trivial, and performing them is no great hardship. On the other hand, some software excise tasks are as obnoxious as fixing a flat tire. Installation leaps to mind here, as do such excise tasks as configuring networks, making
, and connecting to online services.
The problem with excise tasks is that the effort we expend in doing them doesn't go directly towards accomplishing our goals. Where we can eliminate the need for excise tasks, we make the user more effective and productive and improve the usability of the software. As a software designer, you should become sensitive to the presence of excise and take steps to eradicate it with the same
a doctor would apply to curing an infection.
Eliminating excise makes the user more effective.
There are many such instances of petty excise, particularly in GUIs. Virtually all window management
into this category. Dragging, reshaping, resizing,
, tiling and cascading
qualify as excise actions.