Just as dirt collects in crevices, buffers collect in the interfaces between systems. It is their natural home, and life would not work without them. I have become fascinated by buffers. I see them everywhere I look. They cannot be escaped.
What is a buffer? It is a holding space between two systems, sometimes in space, sometimes in time, allowing the objects or information from one system to await the next system. The pages of this book are a buffer, holding thoughts and ideas as printed words, awaiting the time that a reader peruses them. Waiting rooms are buffers, as are memory systems, holding the information generated by one system until the next can make use of it.
Whenever two systems must interact, unless every event of one is perfectly synchronized with the events of the other, one system is going to have to wait. If the receiving system is ready first, it must delay, waiting for something to happen. If it is ready last, then if earlier arriving events are not to be lost, there must be a memory system to hold them. These memory systems have a variety of names depending upon the domain: memories, queues, buffers, inventory, waiting rooms, stock, and even books on a bookshelf (awaiting readers), food in the pantry (awaiting cooks and eaters), and any items that are stockpiled, awaiting use.
Problems arise at interface, any interface, be it person and machine, person and person, or organizational unit and organizational unit. Any place where two different entities interact is an interface, and this is where confusions arise, where conflicting assumptions are born and nourished, where synchronization difficulties proliferate as queues form and mismatched entities struggle to engage.
To the analyst, such as me, interfaces are where the fun lies. Interfaces between people, people and machines, machines and machines, people and organizations. Anytime one system or set of activities abuts another, there must be an interface. Interfaces are where problems arise, where miscommunications and conflicting assumptions collide. Mismatched anythingschedules, communication protocols, cultures, conventions, impedances, coding schemes, nomenclature, proceduresis a designer's heaven and the practitioner's hell. And it is where I prefer to be.
In the brain, queues manifest as memory systems, holding information as it passes from one set of processing units to another. Memory systems must therefore reside at every interface, although they may not be recognized as such. Anything that maintains a trace over time is a memory system, so even the red mark on skin after a scratch is a memory system of sorts, even if the role it plays is nonfunctional. Inside the brain, however, visual and auditory short-term memory systems coexist with short- and long-term memory systems. All perceptual systems must have memory structures, all motor control systems, all things that interact. If perception or thoughts take place at different levels of processing, then memory systems must handle the problems of synchronizing the events. Hence the proliferation of human memory systems, with new ones seemingly discovered every year: short term, working, semantic, procedural, declarative, implicit, explicit, and what have you. There must be equivalents in the motor system, maintaining short- and long-term memories of muscle actions, limb positions, and control signals.
In services, queues are lines of people waiting to be served, sometimes orderly, sometimes unruly, sometimes sitting patiently in waiting rooms. In the hospital, it is people in waiting rooms, patients staying in recovery rooms or intensive-care wards beyond the time required while awaiting an empty room, or even patients in beds lined up in the halls. In the factory, queues are called inventory, sometimes neatly stacked in warehouses, sometimes piled up in front of machines or assembly line, waiting their turn. Each worker requires their own queue of parts, and to the factory operations expert, queuesinventoryis something to be minimized, for any part in a queue is considered idle investment.
Buffer hunting is an engaging sport. You will find them all over, even in the most unexpected places. Once your mind has been tuned to the concept, you cannot escape them. In manufacturing operations, inventory is considered waste, and the modern trend toward "pull" systems and "lean manufacturing" is an attempt to eliminate, or at least reduce, the cost of inventories of material paid for but unused, stacked up in warehouses or factory floors awaiting its turn. The goal of pull systems is to minimize inventory, for as soon as an item is used, it "pulls" the next one into the waiting area. It doesn't take much thought to recognize that this is very difficult to do perfectly, but the philosophy allows dramatic reduction in inventory.
Mismatched anythingschedules, communication protocols, cultures, conventions, impedances, coding schemes, nomenclature, proceduresis a designer's heaven and the practitioner's hell. And it is where I prefer to be.
We can see buffers in operation almost everywhere. For example, when I walk into a dining room and see the food waiting to be dispersed to the guests, these are inventories of food, buffers. Even when eating from a plate heaped with food, the food not yet in the mouth is inventory, a buffer that makes it easy to select from the preferred orderings at the eater's own pace.
I once experienced an inventory-free eating place: completely pull-driven. I was at an expensive tempura restaurant in Japan, seated directly in front of the chef. The chef would ready a tempura piece of fish, vegetable, whatever, and carefully watch me. Each piece was made to order, fried and placed on my plate precisely when I was ready to lift it to my mouth. But even here, there were inventories: food already prepared and coated with tempura mix, hot oil awaiting the introduction of the next food morsel, a plate to hold the food, even if only for a few seconds, and, for that matter, an inventory of eaters. The eight of us sitting in front of the chef constituted an inventory of eaters, where the chef continually watched to see which diner was ready for the next mouthful. You can see why such a restaurant would have to be expensive.
Interaction design is about interfaces, which means it is about synchronizing the events of different systems, about memories, buffers, queue, and waiting rooms. Waiting is an unavoidable component of interfaces, an unavoidable part of life.
Donald A. Norman
Nielsen Norman Group and Northwestern University
About the Author
Don Norman wears many hats, including cofounder of the Nielsen Norman Group and director of a dual-degree MBA-plus engineering program in design and operations at Northwestern University, a curriculum devoted to decreasing inventories and queues. His latest book is The Design of Future Things. He lives at www.jnd.org.
©2008 ACM 1072-5220/08/0500 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2008 ACM, Inc.