Write it up as you go
This is probably an idea familiar to most researchers (and really anyone who produces written output for their job), but writing it up as you go has huge advantages over writing it up at the end. This isn't just a time-management tactic, but a thinking tool.
I learned this from feedback during my first job, but the short summary is: if you write down your results as you go, you don't yet know what's relevant or important. That leaves organic room for growth as you revisit the ideas later.
For example, let's say I'm investigating the correlation between two features A and B in my dataset. I realize that the relationship changes depending on whether C is
False. I might choose to look at the
C=True case for a while, then revisit
C=False later. If I don't write down this decision, I can forget to look at the
C=False case until I'm writing the writeup... at which point I have to go back and do more research.
All I have left to do is write it up
The problem is that writing forwards for a reader forces you to reexamine all the decisions you made. The reader probably will. You have little control over how the reader thinks; this is by design, since the reader is usually error-checking and validating that what you're saying is true.
So, write it up as you go. I don't mean produce a polished draft of the introduction first, then do research. I mean keep notes about all your decisions and what you learn. In the above case, you might do something as terse as this:
corr(A, B): - ran in "exp 20230511.ipynb" - depends on C - checking C=True case in "exp 20230511 - C_true.ipynb"
This isn't meant for anyone to read but yourself. But write it up as you go.