Developer Procrastination
Tags: productivity, programming
Published: 2020-05-11 03:23:48

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.
1. I've recently found some better ways to assess - and occasionally, even _avoid_ - procrastination.

<br/>

## 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.
<br/>

## 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.
<br/>

##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.
<br/>

## 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.
<br/>

## "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_.<br/>

1. 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_.<br/>

1. If you've ever killed a morning _organizing your inbox_, you were **definitely** _productively procrastinating_.<br/>

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.
<br/>

## 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.