It's Impossible to Design a Watch that Only Tells Time
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
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.