There’s a parable that goes like this:
A guy, walking past a street merchant,saw on the cart a sign that reads,
“Fresh Fish Sold Here Today”.
Guy: I see you have quite some fish there.
Merchant: Yes, they are fresh from the dock early this morning. Would you like to buy some?
Guy: No, thank you, I’m just walking by, but I have some advice on your sign.
Merchant: Please share. I’d love to make it better.
Guy: Well, you don’t need to say ‘sold’. You’re not giving them away, are you?
Merchant: No, you’re right. (Erases the word).
Guy: Actually, I don’t think you are selling it tomorrow, so I’d erase ‘today’, too.
Merchant: That’s true. (Erases).
Guy: While you’re at it, I’d also erase ‘here’ since you’re not selling it anywhere else, are you?
Merchant: Err… right. (Erases that too).
Guy: You wouldn’t sell non-fresh fish, either, so ‘fresh’ has to go, too.
Merchant: Ok. (Erases).
Guy: Well, frankly, anyone can see that you’re selling fish, or are they fruit?
Merchant: (Erases). But wait…
When I first read this story (in a children’s picture book), it made an impression on me. But as I grew older the story faded into memory, the way you think you’ve forgotten your childhood nursery rhymes.
Fast forward many years and when I took my first design class, my teacher said,
“No elements—no line, not even a single dot—should be in your design without reasons for their existence.”
In a rather comical way, it all came back. And ever since then, the story’s been close to my heart. Whether I design UI, code, write, decorate the house, I think of
Fresh Fish Sold Here Today.
I recommend it.
P.S. This blog is not meant to be a demonstration of the story’s lesson by any stretch of the imagination.