Create systems that allow you to be consistently productive
This article is crossposted from IEEE Spectrum’s careers newsletter. Sign up now to get insider tips, expert advice, and practical strategies, written in partnership with tech career development company Taro and delivered to your inbox for free!
Across a decade working at hypergrowth tech companies like Meta and Pinterest, I constantly struggled with procrastination. I’d be assigned an important project, but I simply couldn’t get myself to get started. The source of my distraction varied—I would constantly check my email, read random documentation, or even scroll through my social feeds. But the result was the same: I felt a deep sense of dread that I was not making progress on the things that mattered.
At the end of the day, time is the only resource that matters. With every minute, you are making a decision about how to spend your life. Most of the ways people spend their time are ineffective. Especially in the tech world, our tasks and tools are constantly changing, so we must be able to adapt. What separates the best engineers from the rest of the pack is that they create systems that allow them to be consistently productive.
Here’s the core idea that changed my perspective on productivity: Action leads to motivation, not the other way around. You should not check your email or scroll Instagram while you wait for motivation to “hit you.” Instead, just start doing something, anything, that makes progress toward your goal, and you’ll find that motivation will follow.
For example, if I have a high-priority, complex bug-fixing challenge at work, my approach is to decompose the problem into something much simpler. Could I simply add a log statement that prints the value of a relevant variable? My goal at this point is not to solve the bug, it’s simply to take a tiny step forward.
This creates a powerful flywheel: you’re productive → you feel good → you’re more productive.
Unfortunately, many engineers are stuck in the opposite flywheel, a downward spiral of procrastination: you’re unproductive → you feel bad → you’re unproductive.
The idea that motivation follows naturally from progress lets us lower the activation energy needed to enter the upward spiral. Author and motivational speaker Tony Robbins talks about a related concept that “motion creates emotion.” The actions we take, and even the way we move our body, affect how we feel. Once you realize that you can control your motivation, you can achieve stress-free productivity.
—Rahul
A shortage of technical workers is coming. Currently, most of these roles require university degrees, but specialized training through focused, skills-based microcredential courses could provide an alternative and expand the workforce. IEEE’s microcredentials program offers credentials that focus on the skills needed to become a technician, electrician, or programmer, regardless of educational background.
Amidst conflicting accounts of how programmers use AI on the job, Wired surveyed 730 coders to get more clarity—then used ChatGPT to comb through the data, with plenty of help from human editors and fact-checkers. The survey asked coders how much they use AI, their outlook on the technology, and how it has changed their jobs, among other questions.
Unlike many engineers, Carolina Cruz-Neira had little interest in technology as a child. Instead, she dreamed of becoming a professional ballerina. But when an injury forced her to pivot, Cruz-Neira found success in computer science, eventually blending her interests in art and science as a pioneer in virtual reality.
> Action leads to motivation, not the other way around.
I've found this to be very true. A trick I found that made this easier for me is to leave a trivial task to start tomorrow with, often with notes to remind myself what to do. Ideally the trivial task is on the way to something bigger, not finishing something. That gets me into my editor, gets me running the code / tests / etc., and gives me a trivially easy way to get moving. Then the motivation kicks in and I can start moving for real.
The same approach helps me with tasks outside of software development, and even outside of work.
That's Hemingway’s trick: “You write until you come to a place where you still have your juice and know what will happen next and you stop and try to live through until the next day when you hit it again.”
https://www.theparisreview.org/interviews/4825/the-art-of-fi...
there are so many different names for this. and time blocking. but it really works. small reminder. it works even when, like me, someone has serious case of ADHD. but its slightly different and there are extremes on both end. where it does not work or it works to well. but it always work. what I am trying to say if you feel its not efficient you still have to feel it out until you find how it works for you in whatever form it works.
Yeah, on the other side went I really pushed to finish a PR in today I am completely lost next morning.
Yep.
When there are no clear tasks, I sometime leave a syntax error at the place work should continue tomorrow. This is quite effective. It can make the answer to the "Where was I?" question immediate instead of taking a few seconds and this is one fewer barrier.
Yes. It's funny how this kind of trick can instantly snap the entire working context back into your mind. Essentially leaving you free to forget about the context during your free time and overnight. Truly a useful "hack".
It's also useful to jot down a quick list of (say) three items that are at the top of your mind when you leave work for the day, and they too will help with a context restore.
Also just chuck Todo comments in the code
The magic of Git means you can immediately find them in the working index and get back on to it. Just remember to remove them before the commit.
> The magic of Git means you can immediately find them in the working index
How does git help you find certain texts in files? `grep` should do the trick just fine, unless I misunderstand what "chuck Todo comments in the code" mean, the code lives on your disk no?
To get your bearings regarding where you got to with your uncommitted work, you might do something like:
git status && git diff HEAD
That will tell you which files you've touched and will show you their diffs. If necessary you can search within the diff: press '/' to bring up the search feature (assuming you're using the default less pager).To search for all mentions of 'TODO' in the repo, ignoring untracked files:
git grep TODO
or, case insensitive variant: git grep -i TODO
I have a very involved `gq` alias that helps me find and finish pending work. It works either in the current repository or a folder containing multiple repositories.
Basically, my assumption is that `gq` should return empty, which means I have a clean slate, and can start taking on new work. Otherwise, there is ongoing work that needs attention.
It just lists:
* modified/untracked files
* stashed changes
* local-only branches (not tracking a remote branch)
* branches out-of-sync with their upstream (either ahead or behind)
* branches that aren't the main branch (even if tracking and in-sync with a remote upstream)
Getting this command to return empty is a surprisingly effective way to stay productive, especially when losing focus due to too much work.It's basically inbox-zero for git.
But it only works if you like working with a clean worktree.
I know how to use git :P The question is why use git for something when the TODOs still sits in your files on disk. You're not doing anything with those commands that `grep` by itself cannot do...
Grep works too. I just spend a lot of time in git or tools that wrap it. It's an unconscious habit to check the status and diffs when I open my editor.
They'll show up in the diff.
Grep will find them too, but any in the diff you'll know for sure were added by you.
Parent mentioned specifically finding them from the index, so they've been added but not committed, so they're not even remote nor have an author associated with it, yet.
And why it matters to get them from the diff if they're on disk already? Literally one command to find all of them, rather than going through git?
If you do this often enough you can create a simple commit hook that searches for these markers and will fail to commit if it finds them.
"focus division multiplexing"
I've done that too. Especially if I have to stop working, but I'm in the middle of something. There are no compilation errors or tests failing but the feature isn't completed.
Introducing a syntax error is like a saved game, portal back in time. I'll come back to it tomorrow and it'll take me max one minute to reload the context into my brain.
I do this also. My tweak is to make the syntax error just a sentence of what tiny step needs to be done next. Then the next day I turn that sentence into a comment, do what needs to be done next and then delete the comment. It me the dual endorphin hit of completing a task and deleting code.
I always leave work( for lunch, for home) at failing test . Try to anyways.
Maybe this is implied, but I like to leave with a failing test that I know how to fix. That way I am not brooding on it all evening. Leaving when things are broken and I don't know why is frustrating.
Another similar thing is to leave an easy sentence half-finished so when you come back to it, there's an obvious first thing to do and hop back in.
I've always used "$$". It's probably a subliminal thing.
I like this. Good trick.
#pragma warning
I’ve heard this called “park facing downhill”
I remember being on a session with the pragmatic programmers (ie the people from the book) and they recommended making a compile error on purpose as the last thing one did before leaving work. The next day you compiled the code and get an error, fix this and they continue working. You are already doing work. This sets your mind on the right track from they day before. I gave used this a bit and it works pretty well.
It most definitely does work the other way around. The problem of course is that you can’t just wait for motivation to appear. But you can start an action.
I’m just stating the obvious, but I find it odd that the author states the opposite isn’t true.
While directing actors on the film set one of the questions to ponder is whether you first need to put people into an emotional reality so they can produce gestures matching that reality or whether you tell them how to move and then they find their emotional reality within the movements.
In my experience both works and some actors prefer one and some the other. But you can try it yourself, think of a sad thing, slumb together make a sad gesture and listen (emotionally) what happens on the inside.
Same, it's so much easier to quit just when you hit your limit and keep a 2 min window to bookmark your solution search and leave some potential follow ups. Makes restarting your job a lot easier.
It doesn't matter what I need to do, I start every day by building my code. It gets me typing commands in the terminal and more often than not there's a build error or warning I need to address
It's way easier to ride the momentum of "just one quick thing" than to start cold and stare into the void of a blank screen or a big to-do list
I disagree with the idea that getting past procrastination should (always) be the target.
Mostly because I don't think procrastination is inherently bad. There's a lot of stigma attached to procrastination as it's seen as being "unproductive". But I think procrastination can lead to great insights.
Your brain is telling you that it is not interested in the current task. The question is: Why? Overworked and needs a break? Much more interested in exploring something else? Protecting against the pain of failure?
Investigating the why instead of forcing "overcoming" is quite fruitful in my personal experience.
My guess is "action leads to motivation" might be helpful for solving one of the root causes (likely fear of failure/imposter syndrom) but not all of them.
I procrastinate a lot on hard tasks and usually it's because I don't yet fully understand the risks with each decision that goes into the design.
I think for younger engineers "fail fast" makes a lot of sense; there's not enough of a foundation of experience to tell right from wrong so the only way to learn is to fail.
For more experienced engineers, there's a greater sense of "I have a sense where this can fail; how do I design around that?"
It's not that a more experienced engineer will know exactly how it fails, but that there are modalities of failure that have been encountered so the goal is to design with some flexibility or optionality in mind. And sometimes, this just requires a bit of "gestation" or "percolation" before carving the path.
I think of it like an experienced sculptor sizing up a block of marble before making the first strike with a chisel. It's a kind of procrastination, but really, its a process of visualizing the path.
My expert machinist friend (mold/tool maker) calls it "couch machining". It appears like he isn't working but really in his head he is laying out the entire process from start to finish. Then when he goes to CAM it up it flows very quickly and the entire part is already mostly planned.
I think often people who don't visualize in their head can't grasp this...it appears as inactivity. The reality is it seems to be a hyperactivity...procrastination comes from having too many tasks and directions with unsolved solutions. (in my case...)
Another way to put it I have heard is "Thinking is working". If it doesn't appear like I am working...I am likely thinking.
Wow, that's a really insightful perspective. I often feel a bit ashamed for reading hacker news or some other IT related post on the net when I know I should be doing some development task. Your description pretty accurately describes the reasons for my procrastination. Thank you.
This is a solid observation.
I'd say that procrastination is bad when it drives you into some unproductive but addictive behavior, like watching silly tiktok videos, etc. It can be actually good if you do "structured procrastination": can't force myself to do task X, but find solace in solving problem Y really neatly. Another approach is to take a walk, do push-ups, etc, anything that changes your focus away from mental tasks, and preferably brings more oxygen to your brain.
Yet another approach is analytical: "I can't stomach doing that thing! But what thoughts or feelings make me loathe it so much? Where do they come from?" Interesting insights can follow.
> It can be actually good if you do "structured procrastination"
This is actually what John Perry, an emeritus professor of philosophy at Stanford calls it. There is even an essay (and a whole website) called "Structured Procrastination" [1]:
> Structured procrastination means shaping the structure of the tasks one has to do in a way that exploits this fact. The list of tasks one has in mind will be ordered by importance. Tasks that seem most urgent and important are on top. But there are also worthwhile tasks to perform lower down on the list. Doing these tasks becomes a way of not doing the things higher up on the list. With this sort of appropriate task structure, the procrastinator becomes a useful citizen. Indeed, the procrastinator can even acquire, as I have, a reputation for getting a lot done.
In a certain large part of the population procrastination is a symptom of mental disorder (like for example ADHD etc.), and often a particularly severe one. Dismissing it as a "benefit" is not constructive.
I suspect that you use word procrastination too general, to include all possible cases. If a person is lazy for 5 minutes or for an hour it's not a procrastination. Procrastination is severe case of inability to do something a person wants to do. And before anyone interjects about "duh, work may be unpleasant", it also extends to ALL other spheres of life. Imagine wanting to play a game and literally not being to force yourself to click Start. Or scrolling saved watch list and not picking anything you want to watch. Stuff like that.
Procrastination and related issues is a severe mental disorder and I'm sick and tired of people normalizing it or dismissing as something good or beneficial.
PS: to rephrase all that above - the answer to the question "Why?" is not exclusively something external (like "not interesting") but often an internal one, a chemical disbalance in a person's brain, some brain structures under- or over-developed etc.
Yeah, maybe there are different types of procrastination, but there's nothing good about my type. If I hadn't procrastinated through my 20s and 30s, I could be retired and spending my 50s fishing instead of working to make a living. I've got enough of a handle on it now that I keep my bosses happy, but it's still a struggle at times, and there are plenty more things I want to do that I may never get around to. It's a bad thing.
That's nice and all but when your procrastination prevents you from doing anything at all for months it doesn't really feel like it's a good thing.
One can model procrastination as a reaction to some form of mental pain. Doing the work hurts one in some way, so one subconsciously finds excuses to do something else instead.
But pain is a valuable signal, and often learning and resolving the root cause of the pain can be more valuable than reaching for the oxycodone to power past it.
I think the same thing applies. Have you been procrastinating for months for example, perhaps because you utterly hate your job? Perhaps you should switch jobs.
I procrastinate all the time, listen to much to your mind or chase the fun stuff only, would not get you traction, probably it’s a distraction, because the mind is lazy. Most of our systems wants to conserve energy or expend at little as possible. Going to the gym in a cold morning is not something that the mind or body is seeking, so listen to the idea of not going would be bad for you. Muscles are lazy too, they just want to chill. But if you make them do a little work, they like it and ask for more. We are weird and we need to force us to do stuff. That’s your job, you command your body
I have always found that when a task becomes difficult to the point of procrastination, that is a sign that the approach to the task needs to be reworked.
The phrase "do something instead of nothing" might be more useful than "action leads to motivation." I have plenty of motivation - but my brain does not always comply when I try to focus on purpose. In such a case, I work on an unrelated task that is easy to engage with. This gives my brain a chance to focus, which begets more focus, until there is enough focus to do so on purpose.
This post and similar advice is aimed at people who feel pain from procrastination. You are not one of them, probably. It's not an inherently bad thing, just like any number of things some, not all, people struggle greatly with (drugs, food, etc.).
I would say that the original poster is intimately familiar with procrastination, because they recognize that the underlying cause of most procrastination is a barrier of some sort. Different people have different combinations barriers, so it can be difficult to recognize someone else's experience.
> Your brain is telling you that it is not interested in the current task. The question is: Why?
I think for a lot of us it's something like: Because it's nonsense busywork that I don't care about. Procrastinating isn't going to help, and it is absolutely bad because it leads to uncompleted tasks and that leads to financial distress. I need to get it done regardless of whether it's going to provide a dopamine hit or not. Best thing to do is to stop thinking about it and get it out of the way so that I can focus on the things I want to do. I'm not overworked, I just don't want to do this task. I am interested in exploring something else but that's not a choice that I have right now. I don't have the privilege of doing whatever I feel like doing. Pain of failure? No, it's not at all something that I'll fail at. It's drudgery avoidance. Unfortunately there's plenty of drudgery that has to be completed.
I find that shutting off one's brain and just slogging through a task leads to work quality on a par with AI slop.
So if one really is as uninterested in the quality of the output as you suggest, perhaps it might actually be better to dump the problem into Claude/Gemini/Cleverbot and just copy/paste/act upon the results verbatim and then mark the checkbox as "done" and move on.
For me personally, the pain of such efforts is ordinarily from making sure that the output is correct when the input is largely guesswork or speculation that always leads to hunting through a morass of poor documentation of some library or seeking a workaround to some irritating problem or rolling the dice on what the risk to various decisions might prove to be over the future: "eh, duct tape this and it ought to hold".
And most notably that doing more of this work correlates to an exponential rise in the volume of similar work that will be required down the road to maintain the same results.
Those are often exactly the time one would be best served by taking a step back and questioning the entire framework that supports the busywork in question. Perhaps starting from scratch or making some huge change would reduce the garbage portions of the effort and keep them from further proliferating?
While I don't disagree with this approach, it only works for some digital tasks. AI won't clean my house or exercise my body or engage in obligatory social interactions. In these cases, just getting it done by shutting off your brain is often the best way to get it going.
Also, it's not all or nothing. You can decide to engage more in the task as it's ongoing, which could contribute to higher quality output. The hard part is usually starting.
Yeah.. for awhile I tried exercising by walking/jogging on a treadmill with headphones watching youtube to keep my brain entertained through the drudgery.. but yeah, one constantly drowns in the noise of being jostled.
For me completely shutting down the brain (when/if I'm even capable of doing so) is just a function that activates sleep. While I haven't tried this while exercising in particular, I have more than learned my lesson from trying it merely standing up and the result is very much falling down.
Well said!
The productivity fetishists want us to hate ourselves for resisting the orders issued by the executive mind. Fuck that.
Why? The answer is easy: the work is pointless corporate bullshit. Not sure if it ever going to hit the prod at all. But they pay huge salary and I need money. Turns out nice things are expensive.
I was going to post something similar until I saw your comment. I completely agree. It's difficult to motivate oneself when one knows the work they are doing is actually not worth doing.
many such as cases, it's clear why. People hate doing task x, because it's not fun nor valuable to them, but need to do because of duty.
I develop apps and after I have completed 80% of the crucial work, the remaining 20% of the work involves boring and brainless stuff like adding in app purchases, adding features like send feedback to developer, asking for reviewing the app, designing the app icon, designing the App Store screenshot, writing the metadata for App Store description etc.
I procrastinate super long on this 20% of boring task even though it could all be done in maybe 2 days.
[dead]
To me, procrastination is the brain overestimating (or perhaps just estimating) the unpleasantness of a task in the future. The unpleasantness could come from general lack of pleasure in performing the task, anticipation of frustration or irritation due to a gap in the skills or resources required, anxiety about not being able to successfully complete the task, or the output of the task not meeting one's personal expectations.
One example for me is getting out of the house: I loathe the idea of getting dressed, getting into the car and driving, whenever I contemplate it, but once I'm behind the wheel, the thought always is "this isn't so bad". If I think about the getting dressed bit, that too, thought of in isolation, isn't so bad. It seems it is the anticipation of a seemingly complex sequence of tasks that tend to put the brain off.