My friend Maaike Brinkhof recently wrote a post called “They will not break me.” Her point, in a nutshell: the more they push her to offload her work to an LLM, the more she grabs pen and paper, takes her time to think, and does her work slowly and thoroughly. And it finally kicked me into writing this piece that’s been bouncing around in my head for a while.
The best developers I know are lazy. Not the “I’ll do it tomorrow” kind of lazy. The “I’ll spend four hours writing a script so I never have to do this ten-minute task again” kind of lazy. That’s productive laziness. Being that kind of lazy can be extremely arduous. Still, that’s beautiful.
But there’s another kind of laziness creeping in, and it’s not beautiful at all.
You know those cleaning products on TV? The ones that promise you can just spritz a surface, make a swift wipe, and the stain vanishes. No scrubbing, no effort, just spray and walk away. Sounds amazing, right? Except that you actually try it, and the stain is still there. Grinning at you. Because it turns out, most stains need friction. They need you to bring the scrubs and brushes, get on your knees and start scrubbing. The product helps, sure. Because they put something in against everything. But the elbow grease does the actual work.
Nobody wants to hear that. We want the spritz. We want the magic. We want the easy route.
And now, enter AI.
AI is the ultimate “just spritz it” promise. Need to understand a complex codebase? Ask the AI. Need to write a test strategy? Let the AI draft it. Need to debug something? Paste it in and get your answer. And honestly, it works. You get results. Sometimes surprisingly good results.
But here’s the thing. When the cleaning product does the work for you, you never learn how to actually clean. You don’t understand why some stains need acid and others need alkaline. You don’t build the intuition for which surface can handle abrasion and which can’t. You just spritz and hope. You fully rely on a tool, and when it stops helping you don’t know what to do anymore.
The same is happening with AI and thinking. People are offloading the hard parts, the painful parts, the parts where you sit with a problem and struggle until something clicks. And that struggle? That friction? That’s where the learning happens.
I’m not saying AI is bad. I use it myself, regularly. It’s a good tool. A very versatile tool in my tool box. Like a really good cleaning product. But a tool works best in the hands of someone who understands the craft underneath. If you’ve spent years debugging, writing tests, understanding systems, then AI amplifies your ability. It takes away the tedious parts so you can focus on the interesting ones. That’s the good kind of lazy. That’s automation.
But if you skip the learning, if you let AI do the thinking from the start, you end up in a strange place. You can get things done. Your output looks fine. Maybe even impressive. And sometimes, getting it done is what counts. I won’t deny that. Ship the feature, fix the bug, move on.
But for the overall picture? It should not be enough.
Because sooner or later, you’ll hit a situation where the AI gives you something that looks right but isn’t. And you won’t know. You won’t have the instinct to say “wait, that doesn’t smell right.” You won’t have the scar tissue from the times you tried the wrong approach and learned from it. You’ll trust the spritz because you never learned to scrub.
Let me put it differently. Friction is not a bug. Friction is the mechanism by which we build understanding. Every shortcut you take through a problem is a piece of understanding you didn’t build. And understanding compounds. The person who struggled through debugging for years sees patterns that the person who always asked AI simply cannot see.
My friend Stu Crocker once said something that stuck with me deeply: “Quality is the absence of unnecessary friction.” I love that and made it my mantra. But the key word is “unnecessary.” Not all friction is bad. Some friction is the price of admission. It’s on us to learn to tell the difference between the friction we should eliminate and the friction we need to push through. No pain, no gain, as they say. And right now, too many people are removing all the friction, including the kind that makes them grow.
So here’s my take. Use AI. Be lazy in the smart way. Automate the repetitive garbage. But when it comes to understanding how things work, to building your mental models, to developing the instinct that separates someone who gets things done from someone who truly knows what they’re doing, embrace the friction. Get on your knees and scrub.
The stain won’t remove itself. And neither will ignorance.





