The Loading Spinner in Our Brains: Why Developers Procrastinate
Hey everyone, Jamie here.
I’m going to be honest with you. I sat down to write this post about two hours ago.
Since then, I have: made a coffee, adjusted the height of my monitor by 2 millimeters, read the release notes for a PHP version I’m not even using yet, and thoroughly dusted my mechanical keyboard.
It’s ironic, isn’t it? We build systems designed to optimize efficiency, automate workflows, and process data in milliseconds. Yet, as developers, we are often subject to the most inefficient, buggy, and unpredictable operating system of all: the human brain.
Procrastination is the silent killer of productivity in our industry. But lately, I’ve stopped viewing it as a character flaw and started viewing it as a system signal.
It’s Not Laziness, It’s Complexity
When I look at why I’m procrastinating, it’s rarely because I don’t want to work. I love coding. I love building things.
Usually, the procrastination hits hardest when I’m facing a task that is high in ambiguity or high in risk.
Take the legacy monolith I talked about in my recent series. Staring at a 2,000-line file of spaghetti code trying to figure out where to insert a proxy route is terrifying. The cognitive load required just to load that context into my head is immense. My brain sees that mountain and says, “No thanks, let's organize the Downloads folder instead. That’s safe. That has a clear definition of 'done'.”
In photography (my other great love), I feel the same friction. Taking photos is easy; it’s the flow state. But sitting down to edit 500 RAW files? That’s daunting. So I put it off.
We procrastinate to protect ourselves from the discomfort of the unknown.
The Danger of “Productive” Procrastination
The worst kind of procrastination for a developer is the kind that looks like work. This is the “Yak Shaving” trap.
- The IDE Theme: “I can't possibly start this complex API integration until I've found a color scheme that has slightly better contrast on PHP attributes.”
- The Refactor: “I know I need to build the checkout feature, but look at this unrelated helper function! It’s messy! I’ll just clean this up first...”
- The Tooling: “Maybe if I switch from Bash to Zsh and configure a bunch of new aliases, I’ll be 10% faster at typing the code I’m currently avoiding writing.”
We trick ourselves into feeling productive because we are doing something technical. But we aren't moving the needle. We're just spinning our wheels.
How I Trick My Brain Into Starting
Over the years, running my own company and working in various teams, I've developed a few pragmatic strategies to bypass the “loading spinner” in my head.
1. The “Hello World” of the Task
If a task is too big, I won't start it. So, I lower the bar until it’s comically easy.
If the task is “Build the User Dashboard,” that’s too scary. I change the task to: “Create a new blank controller and return 'Hello'.”
That’s it. I can do that in 30 seconds. Once I’ve done that, the friction is gone. I’m in the file. I might as well add the route. Then I might as well fetch the data. Momentum is everything.
2. Isolate the Fear
If I find myself avoiding a task, I stop and ask: “What specifically am I afraid of here?”
Usually, the answer is “I don't know how this library works” or “I'm scared I'll break the production database.” Once I identify the blocker, I can solve that. If I don't know the library, the task becomes “Read the docs for 10 minutes.” If I'm scared of breaking production, the task becomes “Write a test case.”
3. The 10-Minute Rule
I tell myself I only have to work on the thing for 10 minutes. If I want to stop after 10 minutes and go back to staring out the window, I can.
Spoiler alert: I never stop. The hardest part of a rocket launch is the lift-off. Once you're in orbit, it requires very little fuel to keep going.
Forgive Yourself
Finally, it’s important to remember that we aren't machines. Some days, the code just doesn't flow. Some days, the brain fog wins. And that’s okay.
Beating yourself up about procrastination usually just leads to guilt, which leads to stress, which leads to... more procrastination. It’s a vicious loop.
If you’re stuck today, close the laptop. Go for a walk. Switch contexts. The code will still be there tomorrow, and you’ll likely attack it with a fresh perspective.
Now, if you’ll excuse me, I have a “Hello World” controller I need to write.
Cheers,
Jamie C