We know there is a maximum number of hours that a programmer can really be 'effective' in a day. Human mind has a limited capacity to work at a stretch, more so when the work is creative in nature. There is certainly variation per programmer but not much. There have been studies which evaluated how and when were most of the bugs were introduced in the product and significant percentage of them were when progarmmers were made to work extra/long hours.
I have even seen experienced programmers making mistakes in code check-in and standard repetitive procedures when they were working overtime. As Peopleware writes "when you make your programmers work overtime, they dont work harder, they just work faster".
So folks, what do you think, in a normal working day assuming he is taking all the coffee breaks in the day regularly, should be the maximum number of hours that a programmer should be working (or made to work)?