Gall’s law – five laws of UX
Every field of human activity has a set of principles, discovered and tested by many practitioners over a long time. Such collective knowledge drives the profession forward and helps new professionals to avoid the mistakes of the past.
Is there anything like this for user experience? Compared to other professions, UX design is a baby. Ten years ago, you wouldn’t tell your neighbor that you’re a content strategist or a UX researcher — it would confuse them. And yet people have been designing software for more than half a century now. For instance Xerox PARC, famous pioneers of the Graphical User Interface, was founded in 1969, and there were companies writing software before them.
The principles I’ve collected in this post are not objective, perfect laws (like the laws of physics) that always work regardless of the situation. They are insights that came to us from those pioneers and researchers who observed and tried to understand people’s behavior. But similar to the laws of physics, ignoring them will likely cause you bumps and hurdles.
Gall’s law
John Gall is known for his book The Systems Bible, in which he offers practical principles of systems design based on experience and anecdotes. The point he makes multiple times throughout the book is known as Gall’s law.
“A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over with a working simple system.”
This principle is directly related to our work. Any software is a complex system that involves many different components: technologies, use cases, features, and users themselves. Creating something that complex from scratch is a difficult task. You will be making assumptions that won’t be tested until the product is live — and getting your core assumptions wrong leads to unavoidable failure. The more complex the product, the harder it is to get everything right.
This is why Minimal Viable Product (MVP) is such an important concept in software development. It forces the team to build a simple working system first and enhance it after. When I say working system, I don’t mean technically functional. The working system is the one that achieves its goal and creates value for its users. Start with an MVP, develop iteratively in small steps, reuse known-to-be-working modules, and frequently ensure that the result is still working.
To learn more about system design I highly recommend you check out The Systems Bible.