Laziness Is My Superpower!
I've been accused of being lazy more than once in my life. For years, I took it as criticism. Now I wear it as a badge of honor.
The Firewood Incident
When I was young, my dad tasked me with moving firewood from our woodpile to the basement. His method would have been to carry an armload down the stairs, stack it, walk back up, and repeat until done. Instead, I tossed all the wood down the stairwell first, then went down once to stack everything.
My dad was confused. "Why are you doing it that way? You're going to have bark and wood chips all over the bottom of the stairwell."
"I'll sweep it up," I said. "I only want to walk up and down the stairs once."
To me, it made perfect sense. Sweeping up some debris was far less work than dozens of trips up and down those stairs, opening and closing the door each time. Minimize trips. Batch the work. Same result, less effort.
To this day, my wife still questions my "systems" when doing yard work. But they work.
The Brilliant Design
Years later, a good friend accused me of being lazy in my programming. I don't care much for polish. I'd rather call something done than chase perfection.
One day we were reviewing a project I'd written, and he said the architecture was brilliant. I laughed. "It only turned out that way because I was trying to find the simplest possible solution to save myself some coding."
He paused, then grinned. "This is where your laziness is actually a benefit."
From then on, we joked that laziness was my superpower. But the more I thought about it, the more I realized it wasn't really a joke.
The Three Virtues of a Programmer
Larry Wall, the creator of Perl, famously identified the three great virtues of a programmer: laziness, impatience, and hubris.
His definition of laziness isn't about avoiding work. It's about avoiding unnecessary work:
Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful and document what you wrote so you don't have to answer so many questions about it.
This reframing changed how I thought about my own tendencies. What looks like laziness from the outside is actually a relentless drive to eliminate friction, reduce repetition, and find the shortest path to a working solution.
How Laziness Makes Me Better
Here's how this plays out in practice:
I Automate Instead of Document
I would rather spend an hour writing a setup script than maintain a detailed README that will inevitably go stale. The script is the documentation—and it actually works.
When I join a new project, if I can't run a single command to get my development environment working, that's the first thing I fix. Future me (and everyone else on the team) will thank present me.
I Embrace AI Tools
I've jumped into AI-assisted development with both feet. Why? Because I'm lazy. I don't want to write boilerplate. I don't want to look up syntax I've forgotten for the tenth time. I don't want to manually refactor repetitive code.
Tools like Claude Code let me describe what I want and get 80% of the way there in seconds. I still review everything, but the tedious parts are handled. That's not cheating—that's working smart.
I Choose Simple Over Clever
Clever code is fun to write and painful to maintain. Simple code is boring to write and easy to maintain. Since I don't want to spend my future time debugging clever code, I optimize for simplicity.
This often means:
- Fewer abstractions, not more
- Obvious names over short names
- Flat structures over nested ones
- Deleting code instead of commenting it out
The laziest thing you can do is write code that nobody—including future you—needs to think about.
I Say "Done" Before "Perfect"
Perfectionism is the enemy of shipping. I've seen developers spend weeks polishing features that users will never notice while critical bugs go unfixed.
My approach: get it working, get it deployed, get feedback. If it needs polish, the feedback will tell you where. Most of the time, "good enough" really is good enough.
The Right Kind of Lazy
To be clear, there's a wrong kind of lazy too. Skipping tests because you don't feel like writing them? That's not strategic laziness—that's creating future work. Copying and pasting code instead of extracting a function? You're making more work for yourself later.
Strategic laziness is about investing effort now to reduce effort later. It's front-loading the thinking so you can coast on the execution.
Ask yourself: "What's the simplest thing that could possibly work?" Then do that. If it's not enough, iterate. But often, the simple solution is the right solution.
Embrace Your Inner Sloth
If you've ever been called lazy for finding shortcuts, for automating tedious tasks, or for refusing to do things "the hard way" when an easier way exists—congratulations. You might have a superpower too.
The best developers I know share this trait. They're not lazy about results—they're lazy about unnecessary effort. They find the elegant solution not because they're trying to be clever, but because they're trying to do less work.
So the next time someone accuses you of being lazy, say thank you. Then get back to finding the shortest path to done.
Try EnvelopeBudget - Your grandparents' budget for the modern
age
Need a custom website, app, or automation? Let's talk