Still stuck at the end of the day?

Have you ever found yourself staring at your monitor late in the day, with no idea what's going on? Your code is broken, your tests won't pass, you don't understand how to implement the feature... there's always something. And there's always a deadline, too, and you may be tired but if you just work one more hour maybe you'll figure it out. You can probably guess what I think of that.

Go home. Shut off your computer, stop thinking about it, and just go home.

If you've read my previous post you'll recognize the relevant principle: pay attention to your body. At the end of the day you're tired, having spent a whole day working and thinking. For simple problems what would take you two hours to solve in the evening will take you only ten minutes the next morning. As for hard problems, you probably won't be able to solve those at all without a good night's sleep.

What happens if you keep at it when tired? Two hours later you've finally solved the problem but you are now even more tired, and you've used up half your evening. Chances are you're going be tired the next day, and therefore less productive.

"But," you might argue, "my boss! They said this had to ship today!" To which I say: if a cat laid eggs it would be a hen. Just because they want something to happen doesn't mean it's possible. If it really is an emergency you can try to push through and pay the cost in efficiency. The fact that it's important does not guarantee success; the odds are still against you. And, honestly, it's almost never a real emergency.

There's almost a century of evidence suggesting that on average worker output is maximized with a 40-hour work week. Your personal limits might be higher or lower, but if you're going to do your job effectively you need to stay below that limit. So go home, take a break, and come back refreshed the next day. And if your employer is deliberately reducing your efficiency by requiring long hours? Then maybe it's time to look for a new job.

Got any comments? Send me an email!

You shouldn't have to work evenings or weekends to succeed as a software engineer. Get to a better place with the Programmer's Guide to a Sane Workweek.