Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Procrastination is an addiction because it offers relief from anxiety and instant gratification. Also, being a chronic procrastinator and a skilled developer is a deadly combination. I've been praised for my excellent work and rewarded with raises and bonuses, even though I often procrastinate until the very last minute.

Tip: to make your git logs look socially acceptable to co-workers and management, don't commit at 3AM Monday morning, wait until 9AM.



I definitely feel it like an addiction, and I often try to describe it like a drug. I build up this anxiety for a task, in small increments throughout the day. Then, finally, mercifully, at some point, my brain finds a way out. I find something easy to replace the thing I was worried about, or I find a somewhat valid justification for why I can do it tomorrow, and the anxiety just vanishes and I get this hit of dopamine that feels a tiny bit like weed, honestly.


Wow this struck a chord with me, because it's actually exactly how I feel. Finally when I DO decide to start working on the task, often just as midnight hits, I feel like all the buildup and stress gives me a wave of energy to just plow through it no matter what. But it's a horrible way to do things...


> Finally when I DO decide to start working on the task, often just as midnight hits, I feel like all the buildup and stress gives me a wave of energy to just plow through it no matter what.

This speaks to me more closely than I'd like. I've pulled off some admittedly productive all-nighters (where "productive" means that the results satisfied the recipients), but at great personal cost. For years, I've yearned to harness the mental state of procrastination-induced late nights of solitary work.


I'm not a professional, but it sounds like you're adding challenge or pressure to the task at hand to make it more exciting and gratifying.

Unfortunately, a lot of tasks / work are just boring and ungratifying, that's the harsh reality of e.g. software development. Going to e.g. HN and seeing how everyone else is doing something cooler is not helping in that regard.


wow nice way to put it in words... any tips on fixing this? I am have a little addiction to weed aswelll...


For me exercise and internet reduction helps to a degree. Daily exercise (like 45min+ with some real sweating). For the weed: It fucks with my short-term memory and once I really understood that, it got boring. However I'm still smoking cigarettes, less so with weed - choose at least one or two shitty addictions is it for me it seems :/


Are you sure you don't have ADHD? Because that sounds a lot like what you're describing.

ADHD is an addiction to procrastination in a sense. It could be that you missed diagnoses at a young age due to being intelligent enough to cruise through school and university with little effort, so your problem was never picked up as you never suffered any serious negative effects from ADHD due to your intelligence and ability to get tasks done quickly.

That's basically what happened to me. I'd be able to do an assignment that would take people several days, in half a day. So I'd be able to procrastinate and delay up to the last minute and still manage to pull through, usually not with great grades, but I'd pass. I always thought I was lazy, and never considered the fact that it could be a deeper neurological problem.


It’s true that this is consistent with ADHD, but it’s not nearly enough information to diagnose because it’s also a common experience to many people (really). ADHD is basically defined as the bottom of a bell curve in a number of areas (depending on how you look at it, executive functions or behaviors) that are normal to the human experience, just so extreme and frequent that they are impairing to functioning in life. It is a real disorder, but it’s challenging to understand and diagnose because it’s basically an extreme version of experiences and troubles that most people have. Books and lectures about procrastination are extremely popular for a reason. Procrastination, to some extent, on work and school projects is almost a universal experience. Apart from a few outliers, most people I know waited until the day or two before to work on on week or month long assignments.

Please be careful about telling strangers they may have a mental disorder — just like a false positive on a medical test, it can induce anxiety and cost a lot of money to investigate.


> Please be careful about telling strangers they may have a mental disorder — just like a false positive on a medical test, it can induce anxiety and cost a lot of money to investigate.

The flip side is that in some cases, such possibility can be relieving. For me, the idea of having undiagnosed ADHD (which I plan on verifying soon) means there may be a better solution to the problem available than endless talks about pomodoros, bullet journals and getting one's shit together. In general, given symptoms which aren't going to disappear on their own, it's probably universally better if it turns out to be a medically recognized condition, as it gives a way forward.


ADHD is a label, not a disease.

You can't really be diagnosed with symptom (although of course your money will be cheerfully taken to do just this).

Attention and focus and other related ADHD-type issues are bell curve.

It can feel good, for sure, to externalize our weakness and failings into one of these labels, like ADD. If that is helpful to get over the psychic weight of past failures, then that is helpful and useful.

Taking stimulants definitely helps most people with ability to work and focus, regardless of where they are on the attention-ability curve. There are also drawbacks and side-effects, at least I have observed.


It is pretty well understood that people with true ADD and ADHD have dopamine deficiency and issues with dopamine regulation and re-uptake in the brain. This has been highlighted in many studies. While I understand that there is an epidemic of over-diagnosis of ADHD, it does not make it any less of a legitimate medical condition in which the only treatment for it, is to increase the usable dopamine in the brain. One of the tell tail signs of ADD/HD is that the first time one with dopamine deficiency takes an amphetamine or one of it's derivatives, they realize that they are completely clear and it's like they come out of a fog in their brain, it's more profound than just the feeling of I can get stuff done. Again that alone is not effective as a single point to diagnose attention disorders but it is a strong indicator that there could be a dopamine deficiency.

TLDR it is a true disorder, it is over-diagnosed but that does not make it any less a chemical disorder of the brain.


Pomodoro and journals are part of ADHD treatment and that's OK. (There may be better behavioral therapies, like setting alarms and writing plans). The presence of a drug for a condition is not the same as the existence of a condition, and drugs are not always superior to behavior therapy. If you had low muscle mass, you wouldn't say "thank heavens it's a recognized condition that I can treat with steroid injections, so I can stop messing around with weightlifting!"


Pomodoro actually works quite OK for me. It doesn't solve the problem, but it's one of the more effective strategies to get some work done.

I'm not saying there are magic pills. But most articles about procrastination seem to target regular people, for whom this is not that big of a problem.

If you had low muscle mass, and weightlifting and diet didn't help, you'd sure be grateful if it turned out to be a recognized condition. Even if there was no effective remedy, you could at least tell the people saying "you're doing dieting/sports wrong" to shut up.


Human psychology is on a spectrum. Mental disorders are extremely common, as are minor physical disorders. We aren't ashamed of seeking remedies for high blood pressure or low muscle mass or high fat, all of which are extremely common physical disorders. We shouldn't be ashamed of seeking remedies for mental disorders either.


I agree with you that most of human psychology is on a spectrum and that there is no shame in having a mental disorder or in seeking treatment for it, so I'm not sure if you're disagreeing with me or adding more information. At the same time, I think we should be cautious about suggesting to someone that they have a particular mental disorder for a behavior that is common.

A psychiatrist or neurologist would want to know significantly more about the original commenter than "Procrastination is an addiction [for me]... I've been praised for my excellent work and rewarded with raises and bonuses, even though I often procrastinate until the very last minute" before deciding that they had ADHD. That experience exists well beyond the 5% of the population that has ADHD and in my opinion is not nearly close to sufficient in the DSM-5 to suggest ADHD, particularly as even extremely severe procrastination can explained by a number of other causes.


> Please be careful about telling strangers they may have a mental disorder — just like a false positive on a medical test, it can induce anxiety and cost a lot of money to investigate.

Thanks for someone telling me that I may have this problem, I felt relieved a lot. I am not a failure and some things that many people struggle with are harder for me.

Later I got a diagnosis (I, well, procrastinated for 2 years with seeking professional help), at 33. I wish I knew that 15 years earlier, it would impact some of my career choices, and very likely - stress would have caused less harm.


On the other hand, I went over 20 years with an undiagnosed condition because nobody ever suggested to me that I might in fact have a problem that isn't me just being lazy.


Sounds a lot like my experience getting diagnosed, but with miserably failing out of university, twice.


Did you do anything about it?


Not to mention that the pressure/anxiety of being late actually makes you able to focus on the task at hand.


One source of the procrastination is that the assignment is boring and the only way you can feel alive is to slam it out under pressure.

There are other coping mechanisms you can use, although some of them are arguably worse than procrastination (eg overengineering).


I had a study partner in intro to CS. I met him in Calc, which was much more of a weedout class than the CS class was. God the homework was boring. If we got the assignment done early, we’d spend an hour or so trying to make ours go fastest or take the largest input without crashing. It rubbed the wrong way that a fib(n) implementation that blew stack at n=50 was considered acceptable. So we gamified doing a better job.

As a grownup in a hurry to reach mastery, I kept that but reduced it to 20-30 minutes. Although these days I concentrate on robustness and readability. I tell junior programmers to do the same; finish the work and then ask yourself how you could make it better in 20 minutes. Nobody is going to notice that your day long task took an extra 20 and in six months the quality of what you turn in will be much higher as you start incorporating those ideas up front.


>some of them are arguably worse than procrastination (eg overengineering).

Drinking.


Oh yes. There was that one time in my life many years ago, that I completed a pretty complex piece of a project while carefully keeping myself within Ballmer Peak. I was severely burned out back then, and discovered that a single beer was enough to kick me out of high-anxiety state for a couple hours without impacting cognitive capacity too much (in fact, I recovered cognitive capacity as anxiety tends to make it difficult to think). This trick probably saved me a couple days worth of work. Fortunately, I later changed jobs and worked in much less stressful environment; with the burnout slowly subsiding, I didn't need to use it again (I tried it a couple of times off-work as a control measure, and I discovered that the effect most likely came from anxiety reduction).

--

[0] - https://www.xkcd.com/323/; the BAC values are probably made up and the peak doesn't feel as thin or high as drawn.


Sounds about right. Other methods along those lines, besides alcoholic beverages, would be sleep deprivation, loud active music, microdosing. These are all from the bag of just-the-right-amount-of-cognitive-impairment. This is ok bag. Fun bag.

There's also bag of make-it-hards, including time constraint, software astronauting, refactoritis. I hate this one. Not fun at all.

Of course, there's also bag of do-it-rights, like discussing how you feel with your stakeholders or partners, recognizing your NFC (need for cognition; handling it with, well, cognition or exercise, either will do), meditation (or just introspection). I love this one.


Out of the fun bag, sleep deprivation and loud active music work really well for me. They've been my main coping mechanisms for the past 15 or so years (loud music didn't feel cognitively impairing, though in retrospect I recognize it may have been - but it paid it back with interest in the elevated energy levels).

> There's also bag of make-it-hards, including time constraint

Or artificial commitments, aka. making it hurt to miss the deadline, usually by committing to pay someone money (there are services like Beeminder that handle this for you). I hate that one and it almost made me broke (it was around the same time I had to use the Ballmer Peak method to finally move forward). It works for some people, but it doesn't work for me; it only ends up triggering huge, debilitating anxiety attacks.

> also bag of do-it-rights, like discussing how you feel with your stakeholders or partners

AKA. career or social suicide. Nah, not risking that. There's too good a chance that your boss never had that problem, and way too likely your replacement won't have it either.

> recognizing your NFC (need for cognition; handling it with, well, cognition or exercise, either will do)

Could you elaborate on that one? Wrt. exercise, nah, I procrastinate too much on that :/.

> meditation (or just introspection)

I keep trying the insight meditation (vipassana) ever since I learned about it on HN & LessWrong close to a decade ago. It keeps not working :/.


> AKA. career or social suicide. Nah, not risking that. There's too good a chance that your boss never had that problem, and way too likely your replacement won't have it either.

Sure, this is definitely dependant on environment. You owe it to yourself to someday work in a place where they'll go: "Sure, go hack at whatever you want for a week, get it out of the system. We've all been there." But, to note, main effect of this (for me at least) is early acknowledgment of the situation in a safe environment and a timely manner. These things can spiral out of control and shaving of a day or two in its inital stage is very helpful. Additionally, I'm frequently surprised by responses of the type "What? We didn't even have those expectations you think we had. Why are you even worried?" Don't let your mind build illusory labyrinths.

> Could you elaborate on that one? Wrt. exercise, nah, I procrastinate too much on that :/.

It's pretty well outlined on wikipedia[1], and it's simple idea - some people have a literal need to do cognitively hard things, so piled up boring stuff will drain you in various ways. An alternative route, recently proposed[2], is to wear that out via physical exercise. That route is a bit at odds with my goals in life, but I guess there's some sort of healthy balance.

> I keep trying the insight meditation (vipassana) ever since I learned about it on HN & LessWrong close to a decade ago. It keeps not working :/.

I've never studied any formal approach to it so I keep it simple - whenever I feel "noise" (anxiety, neurosis, whatever), I sit (not any strange yogi poses or whatever, nor lying down, since I'd fall asleep) in a quiet place for 5-10 minutes, and try to tune everything out. I focus on breathing and heartbeat, as those are the only things you can't really tune out in a non-handwavey way. If you're in a noisy environment, headphones with some brown noise or similar help.

Also, I always welcome recommendations for "loud active cognitively-draining music". :) Just putting on King Gizzard & The Lizard Wizard discography on album shuffle works really well for me last few months.

[1] https://en.wikipedia.org/wiki/Need_for_cognition

[2] https://news.ycombinator.com/item?id=19606141

EDIT: Oh, I forgot one more for the fun bag - fasting.


> early acknowledgment of the situation in a safe environment and a timely manner.

That could work. The problem is trust though - how do you know the environment is safe? Especially in employe-employer relations. I did worked in a receptive place once, and I regret not being slightly more open, telling about a few more of my personal quirks. Ultimately, we all hide stuff that are implementation details of the abstraction a "productive employee" is; the question is, how many of those details can leak before you start looking bad against candidates whose abstractions don't leak?

> Don't let your mind build illusory labyrinths.

Yeah, that's a good point. Seen that happen both in myself and in others.

> It's pretty well outlined on wikipedia

Oh, thanks. I didn't realize "need for cognition" is a proper name.

> Also, I always welcome recommendations for "loud active cognitively-draining music". :)

I don't have any particular recommendations; I tend to keep a collection of individual songs, not artists. I've also discovered that the most cognitively enhancing music for me is the one that "resonates" with my current mood - so if I feel sad, I listen to depressive stuff; if I feel energetic, I pick something powerful. In that latter case, quite often it's either Sabaton (or other power metal), or random Nightcore songs from YouTube, on a loop.


for music, I've tried lots of different genres and have settled on progressive house mixes as a good focusing background sound. It's complex enough to occupy me without any jarring changes or vocals that cause me to pay active attention to it. There's quite a few playlists on YouTube and I just run random ones each day, this is the one that's currently playing for me: https://www.youtube.com/watch?v=w23j_nspEy0


A better way is to slam it our under artificial deadline pressure in exchange for some reward.

But be aware that sometimes "it's too easy is an excuse for unconscientiousness inability to do work at the demanded level of precision. Often smart people have a problem where that write off their low abilities in some areas as a problem with the assignment instead of acknowledging that they lack a valuable aptitude like conscientious.


Boring doesn’t necessarily mean easy. It could mean mundane. If the outcome isn’t rewarding and the time and energy investment is high that can lead to stress. If you start narrating in your head about how unfair this is or what else you’d rather be doing then you are really sunk.

For people used to a certain intensity level, just sweeping a large enough floor could be thought of as a punishment. It’s straightforward and you can’t really speed it up much, which makes the act much harder to get through than it appears to be, creating dissonance.


I don't wait until 9am because my co-workers and my managers accept me the way I am. And I think that's how it should be.

Ultimately, you create value to the company by getting stuff done, not by trying to fit in.


I wait until 9am because I don't want to be part of a normative pressure to work all the time, especially when there are devs on the team who are junior to me and therefore might be more easily pressured.


Yep, somewhere along the way freedom of (or from) a schedule got butchered into the war on sleep.


I don't really work outside office hours much, but as a personal policy, when I do I don't commit or push (which triggers CI builds).

I don't want to build any expectation that I work outside the office, because I generally don't. I have my own things going on, and literally anything else takes priority over work outside work hours.


You might be interested to know that you can set the date of a commit arbitrarily: https://codewithhugo.com/change-the-date-of-a-git-commit/


Not all of us have that luxury. Not everyone is on Git, and some employers have in-house version control that sends email notifications at the time of the commit.

Yes, one can always schedule it with a script, but the advice still stands (I'm very much like the OP in that regard).


> some employers have in-house version control

Why would anybody do that ?


Not all programming work is done in hipster web companies following software development trends; there's a lot of employers out there who bought into proprietary VC systems a decade or more ago, and stick with them because of a combination of business needs, legacy requirements and the principle of "if it ain't broke, don't fix it".

At one of my previous jobs we had to deal with a proprietary, combined version control and time reporting system that to us, developers, felt like utter garbage. Only later on I learned that it was used by our main customer because it facilitated workflows useful in a mid-to-large corp, and some of our pain points were in fact conflicts between "the developer way" and "the business at large way".


Why are you using the word "hipster" to describe industry-standard best-of-breed best-practice tools?


The word is used to describe companies which tend to be overrepresented in tech communities compared to industry baseline, not tools.

As for "industry-standard tools", I find it hard to use this term in our industry. There's a diverse range of practices and recommendations.

Git is popular in some subset of the industry (around web in particular), but I'm hesitant in calling it an industry-standard tool. I don't know if there are estimates around the size of it, but there's plenty of proprietary 'shadow' tooling and practices hiding under the surface.


>Why would anybody do that ?

Because they have good reasons to?[1][2][3] There really is more to version control than Git.

[1]https://cacm.acm.org/magazines/2016/7/204032-why-google-stor...

[2]https://www.perforce.com/9-10-top-semiconductor-companies-us...

[3]https://code.fb.com/core-data/scaling-mercurial-at-facebook/


You can do the same thing with author information as well... had some fun with a Junior developer the other day who I was showing something to, and I just modified my commit as thought it was from him.


This is why companies should really be requiring GPG-signed commits.


Git records the committer as well as the author, so even though a simple 'git log' shows only the author (which you can set with 'git commit --author', which is very useful when you want to apply an external patch from somebody), you can show both the committer and the author with e.g. git log --format <something>. As you probably know, but in any case, many companies, and a number of open source projects do require signed commits. You can also set the date of the commit, so the person who wanted his commits to be at 09:00 - just do 'git commit --date="2019-05-22 09:00:00". Of course git logs both the commit date and the author date, internally.


> Git records the committer as well as the author, so even though a simple 'git log' shows only the author (which you can set with 'git commit --author', which is very useful when you want to apply an external patch from somebody), you can show both the committer and the author with e.g. git log --format <something>.

It’s all just data. Even if git didn’t offer the ability to edit all of these

- Author

- Committer

- Author date

- Commit date

Which by the way it does allow of course, as it should. See for example git commit-tree. https://git-scm.com/docs/git-commit-tree

Anyway, even if git itself did not provide the tools to set this information on a per-commit basis you could still of course change your ~/.gitconfig and adjust your system clock time prior to committing. Or you could edit the commit data using a third-party tool that you yourself or someone else created. Like I said, it’s all just data.

Just because a file says something doesn’t mean that what it is saying is true, basically. Same goes for a piece of software.

And signing provides limited value as well, though useful to some. But for example you still wouldn’t know that the date information was correct even if the commit was signed.

Personally though I prefer to just commit things when I do them and push them immediately. And I don’t sign my commits but I would be willing to do so if there was any reason to — for example if it was the policy of a company I worked for that we do so.


Suppose someone checks some malicious code into the repo. Without signed commits it can be very difficult to determine or prove who was responsible. That ability to audit is important to most companies, and should be important to most popular open source projects as well.


The idea that most corporate dev teams, as they exist in the real world, are sophisticated enough to glean managerial and employee performance information from their code repositories is laughable.


I code at odd hours. I'm not going to live my life being afraid of people who judge me for it. Life is short, and those people probably aren't good to have in my life anyway.

I don't buy the "normative pressure" argument. We need to encourage independent thinking. If someone is told over and over that it's his work not his schedule that matters and still feels an internal pressure to imitate others' schedules, he's not thinking independently.


The pressure isn't internal, it comes from a boss pointing to one worker's schedule to get leverage over another. I think it's responsible to keep such ammunition out of the hands of bosses.


If you have a crazed gunman for a boss, keeping one particular type of bullet away from them is an incomplete solution to the problem.


I agree, but a complete solution is often out of reach.

Also, many bosses aren't crazed gunmen, but they're still uncareful about how they communicate and wield their power. By being careful as a worker, you can reduce the accidental harm these bosses do.


Haha, I have used an Android app to schedule a text message to call in sick to work at 7AM instead of 3.


> I often procrastinate until the very last minute.

I need that pressure too. Time clocking systems don't work at all and I tend not to use them after a while. Sure, fire me, be my guest. I think you have a release to worry about...

Always shipped on time... or at least fast enough. At least you are not getting any change requests half a day before release. The day after always feels very good.


> Tip: to make your git logs look socially acceptable to co-workers and management, don't commit at 3AM Monday morning, wait until 9AM.

You mean commit locally any time, and then squash your commits into one big one with a socially acceptable timestamp before you push?


What kind of work place would be against 3am commits?

“look how dedicated Johnny is. He was working at 3am!”


Not even the workplace I just don't want to have that conversation. Because - yes you finished that up at 3am and it's working and you are happy in the moment but you know well enough that the praise is also some expectation that you are always there at 3am when there is a problem. It's also - if raised in public a big fuck you to your colleagues - look this guy works deep at night - what are you doing? Well.. I just tried to solve that fucking problem, leave me alone and leave my colleages out of it.


As the lead developer here, I would be very against that except in an emergency.

We don't currently allow remote work, and I strongly discourage overtime for salaried employees. (We don't pay overtime, but even if we did, I'd discourage it still.)

If we did allow remote work, I know my bosses would be against 3am commits because they value being able to talk to the devs and ask questions and solve problems with immediate feedback. So they aren't going to like 3am commits either, because they'd mean that the dev wasn't available during normal hours.

So my answer would be: Workplaces that value collaboration and work-life balance.


I've been thinking about your tip a lot lately.

I've started my first full remote job. The team is fairly distributed, but there is a home office. git commits are logged in slack as they happen. I've decided, that since I don't have an office to be in from a certain time and that I feel supported to work wherever and whenever I want, that I will not do this. I want to be able to start work at noon and work on collaborative work til 4pm, then live my life when most of the world is awake between 8am-noon and 4pm-8pm. I then want to work on non-collaborative projects from 8pm until I feel like I've accomplished enough for the day. Sometimes that 4am.

It's not about proving that I'm doing work, it's more about knowing that it doesn't matter when and where I do my work. I will not be chained to a desk or schedule.


I'm genuinely interested to see how this goes, do you have a blog?


No blog. it's just essentially a work from home gig. I usually end up around the house most of the day, working for an hour or 2 and doing chores or going to the gym and lunch for 2 hours during the day, grabbing lunch with peers or friends. but i feel empowered to get stuff done when i can.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: