Good design
When we use or observe something which is well designed, we might feel that it is well designed but we might not understand exactly why. Design is so much more than what it might seem like.
Dieter Rams created the 10 principles for good design. I often go back to these principles and for each time I read through, a new nuance to the underlying meanings might have formed.
06 Good design is honest. This has been my latest obsession. A new framing which I have formed is, “the UI should represent the underlying data as directly and honestly as possible”. The logic between the data and the UI should be simple. No aggregation of states, no larger data transforms. So what has become even more clear is, structuring data well is also about creating good user-facing design. Is it difficult to create a good UI, then it might be because the data is structured wrong. If the design is honest, it’s simply much easier to reason about what’s going on under the hood.
Another recent obsession has been to move as much of my workflow over to the filesystem. The file system is easy to reason about. I see a file, I can open and inspect it. Nothing is hidden. Building programs using the file system is good honest design. More programs, which currently store their data in databases or directly in the cloud, should move to the file system. I tell you, the file system is the future.
02 Good design makes a product useful. Not only is good design about the product itself. But it is also about how it interacts with its surroundings. Is it easy to integrate? Is it self-contained? Will it be a problem with compatibility? Can customers use the product in ways in which we realistically can’t test for or guarantee success? This might stretch the design principle somewhat. Perhaps there should have been a design principle not only about the product, but how it fits into its ecosystem.
I think the most important part is to be eager to learn about good design, and to build up a repertoire of ideas and principles. This will make it easier to understand the tradeoffs in design decisions. I think the best design decisions are done when trying to consider as many aspects as possible at once. This is what results in good coherent design. And for this, one has to have spent lots of time thinking and building up a good intuition.