You spend hours on a screen.
Tweaking margins. Fixing the flow. Optimizing what was not broken.
The user opens the app, does what they came to do, and closes.
They did not notice.
Good.
The Interface Is Not For You
Because the interface you are building is not for you.
You already know it.
You know where everything is.
You coded every pixel.
He arrives from nowhere.
Battery at 12%.
Network barely holding.
His whole day behind him.
And if it does not work in three seconds, he is gone.
No explanation.
No bug report.
No mercy.
You cannot blame him.
He did not ask you to build this.
That was your call.
Two Bad Extremes
Either you build for yourself,
and spend your life explaining why it is "actually good."
Or you build for him,
and your technical choices stay between you and your editor.
There is a third path.
Narrow, but real.
Build something you care about that also works for him.
That overlap is small.
But when you land on it, you feel it.
The Real Difficulty
The hardest thing about design is accepting that your intuition is biased.
You use your product differently from everyone else.
You know what is going to happen.
You built the mental model before the interface even existed.
The user arrives with nothing.
Ignoring that is just protecting your ego.
Drowning in feedback is just avoiding a position.
The real work is having a conviction about what you build, and testing whether it holds against someone who does not look like you.
The user does their thing.
You do yours.
Design is the negotiation between the two.