I don't understand how software companies schedule jobs at all. Anything a programmer knows how to do, she automates. By definition, the remaining work involves flailing desperately across a sea of poor documentation and broken dreams, wearing the cement shoes of our own ignorance.
This summer I did a short contract, for which I had to track my time. Here's a log excerpt for a typical 5 minute task:
8:00 - try easy straightforward thing that will definitely work in less than 5 minutes 8:03 - wtf 8:04 - google 8:18 - try stack overflow solution that worked for 687 other people 8:20 - WTF 8:26 - reboot server 8:31 - google 8:38 - reinstall python 8:53 - read documentation of all software involved in easy straightforward thing 10:18 - reinstall grub 11:27 - read source code of all software involved in easy straightforward thing 16:87 - WHY IS THIS HAPPENING TO ME 16:87 ISN'T EVEN A REAL TIME 1:32 - try easy thing that I tried at 8:00 1:33 - it worked. W. Tf. 1:34 - sooo... how many hours should I bill for this?