One thing I find helpful is good source control, with mandatory commenting on change submissions. It helps me break down my changes into small, useful chunks, and helps me write comments to go with the code changes.