Defeating the Blank Page: My 5-Step System for Tackling Complex Tasks
I have mentioned in a previous post that I started a new position as a postdoctoral researcher at the Max Planck Institute for Physics in Munich. The new position is different than my Ph.D. in the end-goal, the tools used, and the group diversity. But if I have learned something over the past couple of years, it is how to solve new challenges efficiently. And here I share that with you.
Let us imagine that a new task, called task A, was given to me by my boss
1- Talk about the task with someone, ideally my boss: There has to be someone who knows something about the task. I talk to them trying to understand the task, what the goal of the task is and why it is important.
2- Read about the task: After discussing it with someone, I read a little (yes only a little) about the task online and perhaps read the abstract of a paper about it. Usually I discuss this with chatbots
3- Daily mini-tasks: I have a daily reminder (set for early in the morning after arriving at work) to set the goals for the day in a google doc. The goals could be 1 goal or 3 goals. These goals are usually easy to achieve within a day. For example one goal can be "Start the new project" or later if I already started "Make a nice plot to present to the group." This goal is simple but working on it includes generating good data and organizing it in a way that's easy to explain, which also means that I have to understand it. At the end of the day I put ✅ or ❎ next to each task. This way I keep track of my mini-progress
4- Check consistency with established (and good) data or results: Let's say that I need to build a new FPGA program to record data faster then current FPGA program we have for the AMD Xilinx RFSoC4x2 board. After building the new program, I record data with the old FPGA and data with the new FPGA and I ask myself "how identical are they?" And if they are then that's great, I move forward with increasing the acquisition speeds in steps. At each step I check with the established data. If not, then I bring it back to the last working state and see why increasing the speed this time broke something. I just want to note that it's hard sometimes to define 'good'. To me, as long as the new solution preserves the integrity of the data. Meaning any introduced noise is well below the threshold that would ruin our measurement then that is 'good' enough for now. The goal of a new task isn't flawless perfection on day one; it's establishing a reliable, baseline state that doesn’t break the system, which you can then optimize later. I know this example is specific to programming, but the idea is transferrable to other projects.
5- Show the work to the boss and to colleagues: I can't emphasize how important it is to discuss the progress. Even when everything is going well, discussing it always brings up new ideas or questions that deepen my understanding of the task.