I'm self-employed, and I'm routinely frustrated by my inability to estimate how much time a project will require of me. For example, I'll think that a programming project will require two days, but by the time I'm done with all the little unexpected details, I've spent five days on it. How can I be more accurate in my estimates?