When a user interface that’s intended for human consumption turns out reflecting too much of the design and language of its internal system, it’s quite likely to confuse the people who use it. At the same time, if data doesn’t conform to the structure its intended for, it will likely confuse the machines that need to use it, so we also can’t ignore system requirements.
Jon Postel, an eminent computer scientist, published an early specification in 1980 to explain the Transmission Control Protocol, which today remains the fundamental communication mechanism of the Internet. The Robustness Principle is as follows:
Be conservative in what you do, and be liberal in what you accept from others. Although it’s often applied just to low-level technical protocols, such as TCP, this golden rule of computing also has a broad application in the field of user experience.
In order to create a positive experience, it’s necessary to give applications the look of a human face that appears liberal: empathetic and flexible, plus tolerant of any action that the user might take. But in order for a system to be truly robust, its machine face must treat user input as if it were malicious by default, validating the format of all it sends to its downstream systems, at the same time taking great care with the data it handles.
Building a system that embraces both of these radically different sets of constraints is difficult. At a high level, a robust web application is one that:
- Accepts users input in a variety of forms, based initially on the needs and preferences of humans rather than machines.
- Accepts responsibility for translating that human input so it meets the requirements of computer systems.
- Defines boundaries for what input is reasonable in a particular context.
- Provides clear user feedback, especially when the translated input goes beyond the defined boundaries.
Whether it’s just a simple form or a sophisticated application, any time that we ask users for input, their expectations are almost always going to be different from the computer’s. The reason is that our brains are not made out of silicon. But by thinking in terms of the Robustness Principle, we can bridge the gap between human and machine in a number of different circumstances.