May I suggest a purely rational, evidence based take?
The trap is your belief in a linear relationship between effort and
outcome. Working harder and longer produces more productivity, right?
That's false.
As you say so yourself, your memory goes to shit. It's not just a law
of diminishing returns. For coders, past a certain point, exhaustion
leads you to start undoing your work. You are into negative
productivity.
I've pushed through all-nighters where I poured out a few thousand LOC
only to find the next day that I had broken everything and introduced
more bugs than I had time to fix. I just had to revert. An exhausted
hacker is worse than no hacker at all. You're a liability to yourself
and the project.
So, like driving when tired, realise that the urge to continue is
completely irrational, and probably based in the emotional drives of
fear or pride. It would be completely irrational for any manager to
want you to code in that state, and anyone who pushes you to is also
the idiot.
There was a time a dozen years ago when I was working alone on my (over-elaborate, uncontrollably sprawling) graphics software product. One time I wrote a multi-thousand-line refactoring of existing code into a new class and felt very happy about getting it done. The next day I discovered that I had already done the exact same work the previous week, just as a slightly differently named class.
That wasn’t an isolated memory loss experience in those days. I ordered lunch, sat down, then five minutes later just stood up and left, assuming I’d already eaten. An hour later I realized what happened.
Long-term productivity is impossible without proper rest, including regular vacations where you’re truly out of work mode preferably for a week at the minimum.
But it's not strictly false! Not without qualification.
Outcome is a sort of quadratic function of effort, so with very little effort you improve outcome a lot. Then as you go on and put more effort in, you continue to improve outcome. As you put a lot of effort in, the size of the improvement declines, but the outcome is still improved.
Then at some level of effort there's a plateau, after which additional effort really does make things worse. But that plateau is a surprising amount of effort away! When researchers talk about declining productivity with increasing effort, they mean this first derivative of outcome, not declining outcome itself.
And, to get to my point, a line is an excellent approximation of this quadratic function for most of the range of it we see normally. So it's no surprise people try to extrapolate using it.
I think you have to acknowledge the complexity of the problem to help people understand the mistake!
I am not sure about that. There are always tasks that can be done without having to think too much about it. The more time you put into them, the more of those small tasks you can complete. I wouldn't start building new features or change important parts of the code base after a 10hr day for sure, but there is a lot more that can't "break everything".
The problem is there will always be small tasks and those tasks might actually delay longer more important tasks. At some point you need to prioritize what is most important with your time.
If you’re always grinding small tasks to make time for a larger task that too will burn you out.
The point is there are lots of small tasks you can do when you're brain isn't capable of doing focused work. Certain work requires careful thinking and can only be done when you're in top shape to be done effectively. Prioritize that work when you're energetic, etc. Do the small tasks when you're not so you're high quality time get's used well.
Those tasks don't require concentration, yes, but they drain your energy supply just as well as those that do. This means that the likelihood you'll be energetic and creative tomorrow diminishes the more of them you pile up at the end of your shift.
So IMO do 2-3 of those and call it a day. You have to be in a work shape tomorrow as well.
There’s also personal aspect to that: working when your mind already fails - sucks. It feels like wandering in a deep forest only occasionally seeing the light. Or clicking randomly through windows management consoles in hope it works. Very uncomfortable, boring and demotivating, even if nothing goes wrong in a project afterwards.
This probably has no economical benefit even. I believe in most cases a second shift would do this work much quicker than an exhausted team that spends most of this time squeezing last drops of sanity at overtime rate. [laughs in corporative]
The all-nighter that results from not-wanting to stop the creative process is not the all-nighter of the deadline death march.
Deltas between effort and outcome aren't negative in the flow-state. The are positive and non-linear..that's what flow-state is.
And the hard part is that grinding out metaphorical-all-nighters might be the best way to practice achieving and maintaining flow-state. At least to the degree learning to achieve flow state directly correlates to butt-in-the-seat time.
Good words. A lot of truth. Actually I was on a self-imposed death
march, trying to achieve something my creative self couldn't deliver
to my vain ego. You can be your own worst boss sometimes. Agree that
all-nighters in a natural flow-sate are some of the best experiences.
I've personally spent too many long hours up through the night in flow state without realizing how much time had passed until I could finally recognize the fatigue. The difference between pervasive engagement in an enjoyable hobby and a "death march" isn't as cut and dry as I used to believe.
It has served as a warning to me to never take the advice of "so long as you're happy you'll be fine" literally. Now I can't stay up past midnight without waking up fatigued for hours in the morning.
I was having so much fun and feeling a sense of personal fulfillment that I don't think anything short of a physical intervention would have stopped me. Words like those in the OP's post simply glanced off my consciousness for years, as I had believed I had found a decent activity to be interested in. Some consequences can only be appreciated by experiencing them in reality, and no amount of words can effect change on some personality types.
Another problem is contempt for "walking deads". I used to work 70 hours on average per week. Did so for 3 years. I received contempt for that "lack of productivity" I was showing by working all those long hours, because my colleagues had no way of evaluating my productivity if not by some kind of self-reassuring comparison to themselves. The same thing happened with respect to code Simplicity, another fetish to put on the list. In the end, although I decided nothing, I was in charge of all the shit they had not to deal with, so of course what needs to be done and how it should be done can be easily shrinked down. Because that's what matters to the workers. The wage being fixed with respect to how much is produced the only way they can optimize is by working less and this is what's hidden behind the logos of productivity coming out of the worker's mouth. Productivity means "productivity of the wage". Ditto for simplicity. Simplicity means "ease".
In fact my colleagues were pissed by the amount of code I was outputting and by its "sophistication". One weekend I decided to do a marathon and reimplement what I was on working on. I did in that weekend what we did in 3 months for 30 times less locs. I was also made aware of secrets negotiation of some of my colleagues to raise their wage, rendered jealous by the new, super-lazy, super-paid new hire. So I left. 3 months later, I received a call from my pair-buddy, the other backend pillar in the company. He decided to left. They found replacements, but I learnt what was planned to be done in 2 weeks by the two of us took 6 months. So what did managment do ? They distributed overtime work to everybody, including the 2 frontend lead devs that did not work on Friday. They left after 6 months too. That's when I received a call from HR, offering to come back at the condition that I behave (not kidding you). Well that guy got fired eventually and replaced by a pawn from the holding company. His CFO loyal friend followed him.
> Working harder and longer produces more productivity, right?
> That's false.
Indeed it is, but don't mix up productivity and product (how ever you measure it). Productivity is like speed. Product is like distance travelled. Of course a sprinter will go faster, a marathonian however will go further. Now let's try to take a purely business-oriented view on the matter. Product doesn't matter per se, only the income it can bring does, and it varies according to productivity. Just hire more people and make them work less ? Of course this never really happens as you will hit the Mythical Month-Man wall very fast.
I agree with what you're saying but as you said "evidence based", did you mean research-based evidence or anecdotal evidence? If you meant research-based evidence, can you provide it?
We are fundamentaly biurnal, you wake up, (in whatever state you prefer), and then do your thing with a limited (daily provided) resources that are awailable to you.
People are biurnal? No, people are diurnal. People who try to be nocturnal or biurnal are fooling themselves and screwing up their lives and probably negatively affecting the lives of those around them.
There's more than a great deal of evidence and different rhythms to the contrary for your blanket statement to be in any way certain. Many people live long, very productive and healthy lives not being diurnal to great effect, even if most are diurnal.
I like the idea and sentiment of your comment. but it doesn’t line up with my experience. Sometimes I stay up really late, I make a sacrifice and I get a lot done.
Generally, if I have to pull a massive effort (an all-nighter), which only happens a few times a year, I start with writing some tests that will keep the bug introduction problem to a minimum.
It works, though the frustration level is high. But better catch the bugs early than late.
I've heard people say this for years and have never experienced it, and I've done plenty of development while tired.
Certainly the next day, with a clearer head, I can see the mistakes I couldn't before, but I've never been so off-the-rails-wrong that I literally just trashed it all and started over.
I would be interested in a poll to see if this is a common thing for people. Do I have a super power in being able to work reasonably well in less than perfect circumstances?
I don't think most people that are like this rationalize it like this and make a conscious decision to act that way. It's more of a psychological compulsive thing, reinforced by becoming a habbit.
I agree with everything except the example. Driving is probably one of the most linear progressions you could have used as an example, assuming we're going point A to point B.
No. I'm a Christian and humanist you insensitive clod :)
Really and sincerely I do not.
If there's one philosophy I could share - that's given me a truly
awesome life filled with gratitude, meaning, mostly decent health,
intimate human relationships and personal agency it would be look for
the riches you already have.
I'm sure you personally get more happiness by not doing (too much) more than necessary, but as a "Christian and humanist", aren't you asked to do more?
You can replace "being rich" with "helping others", it still applies: you can trade comfort, sanity and health for more output, whether that's money in your account or helping those in need.
If you aren't born rich, breaking out of the working class, even the top tier of it, requires significant effort and enormous luck. It's usually time and effort wasted in pursuit of something no one should want. However, if you dream of sitting atop the pyramid but you weren't born there, you better get on that grind.
The trap is your belief in a linear relationship between effort and outcome. Working harder and longer produces more productivity, right?
That's false.
As you say so yourself, your memory goes to shit. It's not just a law of diminishing returns. For coders, past a certain point, exhaustion leads you to start undoing your work. You are into negative productivity.
I've pushed through all-nighters where I poured out a few thousand LOC only to find the next day that I had broken everything and introduced more bugs than I had time to fix. I just had to revert. An exhausted hacker is worse than no hacker at all. You're a liability to yourself and the project.
So, like driving when tired, realise that the urge to continue is completely irrational, and probably based in the emotional drives of fear or pride. It would be completely irrational for any manager to want you to code in that state, and anyone who pushes you to is also the idiot.