I tend to do a lot of my problem solving laying awake in bed at night. Either I can't sleep or I wake up in the small hours of the night, and I'll chew on some problem that's been bugging me until I solve it and go back to sleep.<p>This was part of what made me want to start my own company. I'm not doing my best work until I'm so immersed in a project that my brain's working on it round the clock in the background, and I didn't want to give my full energies to developing IP for an employer that returned no loyalty.
Allow me to counterpoint. Every creative engineering profession needs interacting (not just 'talking and listening', but also observing and even acting into the user domain to understand and feel the needs and opportunities). Every solution design needs modeling and thinking and sometimes things benefit from being written down in other forms than code (even though code that is written to be understood can be infinitely better than hacks with comments and elegant interaction design hopefully obsoleted the need for a 'readme'). However, I've seen many doing those things; talking, listening, thinking, modeling and writing, day in and day out, without ever getting beyond a stack of paper.<p>Producing the system, the working code, is not something you do at the end. It is an integral part of the process. It is the place that forces you to not gloss over gaping holes or contradictions in your modeling. It forces you to be clear and complete about your supposed understanding. It forces the trade-offs rather than the sunny day 'we can have both' situations.<p>And yes, I also do very productive thinking in the shower and sauna, but at the end of the day, no matter the fantasies, the desk is our habitat.
There is no substance here at all.
Making software is still very much a desk job and author only mentions "ergonomics of thinking" without giving any concrete ideas at all.
If it is news to you that making software requires thinking then I am very worried what you have had delivered before this.
As others have mentioned the reason why developers optimize for ergonomics of coding instead of thinking is because that is what can do. Even if you do your best thinking in a lazy boy while smoking hash that is probably not optimal state for developing software.
<i>On the other hand I’ve worked on projects where talking is a prop to disguise that no-one knows what to do. Where a dozen people sit in a room and talk for an hour without saying anything and we all walk out dumber than when we walked in.</i><p>This rings very true to me. And the more annoying extension is that the "managerial types" justify their time spent on work with these meaningless bs talks, while devs are guilt tripped every time they've to explain time spent on thinking / analysis.
This text succinctly summarizes what I struggled to express to some of my colleagues. It doesn't offer a solution but it neatly highlights the problem. A lot of attention is being paid to things like keyboards, mice, software used to write code and I never understood that fetish. These are just tools, tools aren't the job.<p>Pretty much every dev I know has a history with or knows of a manager who optimized metrics that were easy to optimize (bugs closed, LOC written, code coverage numbers) instead of looking at some elusive "big picture". We recognize these typically aren't good performance metrics. The same people would agonize over the type of keyboard switches and vim configurations and boast that they can write more code faster.
Thinking is essential to software and any kind of mental tasks in general. This used to be a problem in office environments before the pandemic, since it doesn't look like work to bosses who understand work as either sitting in meetings or sitting at a desk and typing.<p><a href="https://dilbert.com/strip/2016-01-13" rel="nofollow">https://dilbert.com/strip/2016-01-13</a>
Thinking is the work - wherever or however you do it best.<p>Typing the code is an artifact of the work.<p>This is something that drives me nuts about interview questions where people want to “watch me think” - I don’t think sitting at my keyboard. I usually walk around the block or in my yard when thinking through the hard parts.
It's not landscaping, it's a fucking desk job.<p>The defining property of desk jobs is that they're not strongly tied to location or equipment to preclude doing them at a desk. So out of convenience we use desks.<p>Do you think every desk job other than software is just rote mechanical behavior that happens at desks, but only software is clever enough to need to think about what they're doing?
Let's just say I've never gotten RSI from thinking. I have an ergo keyboard and a nice office chair, just because I want to physically be able to do this job in a few years.
My University library had a basement, with desks with side panels. This was the best place to study. Later had a desk under stairs in the basement, where I programmed.<p>A very quiet place, with no distractions makes it easiest to focus. A notepad to write notes also helps.<p>But I think not seeing the Sun, and hearing the Outside world, causes one to lose track of time, and space. And lets you focus more. Why rain works.<p>Casinos take advantage of this. You typically can't see the Sun, so you concentrate on the slot machines longer. The busy carpet makes you lose orientation.<p>Going for a walk, fresh air, and being a little tired from exercise, helps you to settle down.<p>But I think the key is motivation. If your life literally depended on getting something done, you would try so much harder.
There has to be some sort of reason for what you are doing.
Meditation breaks work well for the "Thinking" part of this too. Works by the same principle as why you have aha moments in the shower or while washing dishes, i.e. no distractions and the focused activity diminishes random thoughts.
The soul of a new machine:<p>“So it’s up early the next morning for Veres. He doesn’t want any interference; he wants time alone with this bug. To Veres, debugging the machine — particularly the [Instruction Processor], the part that he helped to design — has become ‘a very personal thing.... A computer, to people who designed it — it is part of them. You can almost feel what’s wrong with it.’ This problem feels like a time bomb. But how to find it?
‘I get quite a lot of work done in the morning while taking a shower,’ says Veres. ‘Showers are kinda boring things, all things considered.’ Now in the shower, before leaving for work, he conceives a new approach.”
The article itself highlights that "Writing is thinking!" but then quicky sweeps that under the rug. The ergonomics of typing, code editors, desk, etc tools are important because they can amplify our ability to think. Of course they can also hinder us if they are not well fitted for the use and user.<p>> But how much attention do we pay to the ergonomics of thinking?<p>A lot actually. See how much effort people are willing to put to org-mode for example, and I'd say that is like 90% thinking ergonomics
Software is art.<p>The picture is in the mind. The idea, the final view, the sheer excitement of imagining the final product, all happens in the mind.<p>Then you go to the tool selecrion.<p>Some are tried and tested. Some are new. Some are always reliable. Some may break midway.<p>Same is the case with canvas, paints, etc.<p>So also with methods and techniques.<p>But the process is as rewarding as the final result.
Neuroscience has proven that exercise (even walking) is vastly important to learning. It's no surprise or coincidence that walking and talking on a lunch break with my colleagues had rather frequently produced novel insights and approaches.