loading...
Cover image for Developer Procrastination

Developer Procrastination

bytebodger profile image Adam Nathaniel Davis Updated on ・11 min read

Dev Life (5 Part Series)

1) The Contentious Art of Pull Requests 2) Developer Procrastination 3) Multitasking Is A LIE 4) The Unbearable Whiteness of Coding 5) Tech Decisions with Zenn Diagrams

This may feel like an odd subject for DEV.to. After all, "procrastination" is hardly a subject confined to programmers. In fact, procrastination is usually thought of as a universal human challenge. But I felt compelled to write this up because:

  1. Procrastination can manifest in some peculiar ways amongst devs.
  2. I've recently found some better ways to assess - and occasionally, even avoid - procrastination.

Myths

If you google "procrastination", the web is littered with supposedly-insightful articles that purport to help you slay the Procrastination Demon. Quite frankly, I find most of these articles to be complete garbage. I can respect the authors' attempts to crank out a modestly-useful self-help guide, but IMHO, they almost always miss the mark - badly.

Myth #1 - Distractions

You've all seen these articles. They talk about removing items from your workspace. They talk about using various tools in an attempt to "lock down" your work station. I've tried all of the suggested techniques - and I find them to be worthless.

Even when you make every attempt to shut out the world, the world has a funny way of creeping in. For most of us, using a browser is not an option in our career field. And as soon as you open a new tab, the entirety of the interwebs is calling for you to start reading the latest recap of your favorite show. Or to check on the next release date of your favorite tools.

Similarly, many of us don't have the option to simply turn off email. Or Slack. Or text messages. Or any other means by which the Big Bad World tries to intrude in our day.

Myth #2 - Scheduling

You can block off as much time as you like on your calendar. My experience is that my Corporate Masters will outright ignore those scheduling blocks. I can set myself as "out of office" for the next five years - and I'll still have meetings added to my calendar on a regular basis. And if I blow off those meetings, it won't be long before I no longer have a Corporate Master to bother me - or to deposit money into my bank account on a regular basis.

Myth #3 - Prioritization

Any time I see a "procrastination" article that talks about prioritization, I simply roll my eyes. If your Corporate Masters are anything like mine, your priorities are not set by you. They're not controlled by you. Even when you believe you have a clear set of objectives, they can be reshuffled on a moment's notice.

Prioritization may have some benefit if you have the luxury of working in a truly autonomous fashion. But let's face it: Most of us are far from autonomous. Even if you only work on your own independent contracts, those contracts are still set to be delivered to someone. And that "someone" still has at least some ability to jumble your oh-so-careful prioritization.

The Big Lie Of Self-Discipline

The items listed above all imply that procrastination is a matter of self-discipline. Even if others' advice sounds "neutral", the typical how-to-avoid-procrastination article has a deep undercurrent of shame. You're "shamed" because it's implied that you wouldn't have a procrastination problem if you just buckled down and started... acting right.

Most procrastination discussions center on the idea that there's some "flaw" in your character. And the only way to avoid that flaw is to fix your character. Nearly every bit of canned advice that I've seen regarding procrastination frames the issue as one of self-discipline. The thought process is that you can somehow wash procrastination from your life if you just pull yourself up by your bootstraps and learn to discipline yourself.

I'm here to tell you that "self-discipline" (or lack thereof) is rarely a driver of procrastination. More often that not, people procrastinate because of deeper issues surrounding the nature of their work.

If you don't believe me, just look back at your own past. Even if you think of yourself as a Certified Procrastinator, I'll bet money that there were times when you cranked out a hellacious amount of work in an incredibly short period of time. And you probably cranked out that work because it excited you.

It was genuinely engaging to you. So you dove in head-first and cranked out that project that others thought would take you weeks - or months. And you were a Rock Star.

You see, procrastination isn't typically caused by a lack of self-discipline. Procrastination is most often caused by a lack of motivation. And those are two very different things.

When you've had something that you cared about deeply, or something that engaged you mentally, you probably dove into the project. But when you've had tasks that annoyed you, or bored you, or forced you to go outside your "comfort zone", you probably found yourself, at some point, avoiding them. In other words, you started procrastinating.

This isn't a "character flaw" on your part. This isn't a sign that you lack the discipline to be a developer. This is a deeper statement on the kinds of tasks that you find yourself doing in your daily employment.

My "A-Ha" Moment About Procrastination

This may sound like a silly little "Jedi mind trick", but I had a seminal moment regarding procrastination not-too-long ago. As soon as I understood the problem, I found it much easier to avoid the problem altogether.

Don't get me wrong. I still procrastinate. We all procrastinate at times. (Anyone who claims otherwise is a bald-faced liar.) But, for me at least, it was an incredibly freeing (and useful) moment when I realized that I'm not procrastinating because of some deep-seated character flaw. Rather, I'm procrastinating because there's something about the particular task/environment/project/team at-hand that just doesn't "sit right" with me.

Incredible as it may sound, merely acknowledging this fact - to myself - usually makes it easier for me to work through it. When I realize that I'm putting something off because something about the task makes me uncomfortable, I've found it at least somewhat easier to dive into the task and get it OFF my plate.

When I'm honest with myself, and I tell myself, "Adam, you're putting this task off because you don't like the technology/team/project/process that you have to deal with," it's actually made me more likely to finish the task in a shorter period of time.

Let me give you a few examples:

Avoiding "Ugly" Tasks

The client tells me that I need to update some part of the app that was written years ago in some crappy framework that's rarely used anymore and I have no desire to learn. So, naturally, I put the task off. I have no desire to dive into that Stupid Old Framework and I sure as hell don't want to put it as a bullet point on my resume. So I do everything I can to avoid it until the last possible minute.

But a funny thing happens for me when I just acknowledge this reality to myself. When I bluntly realize that I'm not doing this task because I just don't LIKE it, I've often found myself more-likely to knock it out as fast as possible.

Avoiding "Ugly" People

Sometimes, something in the environment spurs my procrastination. As in: The client tells me that I need to start a brand new "green-fields" project that will require a new repo and a new CI/CD process. And that sounds great, except...

Joe the Jerk is the only one who has the permissions to create a new repo. He's the only one who has the Jenkins rights to configure a new CI/CD process. So I can't start the project until Joe the Jerk sets up my environment... And Joe's a certified asshole.

Joe rarely answers my emails. Or my Slack messages. Or my carrier pigeons. And when I do manage to get a response from Joe, he's a surly pain-in-my-rear.

This is a classic scenario where I tend to put the task off as long as possible - even though I'm generally excited about the idea of coding up the "green-fields" project. But the prospect of dealing with Joe the Jerk causes me to put it off as long as possible.

But strangely enough, when I've had a little inner-conversation about why I haven't pursued this task, and I'm honest with myself about how much I loathe Joe or having to solicit his help... it actually makes me (somewhat) more determined to actually push through the hassle of dealing with him. When I mentally acknowledge what's really holding me back, it makes me more likely to push through the hurdles so I can get back to doing what I love as soon as possible.

Procrastination Triggers

My little self-help mind trick above doesn't do you any good if you can't at least be honest with yourself about when you're procrastinating. So here are a couple of alarm bells that start going off in my head to let me know when I might be guilty of procrastinating:

Insufficient Workload

You're in a two-week sprint and, at the beginning of the sprint, the client gives you a few dead-simple text changes to make in the app. And that's it. Two weeks of supposed "work", and all they want you to do is fix a few typos.

You know how I (too-often) deal with this kind of eff-ery? I fix the typos on the last day of the sprint. It's not that I'm too high-and-mighty to fix a few typos in an app. Hey - it's just another part of the job, right??

But when I've been given nothing but these stupid little changes to make over an entire two-week sprint, all too often, I don't knock them out right away (and beg for more work). Too often, I just put the stupid little tasks off until the last day of the sprint.

Strangely enough, if I just acknowledge this annoyance to myself, I'm more likely to knock out the ridiculously-simple tasks and ask for more work.

If this sounds rather arrogant, let me assure you that I have no problem with making silly little text changes in an app. For me at least, my annoyance doesn't come from the fact that I've been asked to make text changes. My annoyance comes from the fact that my assigned workload is so meager.

If I'm given a list of a hundred text changes to make in the app over the course of this sprint, it really doesn't bother me that much. Sure... it's rather "menial". But sometimes, app dev work is menial. As long as I have a sufficient volume of the menial work to complete, it doesn't generally spawn a procrastination response from me.

Old/Deprecated Technologies

Your cool, awesome, shiny app is (almost) entirely written in the latest version of React. But there's one ancient legacy module that was written 20 years ago in Visual Basic. And now... the client wants you to update something in that janky code.

No one even knows where the legacy code resides. It has no documentation. No one even knows how it's supposed to work. No one wants anything to do with this module - but now you've been asked to somehow update it.

This is a prime candidate to make me procrastinate. I can do Visual Basic. I've done it in the past. But I have no desire to mess with that ridiculousness now. And yet... I've been assigned this horrific task.

Organizational Roadblocks

You've got a nice slate of programming tasks to complete during the sprint. But one of those tasks is not purely a "dev task". Maybe it requires you to interact with Joe the Jerk (whom I've described above). Maybe it requires you to write some boatload of documentation that will need to be reviewed by some committee. Maybe it calls for you to sit in a ton of meetings with hordes of "business types".

If you're like me, this task gets put to the very end of your list of priorities. I avoid it like the plague.

But you know what? Avoiding it doesn't make it go away. And every damn morning, during stand-up, the project manager asks if I've made any progress on this task. And every damn morning, I make up some slightly-plausible excuse for why I haven't even started it yet.

There's no way to "fix" this dreaded task. But I've found that merely by being dead-honest with myself about why I don't want to do it makes me (somewhat) more likely to grit my teeth and get the work done.

"Productive" Procrastination

Remember I said above that devs can manifest procrastination in some peculiar ways?? I'm talking about productive procrastination. Over more than 20 years in this career field, I've actually become convinced that some devs don't even realize when they're procrastinating.

If that sounds implausible, consider the fact that a lot of what can be called procrastination is actually, on some level... "productive". To put this another way:

Just because you did something "productive" today doesn't necessarily mean that you weren't procrastinating.

I'm not pointing fingers here. I've done this far too often. I have some crappy task that I really don't want to do - so instead I find 100 other tasks that are nominally "useful" to the team. But... no one has asked me to do them.

  1. If you've ever burned a day researching a new NPM package that's not directly required to complete your sprint tasks, you may have been productively procrastinating.

  2. If you've ever gone down a refactoring rabbit hole on code that no one asked you to refactor, there's a good chance that you were productively procrastinating.

  3. If you've ever killed a morning organizing your inbox, you were definitely productively procrastinating.

You see, just because you were procrastinating doesn't necessarily mean that you were completely unproductive. "Procrastination" doesn't just mean "I sat on my arse all day and did nothing." It's perfectly possible to be "busy" all day - but to have still burned an entire day procrastinating.

On any given day, there are dozens of things you could do that will absolutely "feel" productive... But they won't help the team achieve any of its immediate goals. When this happens, you're engaging in productive procrastination.

My point here isn't to shame you for any of these activities. I've done them - repeatedly. We all do them sometimes.

But remember my "Jedi mind trick" above?? For me, the first step in limiting such procrastination is acknowledging it to myself. Once I acknowledge my own "productive" activity for what it really is - procrastination - I find it somewhat easier to steer clear from it in the future.

Procrastination Is A Warning Sign

Although I've tried to make it painfully clear that this is not an indictment on your procrastination, it may still feel like I'm writing this article to "whip you into shape and set you straight". But that most-definitely is NOT my intention.

Let's be honest here. Procrastination happens. To all of us. In every job. But I'm pointing out these mental traps because procrastination can be a sign of a much deeper problem.

If you've been in this career field for at least a little while, you probably have fond memories of some job in your past where procrastination was never an issue. You were invigorated. You were motivated. You genuinely enjoyed your work - and it came easy to you.

When I've been faced with team members who are chronic procrastinators, it's rarely a sign that they're simply "undisciplined". Instead, it's usually a sign that there's something about the work/company/team/etc that just doesn't sit right with them. They'll rarely admit as much - but it's almost always true.

If you can be honest with yourself about these tendencies, it may be a big red warning sign that this gig may not be completely "right" for you. That doesn't mean that you must (or should) quit. But it might spur you to have an honest conversation with your employer about the work they have you doing. And even if there's nothing to "fix" in your current situation, it may help you to seek out a far more engaging job when/if you do finally decide to look elsewhere.

Dev Life (5 Part Series)

1) The Contentious Art of Pull Requests 2) Developer Procrastination 3) Multitasking Is A LIE 4) The Unbearable Whiteness of Coding 5) Tech Decisions with Zenn Diagrams

Posted on by:

bytebodger profile

Adam Nathaniel Davis

@bytebodger

React acolyte, jack-of-all-(programming)trades, full-stack developer

Discussion

markdown guide
 

I read this article to procrastinate to while i wait for a build to complete as part of our very inefficient test/release strat'.

I think you are right, especially about "productive" procrastination.

It usually always' happens because of structural problems in a codebase and/or lack of common standards on the team in my experience.

 

If I'm being totally honest, a good number of these blog posts of mine could probably qualify as... procrastination.

 

Great post! It is refreshing to hear a point of view on procrastination that actually rings true for me. When I'm honest, it's not that I'm lazy or undisciplined but usually I'm uncomfortable or worried or even scared about making a mistake that lands me in hot water and upsets not just my employer but the customer as well. Lately, I've been so riddled with this 'fear' that I've found myself procrastinating anything that causes this uncomfortable feeling. I find I'm doing just enough to convince the less astute that I'm making some type of progress, even when I know, for me, I'm procrastinating to the max. And not because I'm lazy but because I'm downright afraid! Truly getting over this fear usually puts me right back on track, but getting myself to admit and face the fear is often quite difficult in itself. Either way, it's great to hear a reason the rings very true to me as to why I procrastinate.

 

Thank you! And I LOVE the feedback! You've alluded to a few great points that I didn't thoroughly cover in my post (cuz let's face it, it was already a long post).

First, I'm talking about the point of: discomfort/fear that can originate from "structural" challenges with our employer/client/project/etc. You could be The Greatest Programmer Who Ever Lived, but when faced with a dysfunctional employer/client/project/etc, it's easy to find those Herculean qualities being "squashed". In the long term, I'd gently suggest that such problems are "on us". Because, in the long term, we ultimately need to strive to put ourselves in better situations. But in the short term, we often find ourselves facing environmental situations that we can't control and couldn't have reasonably been expected to foresee.

Second, although it's obviously wonderful to have "senior-level" skills, sometimes those same skills can be a kind of enabling crutch. In other words, maybe Task X usually takes anyone else on your team a week to complete. And you know damn well that you are perfectly capable of cranking out that sucker in a few days. But... you're hating the employer/client/project/etc, and you know that, in your current environment, you can probably "get away" with taking the full week to complete the task. So... that's exactly what you do. In other words, it looks, to the untrained eye, like you're working just fine - right inline with the standards that have already been set by the team. But if you're honest with yourself, YOU know that you could be cranking out that code much faster - and with the same-or-better quality. The fact that you don't is a kinda "stealth procrastination".

And as I've tried to make clear in the original post, I'm definitely not pointing any fingers here. I've done this. Too often...

 

This is a good series! I always think of the old Mark Twain quote... "Eat a live frog first thing in the morning" etc