Working overtime is not the nature of software development; however, overtime is the result of poor planning. Poor planning seems to be the nature of software development. Best in class companies do not work overtime because best in class companies are good at planning.
One of the primary reasons for working overtime is that the project was not estimated correctly to begin with. I was working with a CIO, and he told me an interesting story. He came from the business side and had no software development experience. It seemed to him every project required a lot of overtime at the very end of the project. At the conclusion of each project he would ask the software development managers, “Instead of working a lot of overtime at the end of the project, why not work a little overtime throughout the entire life of the project?” The answer is that they did not understand what needed to be done until the end of the project.
Another major issue in the software world is consistently working overtime. Let’s assume there is a need to work 10 hours overtime per week; there is no slack time at all. In other words, all your time is spent working on today’s problems. Who, exactly, is worried about the future? If all time is spent thinking about today’s problems, then the situation is only going to get worse. Applications will grow and the growth will not be planned. The situation will continue to get worse and worse.
Working overtime decreases morale of an organization and this hurts productivity. There is empirical evidence to suggest individuals’ work output remains constant regardless of the amount of time worked plus or minus 20 percent. A person will create just about the same amount of work product if working 32 hours as if working 48 hours.
Too often, those working overtime are heralded as great employees and are often promoted. It is seldom considered that work is not being completed in the allotted amount of time. The logical question to consider is the efficiency of the person working all this overtime. Is additional training needed or is the task just beyond what they are capable of completing during normal working hours. The reason overtime is rewarded is because software development managers have no other metric in place to measure performance. These same managers illogically conclude a person who is working overtime is a dedicated, productive, and hard working employee.
The sad thing is when other employees recognize those working overtime as unproductive. They see this bad behavior being rewarded, so they begin to change their behavior. They logically conclude that they need to slow down and also work overtime. A worse behavior is when employees just report overtime to appease management. In this case, employees are being rewarded for lying.
Working overtime is a symptom of poor planning. Best in class companies do not work overtime because overtime is due to poor planning. It should make perfect sense to all that best in class companies are very good at planning. A big part of success is planning what is to be done while being flexible enough to adapt to new situations. Granted there are times when overtime is required, but it should not be a company policy.