Most UX advice reduces to a single instruction: remove friction. Fewer clicks, fewer fields, fewer confirmations. It's good advice often enough that it's easy to forget it's a heuristic, not a law โ and heuristics have edges. Right past that edge is the moment someone deletes a production database because the confirmation step got optimized away in the name of a smoother flow.
The useful distinction is between accidental friction and intentional friction. Accidental friction is a form that doesn't explain why it's asking for your phone number, a button whose label doesn't match what it does, a flow that makes you re-enter data you already gave it. That friction should go. Intentional friction is a pause before an action that's expensive to reverse. That friction is doing its job.
Don Norman's 'The Design of Everyday Things' gives the vocabulary for telling these apart: affordances (what an action actually lets you do) and signifiers (what tells you the action is available and what it will do). Accidental friction usually comes from broken or missing signifiers โ the user can't tell what's about to happen. Intentional friction works because the signifier is clear and the pause is proportional to the stakes.
We learned this the specific way most people do โ by removing a confirmation step from an internal tool to make it feel faster, and watching someone hit an irreversible action a week later because the step that would have stopped them was gone. We put it back. The tool got a click slower and measurably safer, and nobody complained about the extra click, because it only ever appears when it matters.
The rule of thumb we use now: friction should scale with the cost of being wrong. A search box should have none. A destructive, unrecoverable action should have exactly enough to make someone actually read what they're about to do. Anything in between is a judgment call, but it's a call worth making on purpose, instead of defaulting to 'fewer clicks' and hoping nobody tests the edge.