Mitch has an interesting post (http://blogs.msdn.com/mitchl/default.aspx) that talks about ideal developer days, and he hits the nail on the head... There are no ideal developer days.... Ever. Planning and estimating using them is kidding yourself, since there is always something that keeps folks from being 100% focused on their project. It could be that you stayed up too late getting caught up on episodes of "Battlestar Galactica" from your DVR, or you had too much Halloween candy with your kids, and don't feel well. You might even be just a little under the weather. Or you could be fighting with your source control system and losing (like me today). Whatever causes less than ideal days is not important. The important thing is to not use ideal days for estimating schedules, or you will regret it later.