I personally use more or less 3 stages. 1. whiteboard and marker - explore ideas, big-picture thinking, fast iterations. 2. paper notebook - things that emerged from point 1 are more precisely recorded into a paper notebook. Things go much slower here, especially because the eraser or the paper burns out quite quickly and there is no point to keep pointless notes. The structure of the paper is quite important as well. I noticed blank paper does not work that well and I spent more space there with less structure. Linked paper is also not good. Square paper is better. But the best one for me is dotted paper. Ideal compromise between structure and freedom. 3. everything that survives stage 2 goes to real code and git logs. Here the structure is maximal. Keeping notes in the code is of course good way as well as extensive git comments.