Tesler's Law

Walden Systems Geeks Corner Tutorial Tesler's Law  Rutherford NJ New Jersey NYC New York North Bergen County

Larry Kessler, the father of cut / copy and paste came up with a law that he summarized as "Every application has an inherent amount of irreducible complexity. The only question is: Who will have to deal with it—the user, the application developer, or the platform developer?" This is an important idea in the user interaction with a software application.

A prime example is an email application. It needs a From address, and a To address. Without either of these two items, the email can't be sent. Most email applications will automatically populate the From address. The complexity of entering the from address was addressed by the software application designer. The complexity isn't gone, instead, some of it has been shifted to the software.


With this law, we are not trying to make things simple. A complex situation requires that the solution is also complex. This goes back to Ross Ashby's Requisite Variety principle, "only variety can absorb variety.” The variety is described as the number of possible states of a system. If the problem requires that we need 7 states, then the solution should address it by providing at least 7 states. Tesler's law recommends that we keep this complexity away from the user and absorb it at the programmer's side. This makes the user interaction favorable leading to a positive user experience. We should focus on making life easy for the user.

On the other side, Bruce Tognazzini postulated that when we remove the complexity from the user, the user will try to attempt more complex tasks. The reduction in cognitive load on the operator leads to the user engaging in more ideas for improvements that leads to better and more efficient operator interface. There will be more interest in engaging in the improvement culture, which is at the heart of lean.

Design things so that the concept becomes easy for the user. The conceptual model is the mental model that the user creates when interacting with a designed object. The conceptual model allows the user to understand how the object functions.