Hacker News new | ask | show | jobs
Talking, Typing, Thinking: Software Is Not a Desk Job (daniel.fone.net.nz)
166 points by danielfone 2069 days ago
23 comments

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.

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.

For me too. I'm far less effective when the problem isn't taking over my whole brain. And when I have two problems going on at once it causes large amounts of stress. So if I'm working on something that isn't aligned with my actual goals - then I have a mind that is constantly flip flopping between the task I'm supposed to be doing, my work, and the task I really want to do. So I've spent my working life intermittently working on the programming problem at hand and wandering off into 'thinking space' to work on the intellectual problem I'm actually interested in.

In those rare periods where I actually want to work on what I'm supposed to be working on - maybe a couple of times a year - my productivity literally triples.

It might be the only time in the day where you are idle and undistracted. Try going on a walk, it achieves the same effect.

Walking home from work helped a lot with that and also with signing off at the end of the day.

Yes to night thinking. Once I was involved in hunting down a tricky bug. We spent days and weeks trying various things. One night I woke up, not with a clear solution, but three new things to try. Tested the first one, and it worked. Told my boss that it had come to me while sleeping, and he told me to charge at least six hours for productive sleeping.
Yeah! See also "Hare Brain, Tortoise Mind".
This.

I'm reminded of a thought along the lines of "never go to sleep without giving your subconscious something to work on for you".

Precisely the same reason I started my company 15 years ago. That, and wanting to work from home. It was a different world back then.
Now how are you planning to return loyalty to the employees whom you’ve hired who work the same way as you?
Initially, by paying them properly and respecting the work that they do. Down the track, still figuring it out but probably some kind of employee stock program combined with a mini-startup-incubator system for when employees come up with new product ideas and want more independence.

But simply not telling employees who've saved my bacon multiple times that they're expected to take a significant pay cut while working unlimited uncompensated overtime with unlimited uncompensated travel would be a good start. (The guy who took the devil's bargain I turned down worked 400 hours overtime in the first four months, I absolutely made the right choice.)

I like these ideas. If you get this started, the mini-startup-incubator system for example, it'd be interested to read about. Maybe if you write a blog post or something?

What if you create a people-to-notify list, in case you write such a blog post in the future? Then please add me :- ) (email in my profile)

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.

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.

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.

> the desk is our habitat

Well put. I agree this is the reality, fantasies aside. No doubt many of us have very productive and effective careers without much leaving the desk. But I like to think that there is fertile ground beyond our natural habitat too, and some of us (like myself) need the encouragement to explore it. At the end of the day though, we'll still need to return to our desk habitat and deliver what we set out to.

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.
Grinding out web apps is a desk job. If you're lucky enough to have one of the software development jobs which involves pushing the boundaries, a lot more time is spent thinking, planning and problem solving than typing.
Bingo. It's like saying you want to be a painter, but then get stuck painting walls for a living. You're still painting, but it's not the same. Unless painting walls is your thing; that's cool too.
This is a perfect analogy.
You are still doing most if not all of that at your desk and probably writing it into some kind of document to share with your team, stakeholders, whoever.

But you can easily convert me be telling me about these "ergonomics of thinking". How does one make thinking more ergonomic?

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.

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.

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.

If you're going to spend a significant portion of each day at a computer, I can't understand why you wouldn't get a keyboard and mouse you are really comfortable with. It is not a 'fetish' (I'm sure there are some people that will fetish over it, rule 34 etc., but not enough that it even deserves mentioning).

I've never ever in my long career heard anyone claim that ' These cherry red's will improve my code by 10%'. To then draw a parallel to bad management metrics seems to me a bit of a stretch.

I am one of those, with mechanical keyboard and high quality mouse (MX Master 2S). I have to say that after buying a good mouse I don't deal with random disconnects of a mouse, of a cord in the way, mouse responding poorly on some surface where I have to work and an awesome way to scroll quickly with that special scroll wheel that MX Master has. It just works and I can concentrate on work. For the keyboard it feels so much better to feel the response of the keyboard, I enjoy typing on it and as I spend most of my day typing, it is quite important for me to feel right. I would compare this to having more expensive comfortable good looking clothes instead of some itchy, not well fitting mediocre looking clothes. They cover you the same, but you feel so much better in the former.
As someone who wholeheartedly agrees with your philosophy of focusing on the big picture, I'd like to add that being pedantic (passionate) about one's tools is not necessarily a bad thing - provided said obsession is not a hindrance to one's output (and indeed, their focus on the big picture).
Most code is a liability, not an asset. Rewarding LoC added to a project is like measuring currency's value by weighing it -- not knowing if it's a sack of pennies or stacks of $100 bills.
I agree. I know people that spend hundreds on keyboards, for example. I also think the debates about vim vs IDEs falls into this same category. It's just a tool. I really don't type all that much as a percentage of my work day.
I've got a Kinesis Advantage II, so one of those several hundred dollar types.

I know it's "just a tool", but I can't help but feel a connection to it, like people often feel for their vehicle. I think back to the things I built with it the same way one might reminisce about that one great road trip. Keyboards are the bridge between the physical and virtual realms. I understand the desire to have one that's truly your own.

Considering that it lasts for years and you use it for hours each day, it's easy to justify $350. I spend a lot that much on things I've used a lot less
People spend hundreds at a restaurant for one fancy meal. Why would it be weird that they spend a hundred on a thing they'll be using 8 hours or more a day for the next few years?
I use a fully featured IDE precisely because it lets me spend LESS time at my desk.
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.

https://dilbert.com/strip/2016-01-13

Thinking is the work - wherever or however you do it best.

Typing the code is an artifact of the work.

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.

We have a generation of management that doesn't understand this because a lot of their work didn't involve the intersection of technical and creative thinking, nor do they understand technology.

Some of my best work occurs in the shower, laying in bed, in the restroom, browsing articles that generate ideas, having a casual chat, etc. but if I'm not pounding code or diagrams out at a certain velocity or sitting in meetings, someone who doesn't understand my job will wonder exactly what I'm getting paid for.

For a country so obsessed with migrating to IP based economics, we have a business culture that seems to understand nothing about intellectual work or want to play ignorant to slave drive more efficiency out of the workforce.

Yes, I do bill time I'm thinking about your project while I'm the shower. It may not be tangible to you but your work is occupying my mind and you're getting some of my best thoughts.

We need business culture and labor laws to shift to support this, the issue is, the intangible nature of it makes businesses cringe because it's difficult to quantity and know they're not being cheated, yet they sell the very same intangibles to consumers regularly set at arbitrary price points and that's perfectly fine.

It's not landscaping, it's a fucking desk job.

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.

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?

Interestingly, there are tons of academic "desk jobs" that have a much higher percentage of "not sitting at a computer/desk" work, and I don't mean that in the sense of "not needing to think".

But I know, that's not what you meant, but I still don't see myself needing to get up for any reason (at least without in-person meetings) whereas others do that a lot :P

> Do you think every desk job other than software is just rote mechanical behavior that happens at desks

Well, certainly a lot of it. Data entry, check processing, etc. These are the jobs software is doing away with specifically because it is clever.

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.
I always have my best ideas while I shower lmao
In the Netherlands there is this concept of "niksen", meaning, to do nothing.

https://time.com/5622094/what-is-niksen/

Some of my most complicated problems were solved while I was at the gym or hanging out with my dog in the park. It's nice to just have peace to think.
I'm in the same boat. I sit down and take hour-long showers to think through anything important. I will probably build a sauna at my next house.
My sauna is my absolute favorite place to think through anything complex or difficult. Careful not to burn yourself if you take a whiteboard in there!
Nothing can beat whiteboarding on shower glass properly fogged up after 30 mins in the shower.
Some of my biggest breakthroughs come during my train ride/walk home from work. Unfortunately I don't have that anymore due to WFH policies.
Who says you can't take a walk or ride a train just for the fun of it while you WFH? It will be as pointels as before or maybe more fun, who knows.
It might be the only time in the day where you are idle and undistracted. Try going on a walk, it achieves the same effect. You can also just sit in a quiet place with a notebook. No music, no podcasts, just you and your thoughts.
WC here, but under one condition: no smartphone brought in.
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.

A very quiet place, with no distractions makes it easiest to focus. A notepad to write notes also helps.

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.

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.

Going for a walk, fresh air, and being a little tired from exercise, helps you to settle down.

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.

Well said. Balance is key. Deep work in a quiet, suitable lit, and well ventilated cave. With intermittent breaks in the vibrant outdoors surrounded by trees, hills, and seas.
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:

“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.

> But how much attention do we pay to the ergonomics of thinking?

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

Alright -- how do you improve the ergonomics of thinking?
I like to exhaust my mind by exercising. I also like to think during mundane chore tasks like washing the dishes.
Fresh air in a room (CO2 levels), clean desk and computer desktop, adjust noise levels, offload non-essential thoughts and ideas onto paper, keep any other distraction levels down too.
This is the question to dwell on I think. I don't know if there are mental ergonomics that apply universally, or even ones that generalise well. For me, I recognise that I think well when I'm physically engaged in some other non-cognitive task, like walking, running, showering, etc.

Another key factor is eliminating the risk of interruptions. I know when I'm at my desk I'm likely to get interrupted, but times and spaces that are interruption free seem to encourage the deepest thought.

I started walking for at least 30 minutes every morning before work, and it has become a habit during this pandemic. I realized that the best ideas of solving problems came from this little exercise. Subsequently, I’ve learned to start tapping away on my phone so I can capture these ideas before I lose them since there are too many to remember well.
Go for a walk.
They didn't call it the peripatetic school for nothing. There are also cases of patients with speech aphasia who can speak while walking, but can't while at rest; it turns out that brain structures for speech and locomotion are interrelated.
Did those patients every try sprinting? Breakthroughs await.
I suspect this varies widely from person-to-person, but I'll share things that I find effective.

1. Create space for thinking.

Block off chunks of time. Snooze notifications. Close sources of distraction.

Set a timer/alarm so that I don't need to watch the clock. Leave a buffer between that alarm and whatever my next commitment is to wrap up/conclude.

Create a place where I capture my thinking. This could be a whiteboard, a piece of paper, a text editor, etc. I avoid nice notebooks because thinking involves writing down lots of unpolished things, starting over occasionally, etc. and I just can't bring myself to do that with a nice notebook.

2. Focus.

Pick a topic/question/hypothesis/whatever. Set up a "parking lot" for interesting things that occur to me that I don't want to get distracted with.

Sometimes it's hard to articulate what the topic is. In that case, I do some basic mind mapping of related terms/topics/whatever and then draw a box around the area I'm focus on.

Occasionally look back at the topic and make sure that's what I'm actually thinking about.

3. Work in order.

Think about the problem first, in detail, before thinking about solutions. Similar to the above, stick any inklings of potential solutions in a parking lot. This includes considering the characteristics/qualities of a good solution; this helps me avoid getting attached to any initial seemingly-elegant solutions that don't actually have the qualities I think are important (anchoring is a real thing, even if you're aware of it).

When considering the problem or solution, I try to brainstorm ideas, then organize those ideas into a "space" (either problem space or a solution space), and then figure out the key "dimensions" of that space.

Identify the key questions that narrow (e.g., bisect) that space. Focus on those, versus getting bogged down in details of an option that may turn out not to be relevant. Often, these become "next steps".

4. Separate thinking from producing.

Separate writing-as-a-way-to-think from writing-as-a-way-to-communicate. I can't do both at the same time effectively; I end prioritizing clarity over substance. Similarly, I struggle to rapidly produce useful proof-of-concept code unless I promise myself it's going to get thrown away. Readability, maintainability, accuracy, etc. are all hugely important, but not for the first stages of thinking.

Once I've finished thinking, then I can write an actual document for others to consume.

whiteboard and notebook. 3D printer.
My best thinking is done at a desk, with a pen and a notebook.
My best thinking is done while my legs are in motion. Walking and pacing is the best. If I'm confined to a desk, my legs and arms start going crazy. Can't avoid shaking my leg.
For whatever weird reason, pacing on my toes with a spring in my step unlocks my "overdrive" thinking mode (having systematic, "hyperlinked" conversations on complex subjects). Fidgeting with my hands or something is similar, but not as conducive.

It actually is a boon in lectures or physical presentations (people find the motions engaging), but it's usually distracting enough in problem-solving meetings with peers, that I'll avoid it in those situations.

My favorite part about working remote during COVID has been that I can finally do this during normal meetings, and nobody has to be distracted by it! :)

Fascinating neurology. I achieve the same articulacy (having systematic, "hyperlinked" conversations on complex subjects) when I close my eyes; I suspect it frees up resources which are in turn devoted to verbal communication. But my Neurologist friends suggest the brain isn't wired this way - that these are two independent systems whose resources cannot be shared that way.

Regardless, this too lends itself well to Covid-induced remote meetings where video isn't a priority.

Similar here. Especially when I'm at "information overload" point, the best move is to go and take a walk around the (house, office, etc) block.
Yeah, there's something to be said for good old pen & paper. Not to mention, it's frequently handy to have a REPL around, just to poke at existing code, or to do a quick calculation.
It is though.
Software is art.

The picture is in the mind. The idea, the final view, the sheer excitement of imagining the final product, all happens in the mind.

Then you go to the tool selecrion.

Some are tried and tested. Some are new. Some are always reliable. Some may break midway.

Same is the case with canvas, paints, etc.

So also with methods and techniques.

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.
The ultimate thinking aids I need is a pen and a notebook. My brain works differently when typing on a keyboard. Basically it stops
Manage your glucose levels. It’s not just for diabetics. What you eat (and when) is a large part of it, and cardio is the rest.
Sounds exactly like a desk job to me?
Hot tub is good too..