12 ms·
I think there's also something to be said for passive processing. Sometimes I'll know I need to write some code or some function and I'll just think about it i
by i_dont_know_ 5y ago
I think there's also something to be said for passive processing.
Sometimes I'll know I need to write some code or some function and I'll just think about it in the back of my head while doing other things, sometimes for a whole day or two. Then I'll sit down and write it in like 20-30 minutes. Did I work 20-30 minutes, or have I been working for a day or two? I would say a day or two, and the 20-30 minutes was the time needed to produce the deliverable of that work.
- arthur_sav 5y agoVery common. It's hard to quantify the mental work done, so we only measure kilos of code written. I do think though that anyone that has written code should be able to understand that it's not as simple as sitting down and typing fast.
- what_is_orcas 5y ago> Did I work 20-30 minutes, or have I been working for a day or two? I would say a day or two, and the 20-30 minutes was the time needed to produce the deliverable of that work. I would say that I do this too. There's a lot of stuff I can more or less do on autopilot and stuff that requires actual attention and finesse, for lack of a better word. I feel like management thinks that I'm good at my job for all of the autopilot stuff that I can crank out, and that makes up for the time I spend implementing one of the more interesting bits. I think one of the ways that remote work changes this is that I can do other things while I think through a tricky problem; I can do dishes or walk my dog or something instead of trying to look busy in a room with 6-12 other people who are furiously typing because that's how the manager and project manager understand that work gets done.
- Freak_NL 5y agoOr just go and have a shower in the afternoon. It's the best remedy to an afternoon dip I know and one of the major benefits of working from home. It's a great place to solve problems before getting down to coding. Doing the dishes is indeed a good one too.
- giantrobot 5y agoDoing the dishes or other chores doesn't work for me at all but showers are great. When I was at Apple one of the few unalloyed good aspects of the spaceship campus were every section had showers available. I'd take a brisk walk around the spaceship and then hit a shower. It was a great way for me to avoid an afternoon slump and let me do a lot of background processing in relative peace.
- dixie_land 5y agoI root caused so many hard to debug issues in the shower! Including some obscure bug in Darwin kernel implemented in assembly. Not that I take my laptop to the shower but exactly like the parent thread mentioned, the problem is still background processing in your head.
- derekp7 5y agoThe way I explained it to my boss, is to give him a list of numbers to add up in his head and come up with a total. He looked at the list for a couple minutes, then gave me the answer (I framed the whole thing as a riddle). I then looked at him and said it looked like he wasn't working on the problem for the last couple minutes. He replied that he was thinking during that time. My reply back is "That is what I have to do the majority of the time on my projects, is think about it then spend a relatively short amount of time spitting out the answer. The problem is I also have to look busy while I'm doing it". He then saw the light.
- deleted 5y ago[deleted]
- i2shar 5y agoIf you have to explain that to your boss, you are working for the wrong person. We are in a creative field, he shouldn't have to be explained this.
- necovek 5y agoAs long as they are willing to learn, I think that's fine. I like to make parallels with sports: when I am on the court, I am so much dumber about what's going on. Suddenly, when I am on the sidelines, I can see patterns, strengths and weaknesses for each team and so forth. It's not that I was dumb while on the court, it's just that your brain is in a different mode of operation (focusing on your own performance in this particular case).
- bogeholm 5y agoSounds like you asked “how would Jesus explain this to my boss” and got an answer
- galoisscobi 5y agoThis is great! Wish our senior director would understand this. The man loves the idea of butts in seats for long hours and can’t wait to have us back in the distraction riddled office.
- ckaygusu 5y agohttps://en.m.wikipedia.org/wiki/Henri_Poincar%C3%A9 https://en.m.wikipedia.org/wiki/Henri_Poincar%C3%A9 > He never spent a long time on a problem since he believed that the subconscious would continue working on the problem while he consciously worked on another problem. This is definitely a thing. Intellectual labor just isn't physical labor.
- oceanghost 5y agoMost of the best ideas I've had in my career were in the shower before work. The problem is making that a regular occurrence.
- sq_ 5y agoFor me it's often in the shower after work. Which is a pain because then I've gotta remember them until I get out and then find a way to remember them until the next day.
- xapata 5y agoA speech to text device in the bathroom helps. Sometimes I worry I'll forget by the time I'm done showering.
- fshbbdssbbgdd 5y agoI got a good tip for this once: throw the shampoo bottle out of the shower onto the floor. It’s ideal for remembering when you need to buy more shampoo, but if the shampoo isn’t empty, it will remind you that there’s something you need reminding of.
- fernandotakai 5y agoha! my wife once asked why i was speaking english while showering. i told her that 1. i can only think in english when thinking about work and 2. saying stuff out loud helps me organize my thoughts and this is specially easy while showering because i don't really have to concentrate.
- celticninja 5y agoI agree, I used to think I was like OP, coasting in between being quite productive. One day I took a bath, ended up thinking about my ticket, got out of the bath and did the ticket in an hour. The thinking time was definitely work just not in the traditional sense. And yes I could have done the ticket without the bath, it may even have taken the same time, but the code wouldn't have been as clean and there would have been a few more commits.
- julianlam 5y agoWell, not only was the code clean, I imagine you were clean too!
- lordgrenville 5y agoNah, showering makes you clean, a bath is just marinating in your own dirt. Very pleasant though.
- jkhdigital 5y agoWhich is why in Japan, you take a (quick, purposeful) shower and then get in the bath. Those baths are exceptionally pleasant.
- mildred593 5y agoVery bad, you should take a shower after the bath, not before, so when you're out, you're clean.
- ASalazarMX 5y agoTo be fair, I've done both. By now I can roughly estimate that a task will take me one hour. If I dedicate myself to it right now, it will actually take me 2-3 hours. I can also sort of carry it around for a couple of days, and then implement it in one hour. This says two things about me: I usually underestimate the design details when estimating time, and the design takes me roughly the same time anyway.
- geekbird 5y agoThis. I will backburner a ticket for days, then when what I need to do comes together I will sit down and bang it out in an hour. It's to the point that I will deliberately review a ticket and code segment every day, even if I'm not actively working it, just to have the pieces come together in my mind and crank out the ticket. This method is not very scrum friendly, because in truth I'm actually brain-working all of my tickets at the same time, but I haven't shifted any electrons, just neurons. Sometimes, when I hit a sticking point, I go do something completely different - like read Hacker News - in order to push stuff into what I call "background processing" in my subconscious.
- jjav 5y ago> This method is not very scrum friendly, because in truth I'm actually brain-working all of my tickets at the same time, but I haven't shifted any electrons, just neurons. This really highlights why I hate agile so much. Intellectual work doesn't lead itself to reporting status on completed tickets every single day.
- wonderwonder 5y agoI absolutely hate having to do a daily stand up. I'll have my tickets done by the end of sprint, just not before that though.
- viceroyalbean 5y agoI agree that there is that implicit pressure, but really it should (as in the ideal case) be fine to just say "I've been thinking about A, B, and C" and leave it at that. That still gives you the room to say that issue C has blocker X etc if it needs to be resolved in the team.
- zoomablemind 5y ago> ...Intellectual work doesn't lead itself to reporting status on completed tickets every single day. Status is WIP until completion. As for the intellectual work, that's just outright Analysis stage. Most of dev's work is actually analysis. Sure, there's implementation, testing and such, but Analysis is almost non-stop. Anonter way to put this is Evaluation of Alternatives, Optimization of Approaches.
- mattowen_uk 5y agoAdding my voice to this one. I think a lot of work 'normal people' i.e. the PMs the non-technical management, the sales people etc. really don't get how we techies work. Because they have to do 'active' work all day long to keep on top, they think everyone is like that, where in reality we are really efficient in short bursts. I can ponder a deliverable for days and then just churn it out over a few hours, only taking breaks for coffee intake/discharge. The normals keep asking me 'how far have you got with X' during the whole period, and they don't seem like it when I say 'I'm thinking about it, but I've not done anything yet'.
- vkk8 5y agoAnd, ironically, much of the work that the "normies" do is something tech guys could to hundred times faster. It's stuff like manually copy-pasting numbers from a crappy proprietary software A to a crappy proprietary software B or entering numbers from some system to Excel while it could be done by just directly pulling the numbers from the database the system uses. Seriously, modern work is all about knowing what to do and how to do it rather than putting in a large number of hours executing a straightforward task.
- exikyut 5y agoHmmmmm, this is actually kind of interesting - perhaps that "continuous grind through criminally unoptimized UI" type of work is what actually constructs the "this is how you use a computer" mindset that these people have - because it's all they know. Developers are always about optimization and automation and tweaking and refinement, and their tools reflect this constant pursuit of efficiency that constantly transcends and questions how a job is expressed (UI, mental modeling) and completed. No other industry - ironically including technical management roles (maybe even especially so?) - seems to have this sort of focus. I even hesitantly wonder if the biggest similarity I've ever seen is with accessibility type setups with screen readers and whatnot. (Ha, that says a lot about the fundamental impedance mismatch of developer tooling!)
- Matumio 5y ago
- rektide 5y agoIt is SHOCKING beyond words to me what accepted dogma it is that the human resources/devs only work on one thing at a time, they start at the beginning, plan, write, test, & code review the thing, and then move on. It's a huge waste of human potential. Background processing is vital. Getting hit by the various silly hurdles in the path to shipping- having to go from the elation of getting something done to having to switch to an entirely different set of less fun tasks to get it shipping. Yet our processes, our industrial processes, are oriented towards assurity, towards treating us "human resources" like machines, to making us complete full units of work. It's hard for me to tell exactly where this sprung up from, how it is so deeply deeply rooted. I tell my managers outright I think it's a wasteful & outright damaging practice, but that I understand that it's the expectation, that every other company acts like fools too, not just them. I don't argue, but I am quite clear that you will get much much much less out of me when I don't have some autonomy, when I have to drag, roll, push, row, swim each rock, one at a time, from end to end. Again, I'm not sure how such a demeaning & menial form of completing single-task-at-a-time happens, especially when no one in management or upper ranks is expected to live like this. My top theory is just that it's convenient for management purposes. That company's are bad at assessing progress, that we're afraid of situations that aren't ultra-well scheduled & predictable, and that we treat programmers like cogs in a machine because we're too afraid to try for better. Creative procrastination is amazing. Not only are programmers out doing great things, but the task they're more obligated to do goes from irrelevant & stupid to something they just don't ever want to think of again. The internal pressures builds over time, even for the irrelevant everyday crap of development, until we're finally jazzed to just get it done. By procrastinating, we bank up some motivation. And we've gotten a lot of passive processing in. Productive procrastination is one well-known example, but I feel like it's just the tip of the iceberg. Having some different tasks to switch between, having a wheelhouse of obligations, allows enormous relief, allows a much higher average output to be maintained, in my view. I'm kind of in a lull of personal projects right now, because I completed some stuff, and don't have a lot of in-flight options to pick up & work between. Everything feels so slow & getting going again has been such a chore, I feel it so much. Being able to trade off, switch around, chase what feels good is a huge huge productivity increase. More than anything what amazes me is how conventional & dogmatic companies are. They seemingly all chase the same malgining evil controlling exploitation of human-resources, and not a once has a company seemed to even understand that there are trade-offs. The whole industry is exactly the same; controlling & top-down, one-at-a-time. The people who invented Amdahl's law, surprisingly, seem utterly unable to grasp it's application to humans & our motivations. We all have diverse & wide execution units, but we are treated like in-order single-stage processors. If this were just the predominant way of treating engineers/human-resources, I'd find it unfortunate, but that it is almost entirely the rule, that it is universally expected, that there are so few systems or experiments for doing anything else: the status quo is pathetic & cruel, and lacks even the basic legitimacy to have explored other ideas.
- 2-718-281-828 5y agoprocessing for one or two days to prepare productive working that takes 30 minutes sounds a bit extreme. but I get the gist and second it. I hate developers you immediately jump at any task coding right away. they usually actually get the stuff done but the solution is ugly and contrived instead of elegant and simple. that's also what makes me skeptical of devs obsessing about typing (layouts, keyboards, editors, ...) to optimize it further. as a developer I never found speed of input to be even close to a bottle neck. the bottle neck usually lack of silence and peace in a large office which I need to think!
- rightbyte 5y ago> that's also what makes me skeptical of devs obsessing about typing (layouts, keyboards, editors, ...) to optimize it further. Those things are a form of procrastination. With your points you should be sceptical for those who just go for VS Code or whatever MS sets up for them nicely in 2 minutes, not those who configure Emacs or Vim.
- mring33621 5y agoI almost got fired once for explaining this to my boss. He felt very strongly that each day of a 10 day project should mark 10% in progress. I told him that instead, you think about it, explore a few ideas, then suddenly you might be at 80%. But it's not linear.
- 2-718-281-828 5y agothe ignorance of managment regarding non-linearity of developing something is one major reason for losing motivation. it causes much confusion and misunderstandings requiring justification. it gets tiresome after a while.
- daltont 5y agoSimilar concept: If one was tasked to move a 10-ton block, 1000 yards in 10 days. You can use brute force move it 100 yards a day for 10 days or spend 5 days inventing a way to move it 1000 yards in day and get it done in 6 days.
- godelski 5y agoThat just doesn't make sense because Pareto is a well known phenomena. To the point where it has entered the common lexicon (80/20 rule) and is essential for planning how long a project should take.
- hexxrer 5y agoIt is the same way that Vilfredo Pareto is almost only known for the 80/20 rule. One of the deepest thinkers ever about society and he is known for the most boring of his ideas. Most things can be explained with this other idea of Pareto that humans are not rational but rationalizers. Most human action/thought is kind of dumb and non-rational and then we invent rational explanations after the fact. Paint a varnish of rationality after the fact on non-rational behavior in Pareto's words.
- thanatos519 5y agoRight! I find that I have to 'sleep on' most hard problems. WfH is great because I can take a nap and then get back to work. In the office I can't do that. Less hard problems need less-passive processing but are better solved on a bicycle or doing something completely unrelated.
- gyam 5y agoThis. This happens whether I enjoy the thing I am working on or not. It’s just part of the process. Also sometimes your mind needs a break. I personally cannot produce quality thoughts continuously no matter how much you force me, or I want to. I can mindlessly do physical things, but cannot code or think. I find it hard to believe there are people who can do this, if there are, they must be rare I beieve.
- p1anecrazy 5y agoThis kind of “background processing” was covered in detail in the infamous “Learning how to learn MOOC”. I would go further suggesting that for people unaware of this way of thought processing/problem solving (like OP?) peer pressure may bring something akin to impostor syndrom. This doesn’t have to be a programmer only thing IMHO. If you spend 5 hours chilling and 3 executing and everybody is happy with your performance, it may be just your way to do things. If someone next to you does the same by coding 8 hour straight - its their style, and neither is better.
- tspike 5y agoThe lack of replies accusing you of immorality, theft, sloth, etc is somewhat surprising given the reactions in the rest of the thread.
- TristanBall 5y agoRight? The OP is literally saying he slacks off then bullshits his way through meetings and that he regularly doesn't understand what's going on. Everyone else appears to be talking about time spent directly thinking about a problem - which absolutely can look exactly like you're staring into space and this magic "subconscious processing" everyone claims to do. That is far too seductive and idea, and far too ego flattering for me to trust it. "I'm so smart I solve problems in my sleep!" Oh really? But the phenomenon of solving problems quickly after a break/sleep/shower/whatever is one I recognise too. Something else I recognise is that I also jump to solutions too quickly, often wrong ones, or by something that feels quit similar, jump to the idea that I don't understand things or that I don't know how to solve a problem. Either the "wrong idea(s)" or the "no idea" are patterns of thinking that make it that much harder to see the problem a different way, or to think up new approaches. You can absolutely overcome it, but it takes a deliberate effort of will, and possibly explicit step by step techniques to do. Much easier to just put it down and have a nap or a walk or whatever. But that time isn't "subconsciously working on the problem", it's time spent letting go of you original ideas, letting those neuron interconnections to loosen up ( or whatever, not a neurologist, can you tell? ) so you can generate new ideas, obviously you haven't forgotten them.. but they have that softening distance to them now, and the no longer carry as much weight. To take in one more, completely unsubstantiated step further, maybe that what a 10x coder is: someone who can more freely move between their ideas ( naturally or via learned technique ) meaning the the need to sleep on it far less often. Or maybe they give themselves a chance to let go of there currently working on the next and the next ( which I'm sure we all do some of, or every software company would be surrounded by a cloud of Devs, walking or staring off into spec! ) But maybe to 10x engineer does that more readily? Without the the exhausting drain I know I feel jumping from deep thinking on one think to deep thinking on another? We shouldn't discount how many of the "other things" people list are either directly rejuvenation ( sleep! ) Or at least refreshing via increased bloodflow from some level of physical movement, even if it is just getting up to do the dishes. Personally I think "well rested me" is of about average intelligence, "well rested and in the zone me" is perhaps a little higher but "tired me"? Wow can that be a big drop! So.. rest, rejuvenation, letting go of mental models by directing your attention else where all seem like more likely causes than "my brain solves problems without even trying" ( Sorry tsike, kinda went of on a tangent there.. ! )
- MeinBlutIstBlau 5y agoWe're like commissioned workers of patrons who can't program. They need us to keep things going for them, but they only need that magic really a couple times a week. Maybe for like 2 - 10 hours. We're paid to be present, not to constantly churn output.
- knightofmars 5y agoHammock driven development is real. https://www.youtube.com/watch?v=f84n5oFoZBc https://www.youtube.com/watch?v=f84n5oFoZBc
- ww520 5y agoAbsolutely. Sometimes for the whole day I remove code because of dead path or rewrite part of the code because of wrong initial design. Am I adding negative productivity?
- 20after4 5y agoAt a previous job, the boss awarded praise, and "points" each week for the developer who removed the most code from production. Counted as lines of code deleted according to git. (Points were redeemable for schwag from the company shop. They were highly desirable and nearly cash equivalents). Deleting code is arguably the most valuable work you could be doing.
- frankthedog 5y agoThat can turn into code golf quickly which makes reading the code later take 2-10x longer. I like the spirit oh this but the incentives are off.
- ryanschneider 5y agoRich Hickey’s “Hammock Driven Development” talk largely agrees with this view: https://youtu.be/f84n5oFoZBc https://youtu.be/f84n5oFoZBc
- sbayeta 5y agoAwesome!
- authed 5y agoany non-physical work should be paid for 24-7?
- frays 5y agoI can attest to this. There have been times I spent 20-30 minutes understanding a new problem at 5pm, which at the time seemed like it was going to take up a significant amount of my working hours the next day. Then come back the next day and I'm able to finish the task before 10am. During the evening, the problem was solved both consciously (thinking about it on the train home) and subconsciously (whilst sleeping). I just had to produce the deliverable the next day.
- _em_ 5y agoYeah, I am kind of similar boat. I actually has opportunity to implement certain algorithms which were pivotal in launch of specific products. I spent perhaps 3-4 hours implementing the whole thing but i kept thinking about the core problem for a week, so much so that i started dreaming about it. (this dream thing happen quite often).
- kranzky 5y agoFor sure, we need to collectively recognise how much real work takes place in this mode. I once collaborated with a colleague to design and implement a data sync framework. For six weeks we chatted about it during our lunch break, while walking from the office to a Japanese takeaway and back again. We'd propose ideas and find weaknesses and flaws in them, and would spend our evenings thinking hard to come up with solutions to get around these issues. Our boss saw none of this, but it easily consumed about three weeks of person-hours (i.e. around 120 hours). One day, walking back from lunch, neither of us could find any problems with our proposed solution. We walked into the office straight into a meeting room, spend 30 minutes drawing diagrams on a whiteboard, then returned to our desks and coded up a working proof-of-concept in a couple of hours. From our boss's perspective, we had implemented a new technology in an afternoon. He's the kind of non-technical person who equates productivity with typing code into a computer. But I think more places need to equate productivity with sitting on a sofa staring into space, or going for long walks, or whatever it happens to be that works for the developer in question.
- kranzky 5y agoJust read an article about employers increasingly monitoring their WFH employees with software installed on their computers. This is the "sitting at a desk and typing" measure of productivity. How do they propose monitoring the "solving problems by thinking hard" measure of productivity?
- omarfarooq 5y agoThey can't. They have to capitulate to the idea that thinking is work. Especially in knowledge work. But then again, since thoughts are words, thinking can be translated into typing that is monitored: notes instead of code.
- kkcorps 5y agoSame. Most of my time is spent in thinking. My manager has told me though that it sometimes is not possible to quantify this time unless I create a doc where I lay down my thought process.
- berkes 5y agoIntellectual and physical work differs a lot. True. Writing a book may take years, while writing the words mere days. This, however, should not be an excuse, but a cue to get better at that 'thinking stuff'. Improve it. Train it. Learn. And with all that, strongly ask yourself if that 'backburner time' must be paid. A bricklayer needs 10+ hours off to rest his body, so he can lay bricks for another 8 hours tomorrow. Should we pay him 18 hours? My answer to both is that when I efficiently ponder and backburn ideas, it is 'work'. But when I'm binging Silicon Valley Episode 5, it is not (unless I can prove that this helps me bring the problem closer).
- lewisjoe 5y agoWhile this is true, I strongly doubt OP is talking about this case. In your example although it did look like you didn't work from the outside, but in your mind you were still thinking about the problem, technically speaking, working. The case in discussion is how we developers do just the bare minimum consciously (or unconsciously) and the fake away the rest. Even with this perspective I don't consider it wrong at all. Our developer brains can be in "the zone" for not more than 2-5 hours everyday. If we force ourselves to be in the zone more than that, we are just damaging our runway and heading towards a burnout. That said, the only thing we could do is - learn how to increase our zone hours. John carmack went to the extent of measuring his bathroom breaks as a way to extend these focus zones. While that is a bit extreme. generally as developers our antidote should be to optimize our focus zones to what fits us.
- dx034 5y agoI think passive processing is one, intuition is the other. You can solve a problem by thinking about it for hours or by once looking at it and immediately knowing a good solution. It's about experience, intelligence and probably many other factors. And that doesn't mean you'll perform well in technical interviews. They're often about specific algorithms most people would never implement themselves. Few are about the problem solving part of programming.