So, we're redoing the design of our website. The new design isn't quite ready for prime time yet, so that (semi) gratuitous link won't let you see it in all its pantone process blue glory -- Hey! Leon did a site design and it's not orange! -- but that's okay because that's just what got me thinking, it's not what I'm going to talk about.
You see, one of the services we provide is `mentoring'; helping programmers in existing teams write better code more efficiently. (So their bosses get more work done for less money, yay capitalism!) But to do that, we need to know what makes for an efficient programmer.
And I think I have an idea. Forget all the old bollocks about real hackers pulling 90 hour weeks to ship the next release. The odds are good that they'll miss that deadline because they spent so long early in the release cycle squashing the bugs that got put in whilst pulling 90 hours weeks to make the last release date.
Nope, what you should do is slow down. Enjoy your work. The Extreme Programming crowd say that, instead of saying you don't have enough time, you need to say that you have too much to do. And they're right.
The vast majority of us have maybe 8 productive programming hours a day in us. Trying to work 12 hours spreads us too thin. When you have too much to do, work out what's really necessary and what can be put off 'til later.
Make sure that the customer makes this decision. Organizations have highly paid business people who are supposed to be good at making business decisions, and highly paid programmers who are good at programming. When either of those groups of people start to make decisions outside their area of expertise they are way more likely to get it wrong. And the organization isn't getting its money's worth from either group.
I don't know about you, but I've written my best code when I was enjoying what I was doing. When I've been under the cosh for time, or when the environment I was working in was horrible, then I've turned out some awful code. And I was doing my best. Programming is a mind game. Our minds work best when we are relaxed, happy and well rested. They don't work well when we're stressed, pissed off and forcing ourselves to stay awake for another hour while we enhance the gorkulator so it'll gork felching widgets.
Of course, the trick is to convince your boss of this fact. Be bold. Stand up for yourself. Refuse to go along with the long hours culture. Good programmers are still a scarce resource, so take advantage of that. I am not telling you to hold your company to ransom. I am saying that, by insisting that you work in a good environment, you are taking responsibility for ensuring that you do the best work you can for your company.
Don't forget to keep your side of the bargain. When you convince your boss that you should only be working a 40 hour week, and he'll see better work as a result of it, then make sure you spend those 40 hours working. In fact, what are you doing reading this?
The cheesy sales pitch
Hey, why not get your boss to hire me to come along and tell him what I've just told you. Our rates are, of course, outrageous, after all office politically sensitive things often carry more weight when the person saying them is being paid a pile of cash to be clever...
You know, none of this stuff is new. We've known it for ages. But on almost every contract I've been on I've ended up under pressure to put in the hours. Usually when the company concerned is paying me a daily rate. This shouldn't sound radical, it should be common sense.