4 ms·
Yesterday I had about 5 hours of straight work within the usual 8 hour window (different from the "you only get x < 8 hours of not necessarily continuous produc
by Jach 9y ago
Yesterday I had about 5 hours of straight work within the usual 8 hour window (different from the "you only get x < 8 hours of not necessarily continuous productive work per 8 hours" some people like to claim), not even getting up from my chair once. I had to psyche myself up for it after lunch though. The reason is I had to work on finding a solution to a deep and complicated bug, and I knew it would take a long time. (I had to work on it some more today to fix some issues with what I settled on last night.) But I was able to devote my entire focus to it and put aside code reviews and doc reviews and email checking and so forth until I had a potential fix.
Most days I don't have such long periods of continuous focus. The culprit is usually multitasking. Context switching carries a cost for me. Even if the context is justified (important meeting, hammock-time to figure something out, lunch break) there's a cost. I'm somewhat jealous of people who seem to have such a minimum cost and can go even more than 8 hours grinding away and working very productively indeed, since I can taste that focus on occasion, and it'd be cool to have it always. I probably wouldn't spend most of it on work-work though.
- ryandrake 9y agoI found a super helpful skill to develop is the ability to context switch quickly. Don't be a slave to "the zone". Interruptions happen, and the person who has the discipline to require only 2-5 minutes to get back into the programming zone is more productive than the one who needs 30 minutes after his/her concentration gets broken. I've found the single biggest thing that helped me to work on context switching quickly is having a child--because kids don't give a shit if you're in the zone. They just barge in and interrupt you, and you have to deal with it because family. I mean, so you're super-productive in continuous 5 hour batches?? Great, we all are! But no business on Earth is like that. Are you also super-productive when your day is punctuated by meetings, phone calls, and open-office distractions? That environment seems to be more common in this day and age.
- Jach 9y agoI'm not a fan of the sink-or-swim approach to gaining skills because when people advocate for it they discount the probability of sinking. I know some people who had kids and tried working from home, every one of them couldn't build the skill to be as or more productive as they were before kids. And some of these people have kids that are now entering middle school, it's not like they haven't had years of practice trying to do it. But it's fine, we don't need to be highly productive let alone super productive all the time like the catfish. If you treat meetings, calls, socializing with your coworkers, etc., as part of "work" instead of distractions from "real work" (that you do best in "the zone"), then it's possible to be pretty productive like that too. My context switch time depends on what I'm switching to. I haven't figured out a good way to switch from deep coding -> meetings -> deep coding efficiently, but I can switch from code reviews -> meetings -> pinball -> meetings -> emails -> direction clarification... pretty well. It's improved with practice, sure. But what I find more useful is to plan around what type of day I'm expecting to have, then it's not that hard to be productive in the context of that day or week. Most days I don't even try doing any serious coding before the morning standup, so it's a great time to do other needed things, and depending on what the rest of the day is and what I need to prioritize right now I may or may not have some good coding sessions intermixed with other things. Days of pure zone are rare, which is why I cherish them (at least with positive usages, the bug-zone days are kind of bittersweet because things shouldn't be this hard and probably wouldn't be in a non-legacy system), but I don't need that to be productive. I don't even need to do serious coding as much as I want, a lot of work is just gluing things together and revisiting existing logic flows to make them work slightly different for some new feature. Overall my average day is productive enough that I'm overall happy enough (even if unhappy I can't code in anger as much as I want) and people in charge of judging my output seem happy enough. I think about how careerism seems to work at a lot of places, most dev roles involve more than just programming, even if programming is the single most valuable thing you could do right now, the incentives don't align with that. It's rather annoying personally. But that's probably why the Lonesome Bottom Feeder catfish is at the bottom, and not even a salaried employee but a contractor. They can make really good money, but not always, or as much as those climbing the ladder. The incentives favor the type of "productive" that goes with broad multi-tasking, directing, and a few deep dives. Even a non-catfish non-ambitious dev can do this and advance, though of course the non-bottom-feeder invasive catfishes will do better. Do it for enough years and your average depth across a broad spectrum is deep enough that it would take a while for someone fresh to reach your level with intense focus, catfish productivity or not.
- linkregister 9y agoI don't think most developers are wired to be able to do this, no matter how hard we try. You could apply this maxim to anything: "Just try really hard and practice a lot and you can run a 3-minute mile!" Most productive developers I know attend meetings and then disappear in the building to a random nook to write code. Or they show up at noon and stay till 8 so they get a few hours without interruptions.
- douche 9y agoThe dirty secret is that most of the people that can grind away for more than 8 hours in a day are producing shit that needs to be re-done by somebody that isn't grinding themselves so hard.
- Jach 9y agoYeah, that's probably the typical invasive catfish at work. It's worse when those people get promoted after fixing a fire they created, but that happens with non-grinders too, probably more correlated with political persuasion skills to push through risky and sweeping things while forcing dependence (fire fuel) by other teams. Still there are programming gods like Carmack who embrace the grind and put out good shit. It'd be fun to work on a team full of those for a while though they might not enjoy me as much when I tire of the grind.