The Cost of Ignoring UX as an Engineering Team
The bill is real. It just arrives late, under a different name.
Nothing on the screen is neutral. Someone chose all of it, or chose not to.
Put a single button on a screen, say, one that deletes something, and look at how much it has to communicate. Its label has to tell the user what will happen. Its colour has to signal how serious it is. Its position has to say how important it is relative to everything around it. Whether it asks 'are you sure?' says how reversible the action is. And if the button isn't there at all, that absence tells the user the action isn't possible.
That's five decisions, and it's one button. Multiply it across a screen, a flow, a product, and you start to see the truth engineers tend to under-weight: the interface isn't decoration laid over the logic. It is a stack of decisions about what to make easy, what to make hard, and what to make impossible.
The person who mapped this most clearly is Don Norman. His two key ideas are worth holding onto. An affordance is what action an object makes possible, a button can be clicked. A signifier is the cue that tells you so, the button looks clickable. His point: most of design isn't about affordances at all. It's about signifiers. It's about communication.
Good design communicates the purpose and operation of a thing to the person using it. When the design is silent or misleading, the user has to guess, and guessing is where they hesitate, misfire, and blame themselves.
A button that looks disabled but isn't. A link styled like plain text. A primary action that looks identical to the cancel next to it. None of these are bugs. The code runs fine. They're failures of communication, and the user pays for them in split-second confusion that, as Steve Krug put it in Don't Make Me Think, adds up until using the thing feels like work.
The most consequential button is often the one nobody clicks: the default. What's pre-selected, what's toggled on, what value sits in the field before anyone touches it, these decide the experience for the majority who never change them. A good default is an act of care. It's the product saying, I thought about what you probably want, so you don't have to.
This is why 'we'll let the user configure it' is rarely the generous choice it sounds like. Every setting is a decision you've handed back to someone who has less context than you and less time than you think.
So treat the small things as small decisions, because that's what they are. The label, the order, the default, the thing that's greyed out, each one is the product speaking on your behalf to someone you'll never meet. Say it clearly.