Overtime is something of a given in today’s software development world. The question is if that is a good or a bad thing. I have discovered that it is an extremely bad thing!
After reading some books about project and team management I have discovered that most project are managed using the “Spanish theory”. This is mentioned in the popular book Peopleware and in a compressed sense states the following:
Spanish Theory Management – Historians abstracted the Spanish Theory of Value that only a fixed amount of value existed on earth, while the English Theory held that value could be created through ingenuity and technology. While the English had an Industrial Revolution, Spain exploited the lands and Indians in the New World to move tons of gold across the ocean and achieved hyper-inflation as there was too much gold chasing too few usable goods. Spanish Theory managers dream of attaining new productivity levels through the simple mechanism of unpaid overtime by playing mind games (guilt trips, job security) with their employees.
According to this and my personal experience overtime has more negative side-effects than good ones. For a short amount of time overtime is the productivity boost that some projects need to get that corner. But today I see that overtime has become a way of work. It is not the last the resort that it should be but is the norm.
In my minds eye I like to imagine that the project is a tricked out race car and the project manager is the driver. The project manager has his finger on the NOS trigger. Every one who had played a need 4 speed game or and other race game knows that the usage of NOS will give you a boost in performance that can mean the difference of winning or loosing the race. When to use the NOS is a highly strategical question. In reality it seems that most project managers start the race with the NOS button pressed and then they act surprised that their team members burn out half way through the project.
Being an overtime addict myself I tried to not do overtime on the last project I was in (and still am at this time). To be honest I could not believe the difference that made. Just to point out some:
- The code quality went through the roof
- The bug count was close to zero
- There was actually some documentation done
- Getting into the flow was extremely easy
- My private life got better
- I was a happier person all around
- I actually produced code that I was proud to show
This got me thinking. How can I do more with higher quality in less time? Did I somehow find the holly grail of software development? The sad answer is NO, but what I have discovered was that project development can be done without sacrifising your own personal life.
I guess that the main reason why the whole project was successful is the simple fact that I enjoyed working on it! There were times where I would rather be someplace else, but those moments were few and far between. I started work at 9 am and went home at 5 pm. I fell into a daily routine that was not bad but actually benefited my work. I would get enough sleep and because I had enough time to spend with my family my personal problems diminished. Because of that I could focus my whole attention on doing something productive and not worrying about other things. There were still the usual “flow killers” around like booking hours and filling out reports but they somehow did not bother my flow. Much more than that they became a part of it.
Do not get me wrong that there was no pressure on the project. There was immense pressure, but somehow it did not result in general panic mode in the development team. Every day I was there on top of my mental faculties and the code just flowed out! Regardless of the pressure the code was delivered on time on a little before time. That gave me many little opportunities to do refactoring on the code, which made my work only easier and more productive in the long run. I do not get why many project managers fail to notice this fact?
Regardless of all the positive benefits of not doing overtime as a way of live there is the pure economical reason why not to do it. Most developers today have contracts in which overtime is not payed or is somehow compensated. For most people that means that the extra time spend at work has absolutely no economical benefit for them, but all for the company. You spend your precious time at work for virtually free while the employer reaps all the benefits. There is no cheaper labor than free labor!
While you are loosing money the company is making money. This is only fear for one party! In the time you “waste” at work you could be with your kids or working on that personal pet project or earning some extra money by doing something else. And as soon as people notice that they are clearly at an economic disadvantage the productivity breaks in drastically. Which ultimately results in a failed project or worse.
What I keep reminding myself about is that I have signed an agreement with my employer that I will sell 40 hours of my live per week for a specific amount of money (or other goods). So if I do more than 40 hours a week I expect that the employer will compensate me accordingly! And by accordingly I do not mean that the extra hours will go into my vacation time. Because if you are already doing overtime you will not be able to use that extra vacation time anyway.
The bottom line is that overtime is something that should be used only as a last resort and when that time comes and people stay in the office and play with their keyboards instead of their children then the compensation has to know in advance. If you are a good employer then the developers will all willingly help you if you are in a tight spot. If you treat your employers like cattle then do not be surprised when get limited or no support for your “business goals”.