DEV Community

Cover image for How I stopped my procrastination: Insights into developer mindset
Eshaan for Middleware

Posted on

How I stopped my procrastination: Insights into developer mindset

You’ve been at your job for years, you know how to write code good enough to get you by comfortably, yet every now and then there’s a ticket, a ticket that lingers on-and-on on that kanban board, red with delays, reschedules and “is this done?” comments. “I’ll pick it up first thing in the morning” is what you told yourself yesterday, and the day is already dusking off.

We as programmers and developers are likely to procrastinate, and there are good enough reasons for it. And being lazy might be one of them, but the documentation of our brains is much bigger than that.

Why programmers are likely to procrastinate

Cognitive overload 😵‍💫

As problem-solvers, we tend to use the ‘most-contextual’ part of the brain way too often, i.e the Frontal Cortex.

The frontal cortex is responsible for executive functions, which involve analyzing information, identifying patterns, decision making, and most importantly, doing-the-right-thing-even-if-it-is-the-hard-thing-to-do actions.

For these seemingly-simple tasks, the frontal cortex needs bucket-loads of energy, exhibiting a very high metabolic rate.

We, as mere mortals with anti-bluelight glasses, have fixed reserves of energy, and when we expend them, compromises start to occur.

Behave’s author Sapolsky point out that when the frontal cortex is overloaded, subjects become less prosocial, they lie more, are less charitable, and are more likely to cheat on their diets.

“Willpower is more than just a metaphor; self-control is a finite resource”,

he says, stating that doing-the-right-thing-even-if-it-is-the-hard-thing-to-do is not merely an emotional and moral choice, but is far deeply tied to the physiology of the brain.

I’m just a kid

We have all had our fair share of beginner-developer moments. When we plowed through nights and days trying to learn and retain how that x language or y framework functions. And the number of times we almost gave up.

But after a certain threshold, coding didn’t seem to have that big of a draining effect. And there’s a good reason for it.

When we practice and learn something, we start shifting the cognitive processes to the more reflexive (stemming from a reflex action, an automatic “muscle memory”) parts of the brain, like the cerebellum.

And once that is achieved, we reduce the burden of computation on the Frontal cortex, making the tasks less energy-taxing.

Decision Fatigue

Cognitive tasks are not limited to logic-oriented, calculative, cautious tasks that one does as a programmer.

It also includes a seemingly simple task: Decision making, like using the correct approach to write readable code, or something as simple as which task should I ship first?

And like cognitive loads, decision-fatigue is tied to your energy reserves too, and can ultimately affect your productivity.

Process rather than Procrastinate

Now that we have broken down Procrastination, it's time to actually tackle it.

1. Germinate

To achieve anything, whether it’s your jira-ticket’s completion, or a side project, one must start to build. “Am I taking the most efficient, readable, perfectly orchestrated approach to solve this problem”; the friction of uncertainty and self doubt usually make it hard enough to begin with.

Opening your laptop is the first victory to overcome the code-block. And the only way to do that is to have something certain, some anchor that doesn’t give you any unease.

I’ve had times where I tried to find a perfect time window to start programming on a weekend, that was me trying to find a unicorn.

So I made it a point that at a certain hour in the morning, I will open Monkey Type and try to hit the day’s first 80+ words a minute.

It’s something I stole from Atomic Habits, and it helped immensely. This simple ritual in the first 5 minutes of my day consisted of adrenaline-rushed, muscle-memory reflexes that had nothing to do with uncertainty of my task.

Thus, I could be eased into opening my IDE to complete that Jira ticket, whose dread had haunted my jira board for a week.

2. Granular-ize

Something I learnt fairly recently is to plan in a way that your programming journey will have little to no decision making once you start with writing code.

Everything else can, and should be pre-planned, into its utmost smallest task-granules, making things as clear as they possibly can be.

The concept of Engineering Requirements Document (ERDs) was something I looked down upon as a corporate scut-work for the upper management to feel included in the process.

Turns out I was wrong, and it’s intended to make sure that all the decision fatigue occurs during initial stages, and the rest of the shipment of tickets spread throughout the week remains relatively unharmed from taxing your Frontal cortex’s energy reserves.

3. Game-ify

Updating my Jira tickets on my kanban board didn’t give me enough belongingness to the fruits of my labor. Neither was I able to track my personal progress of what I completed, what I shipped and what I spilled.

So I kept a set of my mini daily tasks on a local Microsoft’s To Do list. The satisfying chime of completing the task gave me a big boost on being on track, without having to worry about what is left undone and what is yet to be picked up.

Since this was personal, I could add tasks like “get a brownie on 3 completions” and wait for it to ping up when I marked it as done.

Motivation is a cocktail of neurotransmitters, make sure you zap your brains with some hits, every now and then.

Another tool that can help in the same is Middleware’s Project Overview. It systematically gave the reason for my spills and overcommitment in a sprint, and can help give an overview of your Jira Boards and Projects.

4. Gauge, Grapple and Give-up (not totally)

Friction in the building process goes far beyond decision-fatigues. You fail at something for long enough and you are likely to not want to do that thing anymore.

It's wise to gauge the problem, allocate a time-duration, and wrestle with the problem with all your might. But when you know that it’s time-up, ask for help.

You need to make a voluntary decision to make the problem smaller than your hands, or add more hands to it.

There’s nothing wrong with an extra set of limbs, or brains. Homo erectus showed the first signs of ordered-socialization within communities, and then came homo sapiens with their big-brains of computation. Companionship precedes cognition, at least within evolution.

5. Conclusion

We as developers often forget how human we are, I mean we are running services that cater to millions of humans.

Who are we, but gods on keyboards?

But, something as little as a missed breakfast can affect our productivity, and something as big as a system-failure can drive us to work harder. We are complex machines with simple values.

As a developer who would rather write a script for an hour, rather than clicking 4 buttons in 4 seconds, I can vouch, it’s always wise to fix a process rather than the absolute problem. Fix habitual actions, and you fix procrastination.

Top comments (21)

Collapse
 
samadyarkhan profile image
Samad Yar Khan

After 30mins of coding, I often find myself in on reddit. Engineering is a super challenging job at times, your brains finds ways to put in the least effort. This article is super helpful 🙌🙌🙌. Glad I am not the only one

Collapse
 
kris_thomwhite_d5ce34e0f profile image
Kris Thom White

There’s also the “no matter which task I’m working on, I’m stressing thinking of the other 10 tasks I’m not working on” problem.

Collapse
 
eforeshaan profile image
Eshaan

Of course, THAT! The angst that comes with switching tasks and having a multi-threaded computer in your own brain definitely affects my productivity.

Even though I created To-do lists, if I don't sort that list by priority, I fall into the anxiety-trap of "did i finish that?"

Collapse
 
coderamrin profile image
Amrin

Thanks for writing this.
Somedays I get bored and delay the task then I realize I just have to break the task into doable parts.
That way I convince myself to start the work and eventually finish it.
I point I am taking away from this article is "practice on monkey type start the flow"

Collapse
 
eforeshaan profile image
Eshaan • Edited

Exactly! We just feel uneasy about what we can't understand. Make them bite-sized and it's easy to consume.

And yes, monkey-type just worked like a charm for me. Hope it does for you too!

Collapse
 
jayantbh profile image
Jayant Bhawal

I'm not an early stage Dev anymore... So why does this still feel relatable? 😅😅

Collapse
 
eforeshaan profile image
Eshaan

We are humans before developers, haha!

Collapse
 
ofek_shilon_acde8a5e80902 profile image
Ofek Shilon

Thank you for this.

Collapse
 
eforeshaan profile image
Eshaan

Glad you liked it!

Collapse
 
gikdev profile image
Mohammad Mahdi Bahrami

Hey bro! Cool & useful post. I'm gonna test it tomorrow when I go to work. Tnx

Collapse
 
eforeshaan profile image
Eshaan

Haha, glad to know!

Collapse
 
jayantbh profile image
Jayant Bhawal

Image description

This is a GREAT damn gif for this section. 🤣

Collapse
 
shivamchhuneja profile image
Shivam Chhuneja

I've recently jumped into ML and projects that are relatively code heavy and this fits spot on lol...a lot of things are like a rabbit hole in tech🤣

Collapse
 
eforeshaan profile image
Eshaan

Haha, glad you found it relatable! All the best for you endeavours!

Collapse
 
johannesjo profile image
Johannes Millan

What helps me quite a lot every day is the to-do app I wrote:
github.com/johannesjo/super-produc...

It helps me to break down tasks into smaller bits and it helps me to stay focused. And if I'm struggling it helps me understand why this might be the case

Collapse
 
hrrarya profile image
Hridoy Mozumder

This is awesome. Thank you for this awesome tool.

Collapse
 
stanley_awuzie_bee069499e profile image
Stanley Awuzie

It was all about my intuition, I faced many challenges in a lot of ways, but in all I saw it as a process.
And it was hard to rely on anyone.
I just know it was something extraordinary. Thank to everyone that makes it possible.

Collapse
 
robertlassiter profile image
RobertLassiter

This article applies to so many things in life, not just code development. It’s always nice to learn from the perspectives of others. Thank you.

Collapse
 
eforeshaan profile image
Eshaan

Thanks! Glad you found it relatable beyond just coding. Appreciate it!

Collapse
 
martinbaun profile image
Martin Baun

Great post! The only thing that has ever worked for me is to trick myself into doing the thing I need to do, haha :)

Collapse
 
aqib_shakil profile image
Aqib Shakil

Amazing very useful🕺