It's Impossible to Design a Watch that Only Tells Time

Dec 5, 2021

It's impossible to design a watch that only tells time. Every detail (or lack thereof) tells a story of minimalism, luxury, practicality, or something else.

I first read about this take on design from Don Norman in Emotional Design (you might know Norman from his more popular book, The Design of Everyday Things).

I mostly think about this in context of software, where there are objectively right and wrong ways to do things. Why software design is so important is that there are many ways to objectively perform a task. while loops can be expressed as for loops, if statements can be encoded as switch statements, and arrays can be sorted in different _O(n log n)_ ways.

Software correctness can be learned from a textbook, but software design usually takes practice. Like design proper, it's a moving target – different languages idioms go in and out of style. New architectures favor different design and code organization.