Else most of the time, the "researching phase" is the most daunting task.
Else most of the time, the "researching phase" is the most daunting task.
You often see the suggestion to break up big tasks into smaller, baby step chunks to avoid this analysis paralysis. Doesn't help when I'm not even sure what to do yet.
I have replaced 'staring into space thinking' with taking a walk outside my office.
I think our minds evolved to track all these things and, probably in a time sensitive way more than projected future value, to prioritize them. For this reason, I think having multiple projects is the natural state as the mind is optimized for this. So maybe this is the "best way" and explains a lot of the strange ways in which putting a problem aside can help solve it.
1) Start screen recording software and dictate your thoughts as you go through the research/brainstorming phase. Don't often go back and view the recorded sessions, it's the act of recording and speaking out loud that helps.
2) Comment driven development. Stub out functions just with comments, write deeper comment blocks inside a procedure where you have a rough idea of what needs to happen. I paste in table and API definitions as comments too, to avoid having to flip to a different screen which inevitably leads to distraction. Once the program is completely laid out in comment form, and compile/runs with just "STARTING" and "STOPPING" displaying, then I start implementing what's in the comments outside-in (from highest to lowest level). I run the program frequently while doing this, each successful compile/run is a small dopamine hit. As I'm going through, remove any comments that are duplicated by code - all that should remain are comments explaining "why".
I wonder if this "comment driven" strategy has potential for applying NLP+code generation. I'm sure this is a common enough thought but I'm not aware of the research, does anyone here have pointers?
What I mean is: use NLP to extract intent (where feasible), and then offer possible implementations of the intent.
There's probably a few different methods to do this (some of my friends swear by pseudo code, others have personal white boards) so it might be worth trying a few different approaches to get over your writers block more consistently.
Since research for me usually works like traversing a tree or directed graph, I take notes in that style. Usually one concept depends on another, or one problem must be solved before another problem becomes relevant.
At any point, when I'm wondering where I need to look next, I look at the leaf nodes in my graph, rank them by how important or promising they are, and then I have a TODO list with plenty of notes for context to jog my memory.
I've found that by leaving myself those breadcrumbs, I am much more organized and fluid about "executing" on my research, and when anyone asks, I have a good idea of what I know and don't know.
Don't let your boss jump out from behind a bush and hand you a task and run. Corner them and determine together exactly what the deliverable is. Define terms of reference, get specific details and get them to name the standards, otherwise you'll be stuck trying to guess.
If you are stuck at a critical juncture, list all the options and get your boss to choose the best one (let it be the course of action you recommend).