I always have my best ideas while I shower lmao
Talking, Typing, Thinking: Software Is Not a Desk Job
31–40 of 78 posts
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#32Alright -- how do you improve the ergonomics of thinking?
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#33There 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…
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#34This 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.
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#35I always have my best ideas while I shower lmao
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.
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#36Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#37Producing 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.
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#38Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#39A 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.
Re: Talking, Typing, Thinking: Software Is Not a Desk Job
#40Alright -- how do you improve the ergonomics of thinking?
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.