20 May 2023
What is good design?
A well designed thing is simple, it is maintainable, and it has quality.
Everything should be made as simple as possible, but no simpler.
There are two sides of simplicity: simplicity of features and simplicity of implementation.
A design’s features are its capabilities or applications. Simplicity of features doesn’t mean that a thing should have as few features as possible. In fact, the opposite is true. The more features, the better, as long as some properties hold. Features should be orthogonal, which means that no one feature has unintentional interference with any other. They should be discoverable, which means that it’s easy to determine what the features are. They should also be intuitive, which means that it’s easy to understand how the features work.
A design’s implementation is about the technologies and mechanisms used to realize its features. A well designed thing should have the simplest implementation possible.
As an example, we can classify different kinds of machines based on how their features are implemented. Some classes are listed below in increasing order of complexity.
Basic: Machines that don’t have moving parts, e.g. mugs, hammers, and screwdrivers.
Mechanical: Machines with moving parts, e.g. mechanical pencils, manual can openers, and bicycles.
Powered: Mechanical machines with a power source that isn’t the user, e.g. cars and steam ships.
Electronic: Machines that contain electronic circuits, e.g. transistor radios and record players.
Programmable: Electronic machines that contain programmable computers, e.g. nearly every contemporary consumer electronic device.
Networked: Programmable machines that can communicate with one another, e.g. smartphones.
Statistical: Programmable machines that adjust their own programs based on training data, e.g. machine-learning systems for image classification or language processing.
Each class adds a significant number of components and dependencies that can fail. It also makes the machine much more difficult to understand and maintain. A machine should then be implemented in the simplest class that allows it to perform well given its specified features and context.
Consider the toothbrush, a machine whose primary feature is to clean teeth. Electronic toothbrushes make sense in most cases. The increased complexity and dependence on electricity enable them to perform much better than basic toothbrushes. But it may not be worth making a toothbrush programmable or networked. And if you are camping or traveling without easy access to electricity, you might prefer a basic toothbrush to using an electric one manually.
Similarly, in many scenarios electric vehicles have clear benefits over those powered by internal combustion engines. But should electric vehicles also be networked and statistical? Should even trivial components of a vehicle be made programmable? The benefits are, in most cases, not worth the additional complexity.
He said that most men were in their lives like the carpenter whose work went so slowly for the dullness of his tools that he had not time to sharpen them.
Cormac McCarthy, The Crossing
We are just like a man who, needing fire, should go and fetch some at his neighbor’s house, and, having found a fine big fire there, should stop there and warm himself, forgetting to carry any back home.
Michel de Montaigne, Essays
A maintainable design is one that can be repaired and modified easily.
If you’ve ever felt anxious about lending something to a friend, it’s likely, excepting fear of loss, because you wouldn’t be able to fix it if it were damaged. Too many things in today’s world are difficult or impossible to repair, which makes us stressed. It also encourages overconsumption. Things that are designed well can be fixed and tuned up, which increases their useful lifetime and bucks this contemporary trend.
Well designed things can also be modified to suit changing contexts and requirements. They make us more capable and facilitate deeper connections with our surroundings.
Repair and modification should be feasible with as little specialist knowledge, skill, and equipment as possible.
But if you can’t say what Quality is, how do you know what it is, or how do you know that it even exists? If no one knows what it is, then for all practical purposes it doesn’t exist at all. But for all practical purposes it really does exist.
Robert M. Pirsig, Zen and the Art of Motorcycle Maintenance
Quality is about whether a thing has properties that make it a joy to use, experience, or contemplate. It is the most important aspect of good design, but it’s difficult to define concretely. Every good design is simple and maintainable in largely the same way. What quality means, however, can vary greatly. Depending on the thing, relevant properties include effectiveness, efficiency, durability, sustainability, creativity, beauty, respect, humanity, and narrative.