Sunday, July 8, 2012
Overtime is Waste of Time
I'll just lay it down for you:
Developers working overtime does not produce better software. The occasional crunch day is fine, but as soon as overtime turns into the accepted norm, things will go downhill: bugs, crappy design, complexity, no testing etc. And that's only mentioning the technical problems.
A lesson for managers and developers (myself included)
Developing software is problem solving. Solving problems requires a focused and creative mind. A tired brain loses it's ability to concentrate. It's like playing tennis with a broken racket: pointless. Quit, go home and come back fresh in the morning.
Having said that, I know that being stuck on a tricky problem and suddenly having to quit is extremely annoying, especially when you think the solution is just around the corner. My natural instinct is to stay put, work on it some more, "try a few more things" and then leave. It never works. You're not going to solve it that way. Just bite the bullet and go home, unwind from the problem and jump on it in the morning. My experience is that you will solve it almost instantly once you're back the next day. Or (as it often happens) your mind suddenly realizes there is a solid way to sidestep the issue completely.
A true story
Let me tell you about one place where overtime was the accepted norm. Even though the devs worked overtime, nothing of value was finished. Instead everything just took sooo muuuch looonger, like they had stretched the normal eight hours so they would last the entire day. Obviously, their brains were overworked, tired and completely void of creativity. As you'd suspect, it was a slumbering mess of zombie activity.
How did that happen? For starters, those who dared to leave the office at 17 got the evil eye from the boss and a snide remark. Leaving on time got you branded more or less like a traitor. The last person leaving the office in the evening was, without exception, the dev boss. I'm certain that was just to make a point of it. I remember one occasion he was wearing a t-shirt with "22 is the new 17" printed on the front. I kid you not.
Accepting overtime, on the other hand, was rewarded with fist bumps, ata boys and other signs of approval. Simply put, you had to work overtime to get accepted by the chain of command. So naturally, the programmers did that. Eventually, it fell apart. Development practically stopped due to bugs and sloppiness. People got fed up and quit. In the end I believe only the boss stayed and I bet he's still there, hacking away in the night...