Normally, a process that involves intensive iterations of the following isn't what most folks would consider rewarding:
- Scratch out a to-do list that includes a time estimate for each item.
- Follow up on a hunch that an item might require more work (either upstream or downstream in the process).
- Find out that yes, not only was your hunch correct, but you also forgot to take something else into account, which leads to another hunch.
- Repeat steps 2 and 3 as necessary.
- Revise the to-do list accordingly.
But I actually kind of like it. Because that's when I'm writing up the initial scope of work and the time-line for a shiny new project. It's an optimistic time. If you're sentimentally attached to the code-base, all the poking around can even feel like a reunion of sorts. And it's the only time you can fool yourself that your glorified to-do list and reality are one and the same thing. FWIW: Recognize that it's an illusion, but do enjoy it nevertheless.