4 ms·
Dissect and vivisect it. I turn a new-to-me codebase into a literate program using org-mode, creating all the links I need and documenting as I go (since most
by Jtsummers 4y ago
Dissect and vivisect it.
I turn a new-to-me codebase into a literate program using org-mode, creating all the links I need and documenting as I go (since most systems are grossly underdocumented). Writing tests and using a debugger/tracer/whatever to follow the executable's flow. I have git ignore the .org files and periodically tangle the source files to ensure I haven't introduced unintended changes (as seen using git diff). The org files are for me, and I turn them into documentation for other people if the whole team is new to a system (like when it transfers from one org to another for whatever reason).
I don't think there's really any way to shorten the curve, but this has the effect of focusing my efforts at understanding. Previously I'd just poke about haphazardly, turns out that's too unfocused to be effective for me. It leads to a narrow understanding of the system instead of the desired broad understanding of it.