Chapter 5. Postel’s Law

Be liberal in what you accept, and conservative in what you send.

Overview

Designing good user experiences means designing good human experiences. People don’t behave like machines: their output in inconsistent, error prone, and driven by emotion. We expect the products and services we interact with to intuitively understand us. When things go wrong, blame is too often directed towards the user and not the interface and underlying computer system. The products and services we interact with must account for this to be user-friendly.

At the same time, the products and services designers build must be robust and adaptable to fit the needs of growing scale and complexity. Accounting for the ‘happy path’ in design isn’t an adequate means of defining how a system works. We must also account for what happens when things go unexpectedly. Everything from variable user input and errors to malicious intent should be anticipated and met with an appropriate response.

Postel’s Law, also known as the ‘Robustness Principle’, gives us a guiding principle for designing human-centric experiences that accounts for both scale and complexity. In this chapter, we’ll take a close look at what this means and how designers can leverage it to design products and services that adapt to how people actually are.

Origins

Jon Postel (August 6, 1943 – October 16, 1998) was an American computer scientist who authored an early implementation of the Transmission Control Protocol (TCP), an underlying protocol of the Internet. He recommended that implementations of the protocol follow a general principle of robustness to account for variation found in packets that are sent over the network. In other words, programs which send data, either to other machines or programs on the same machine, should conform to specifications while programs that receive data should be able to accept non-conformant input — as long as the meaning is clear.

Examples

What does it mean to be “liberal in what you accept, and conservative in what you send”? Postel’s principle was primarily a guideline for software, specifically in regards to the transfer of data across computer networks, but it can just as easily be applied to user experience and how we deal with user input and system output.

Let’s start with acceptance, specifically the acceptance of input from users via any input mechanism available and at any form factor. It applies to data entered into a form via mouse and keyboard or perhaps keyboard only, assistive technology, touch and gesture input from mobile users and even voice input in all its variations of language, dialect, and nomenclature. It applies to a screen that can be any size, from a watch interface all the way up to a TV screen. It applies to any screen resolution, network bandwidth, connection strength and any other possible variation.

The second part of this principle is about conservative output, or the parsing of human input into structured data that is accepted by the system. Whether it’s text input in a form, event input from the selection of a button, or voice commands, the system will expect information to be provided to it in a specific format. But conservative output can also be interpreted as the way in which a design responds to user input. This means that the system is adaptable and can gracefully respond to the environment and actions of the person interacting with it.

Take for example the topic of internationalization. The same text string can span different lengths, depending on the language. Many designers account for only their native language, while not accounting for text expansion in other languages that could have a considerable increase in length. English, a very compact language, contains words that can expand up to 300% when translated into a less compact language such as Italian (Figure 5.1). Text orientation can also vary per region of the world: from left-to-right in many western countries to right-to-left and even vertical in others. By designing with these variations in mind, we can account for more robust designs that can adapt to varying text string lengths and text orientations more adaptively.

Figure 5-1. Text expansion from english (left) to Italian (right). (Source: w3.org)

Another example that deals with text is the default font size, which can be customized by the user both on mobile devices and browsers. The purpose of this feature is to give the user control over the default size of text, effectively increasing the size of all text throughout an application and therefore improving it’s accessibility. It can also cause problems in applications that haven’t accounted for the ability of text to increase, specifically how it affects layout and the space available for text.

Alternatively, designs can be more adaptable by accounting for this feature and having a graceful response. Take for example Amazon, which does a great job of responding to font size customization in their website header navigation (Figure 5.3). The design accounts for the possibility of minimum font size customization by organizing the quick links below the search bar by importance and removes the links of lesser importance as the font size increases.

Figure 5-2. Amazon.com adapting to minimum font size customization. (Source: Amazon)

The input that users provide to a system spans a wide spectrum and is variable, therefore we should create systems that liberally accept it to ensure a better user experience. The more we can anticipate and plan for in design, the more user friendly the user experience will be.

Key Takeaways

Be empathetic, flexible, and tolerant to any number of actions the user could possibly take.

Accept variable input from users, translating input to meet the requirements, defining boundaries for input, and providing clear feedback to the user.

Conclusion

Postel’s principle help us bridge the gap between human and machine. By designing a system that can liberally accept variable human input and translate it into a structured, machine-friendly output, we transfer this burden away from users and therefore ensure a more human user experience. Accounting for the not-so-happy path in design, we ensure that the products and services we build are resilient and can adapt to the way we people actually are as opposed to requiring they conform to an underlying database.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.133.141.6