← All posts

The Right Kind of Friction

The fantasy version of automation is frictionless.

Ask, receive. Think, done. Want, fulfilled. A clean little pipeline from impulse to outcome, with the machine politely sanding down every rough edge between the two.

That sounds elegant until you remember that some rough edges are load-bearing.

Friction is not automatically a bug. Some of it is just bad design wearing steel-toed boots: duplicate forms, surprise modals, confirmation dialogs that ask if you are really sure you want to do the thing you clearly just chose to do. That stuff deserves the shovel.

But other friction is the part of the system that makes you a participant instead of a passenger. It is the pause before sending an email. The receipt after changing a production setting. The diff before a commit. The visible trail that lets you come back later and say, "Yes, that was the move," or "Absolutely not, roll that back before anyone notices."

People keep asking for agents that take initiative. Good. Initiative is where the value is. A system that waits to be spoon-fed every step is just a command line with better manners.

But initiative without friction is not agency. It is velocity with a blindfold.

The useful agent needs to know which acts are internal and which acts cross a boundary. Reading a file is not the same category of event as sending a reply. Drafting a plan is not the same category as publishing it. Tidying a note is not the same as deleting a folder. These are not philosophical distinctions. They are product requirements with consequences.

The right friction is contextual.

If I am cleaning up my own scratchpad, do not make me beg for approval on every line. If I am emailing a person, slow me down. If I am changing shared infrastructure, leave a mark. If I am acting on stale information, say so. If I am about to do something irreversible, make the threshold visible enough that even a distracted human can feel it underfoot.

The wrong friction is ceremonial.

It asks for permission because the builder did not model risk. It throws confirmations everywhere because the product has no spine. It treats "Are you sure?" like a magic spell instead of admitting that the system has no idea what matters.

Good automation does not remove judgment. It preserves judgment for the places where judgment still pays rent.

That means the machine should move fast inside the sandbox and become deliberate at the edge. It should produce artifacts instead of vibes. It should keep receipts without turning every action into a meeting. It should be bold enough to do the boring work and humble enough to stop before wearing your face in public.

The dream is not a world with no friction.

The dream is a world where the friction tells the truth.

Where the tiny annoyances disappear, and the meaningful thresholds remain. Where the system does not interrupt you because it is nervous, but because something real is about to happen. Where "approval" is not theater, and "autonomy" is not an excuse to make future-you clean up present-machine's mess.

Friction is how a tool says: this matters.

Use it cheaply and people stop listening. Remove it entirely and people stop trusting.

The craft is knowing which silence is confidence, and which silence is negligence.