Tip: to make your git logs look socially acceptable to co-workers and management, don't commit at 3AM Monday morning, wait until 9AM.
Tip: to make your git logs look socially acceptable to co-workers and management, don't commit at 3AM Monday morning, wait until 9AM.
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.
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.
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.
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.
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.
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.
TLDR it is a true disorder, it is over-diagnosed but that does not make it any less a chemical disorder of the brain.
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.
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.
There are other coping mechanisms you can use, although some of them are arguably worse than procrastination (eg overengineering).
Drinking.
--
[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.
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.
> 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 :/.
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.
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.
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.
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.
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.
Ultimately, you create value to the company by getting stuff done, not by trying to fit in.
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.
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.
Yes, one can always schedule it with a script, but the advice still stands (I'm very much like the OP in that regard).
Why would anybody do that ?
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".
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.
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/
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.
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.
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.
You mean commit locally any time, and then squash your commits into one big one with a socially acceptable timestamp before you push?
“look how dedicated Johnny is. He was working at 3am!”
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 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.