I have started a new practice and it is really working out great!!! I am using compiler errors as my means of knowing where I left off on a certain task. For example, it is 4:45, and my wife is cooking a mean meal (by "mean", I am saying that if I don't get home on time, then she is going to be very mean to me for the rest of the night). I don't have time to fix all of the compiler errors so I just check it in to version control. That way, when I come back to work in the morning, or after the weekend, I know just where I need to start again.
The best part of this new process, is that none of my co-workers mind. At all. They don't care one bit. They actually do not think that it impedes on our Test Driven Development practices or our Continuous Integration Builds......amazing, eh?
How am I getting away with this new process of mine? If you haven't guessed it by now, it is because I am using Git. My checkins that I do where things don't compile, are only checked in locally to a branch on my computer. The rest of the team doesn't see these compiler errors, and therefore, they are never affected.
Just one more reason why you should look at distributed version control - no more "mean" dinners for me.