> My conclusions after observing a ton of people in technical and nontechnical jobs is that beyond working 20-25 hours a week, having people do more is useless...
I'm not so sure about this. I was working in a remote "full-stack" (but really 90% front-end role) for 14 months from the start of January 2021 to the end of February 2022. I tracked my hours religiously the entire time I was employed there (not required, but just for my own sake). I had a spreadsheet containing the date, start/end times (rounded to the nearest quarter on an hour), task name, and notes.
When I left the company, my team lead thought I was one of the hardest working people he had ever worked with. He thought I had to be working 60-hour weeks to be doing what I was doing. I showed him the spreadsheet and calculated the average hours worked per week - came out somewhere between 38~39 hours.
My role wasn't a senior one so, for the most part, the vast majority hours were spent coding, but of course some was spent in meetings as well. But these were all real hours of real time spent working. It was all very doable and not useless time spent futzing around (I would also stop tracking my time for any break I took - no exceptions).
Granted, I think being the type of person that acclimates well to remote work made this all doable. I would not have been this productive in office.
Where these discussions trip up is different kinds of programming tasks vary in how mentality draining they are.
Some days I can spend 10 long hours working through straightforward problems and come home energized. Other days I mentally check out after spending 3-4 hours beating my head against a really difficult problem then go home and have little desire to do anything but zone out and recover.
Funnily enough, I find myself the exact opposite. Give me a really hard engaging problem and I can work 16 hours and barely realize any time has passed, but spending even 1-2 hours on something rote saps my energy for the entire day. My tolerant is even lower for the particularly challenging combination of tasks that are both uninteresting but also tedious.
I don’t think we are talking about the same kind of difficult vs straightforward problems.
Think professional chess players. While prepping they can spend very long hours playing/studding high level chess but tournaments are another level. Challenging is fun, the limits of human ability are always stressful. People can run for 11 hours in an ultra marathon but they can’t do it at 13+ mph pace of a half marathon.
Exactly. To me the difference is in scope, familiarity, and stress.
While I'm doing the task:
1) Do I have to hold 15 interdependencies in my head?
2) Is this something I did a million times in the past and do I already know exactly what the failure modes look like?
3) Is this something high-stress, e.g., is this the big project that's supposed to make my team look good or net me a promotion?
Wiring in a UI for a sophisticated CRUD can take 10 hours but it doesn't _really_ have that many interfaces, I've done it a million times, and nobody getes excited about it. It's just something you do.
Building a billing pipeline for a product is something I've never done before, is very-high-stakes for the business, and can go wrong in a bazillion ways, many of which are not my fault. There's no way I can imagine getting more than an hour or two of work on this per day.
rote work is not what was talked about though, yes rote is boring and tiring, a hard engaging problem (engaging meaning something you are interested in I take it) can keep one occupied. This is what I describe as the artistic personality type in programming, doing great impressive work when interested, awful crap work when not interested.
but what about a hard problem that you do not make any progress on and you are sure what you did should solve it and what is wrong, why is it not working? You can't say it's uninteresting, but it is debilitating.
There’s a thing in the wedding photography gig called a wedding hangover. Basically most of us are absolutely dead the next day after “just” an 8-12 hour wedding.
It seems stupid to a lot of people, but that many hours being hyper vigilant and stressed wrecks you. I did landscaping work as a teen on very hot days and that’s nothing compared to a wedding.
I concur. I shot a couple weddings and was absolutely burnt out at the end. Lots of stress; being in the right place at the right time with the right gear set to the right settings with all the expectations of the bride and groom and family.
I'm afraid that in my case it never got easier - maybe the opposite, actually. As you get better you expect more from yourself and your clients do as well.
Part of it in my case may be the fact I'm an introvert and just being "on" around so many people is tiring.
That's fine but many people can't, and don't, do this. Most people I've worked with have varying degrees of how long they can pay attention and how much they can get done in a day.
It's also not just about quantity buy quality. I'm certainly not suggesting that you were doing subpar work or anything, just that there is a spectrum there. For example I had a teammate who made incredibly disruptive and positive changes to how and what my team worked on. Yet he would also arrive at work with barely a second to spare before standup and most days he would leave _at least_ an hour early. Some days he was clearly not doing much work and even pretty brazen about it if confronted about it (he wasn't a dick about it just be like, "Oh, I'm just trying to look busy"). When he did work (which was more often than I'm making it seem), he was very serious and focused about it and would put in extra time when he was really into what he was working on (this of course was not to make up all the leaving early, haha).
I feel like frontend work has some unique characteristics as opposed to hardcore backend one, at least for me. I feel like the parts of the brain that deal with visual and the analytical are not overlapping much so if I alternate between the two I can do a lot more hours of continuing work, resting one while the other centre is busy. Definitely can't do that doing hard algorithmic work, where I would clock out in just a few hours.
But I think there is something else though - frontend work is usually less abstracted and more menial - a lot of repeating various tasks, moving stuff around, fine tuning it by eye etc.
When I encounter something like this on the backend I would step back and spend time actually automating that with a function/library/package/framework and only then come back to the task at hand. Thus my time is usually more "concentrated" with making decisions, logic and calculations.
But frontends are usually so vast and complex pieces of software that its harder for me to abstract and automate away ideas, and its easier to just plow away through some visual task rather than step back, distil the logic into an abstraction and then go and use that abstraction effectively. That does happen but at least for me a lot less often than backend logic.
I would aim to distil the backend code down to its business logic and almost nothing else where possible, grinding away replication, but I (and people I've tended to work with it seems) don't seem to strive for that on the frontend for some reason, at least not in the same degree.
Which ultimately makes this environment quite a lot less mentally challenging to work in. You can "zone out" doing something and let muscle memory do its thing, whereas if I ever start to feel that working on the backend code, I have an alarm in my mind shouting "something's wrong! there's a missing abstraction!"
A trick I've used for 20+ years that I think helps me put in ~8 hours of real work per day is to reserve some easy tasks for "after lunch work". It doesn't have to be literally after lunch, but whenever your brain is tired or doesn't want to try too hard. That's when you write a couple of the boring tests or do some easy refactoring. When you're in that kind of mood, doing those kinds of familiar low-friction tasks is relaxing and refreshing. Pretty soon you're ready for something harder. And it's a way to fit in the "hygiene" jobs that are easy to neglect. It helps to keep a little list in a text file somewhere, so you don't have to go searching for them.
> It was all very doable and not useless time spent futzing around (I would also stop tracking my time for any break I took - no exceptions).
I have a similar experience working remotely. I can be productive 40+ hours a week without getting drained.
But this includes making rather long breaks between blocks of work. Usually this ends up in blocks of ~2-3hours with breaks of ~1hour in between. Although this works out my end of work is rather late (typically I work from 8am to 7pm) which leaves little time to do private things.
So in conclusion, although this works out I am looking into reducing my work hours to 30 hours per week to have a bit more time for myself.
I'm somewhat similar, except that I use those breaks to do private things, like spending time with others, getting a workout in, doing chores, etc.
As a result I have much less useless idle time compared to working in an office and my days feel like there's so much more time in them. When it's 7pm for me there's nothing important left to do, whereas with an office job I would probably have to cram a dozen things into the next three hours before 10pm.
Also worked more than 40 hrs full concentration work for few weeks, but that soon burned me out. Now I can't do that more than a day and don't ever want in future.
> I would also stop tracking my time for any break I took - no exceptions
Depending on how granular your tracking was, that may be the trick. It is possible that you did not count in the time needed to recover and transition time. Let say that a task took 1.5h to complete, but you didn't count in 15 minutes you needed in between to relax and gather thought or perhaps you didn't count in another 15 minutes that you needed between two separate tasks. Can you elaborate this?
I find it depends heavily onto the task. Some let's say "organizational" work (moving stuff around, adding new machines to cluster etcetera) that just requires to be done but not "hard"? Can do for hours, will get a bit slower just coz of boredom. So the first 4 hours are still more effective than next 4 hours but not as much so, especially when I take break in the middle (bless WFH)
Programming or designing something complex to program ? Way shorter. So I usually mix and match
I'm not so sure about this. I was working in a remote "full-stack" (but really 90% front-end role) for 14 months from the start of January 2021 to the end of February 2022. I tracked my hours religiously the entire time I was employed there (not required, but just for my own sake). I had a spreadsheet containing the date, start/end times (rounded to the nearest quarter on an hour), task name, and notes.
When I left the company, my team lead thought I was one of the hardest working people he had ever worked with. He thought I had to be working 60-hour weeks to be doing what I was doing. I showed him the spreadsheet and calculated the average hours worked per week - came out somewhere between 38~39 hours.
My role wasn't a senior one so, for the most part, the vast majority hours were spent coding, but of course some was spent in meetings as well. But these were all real hours of real time spent working. It was all very doable and not useless time spent futzing around (I would also stop tracking my time for any break I took - no exceptions).
Granted, I think being the type of person that acclimates well to remote work made this all doable. I would not have been this productive in office.