Perhaps the git diff helps me visualize what's left to do.
On the other hand, if it is a complex algorithm, I draw diagrams representing the edges cases and I try to give them names before coding them.