Saturday, March 3, 2012

Every software project I’ve worked on has used the "Spanish Theory" of project management, and its likely yours have too

The "Spanish Theory" says that management's job is to extract the maximum resources (= developer effort)  from the smallest amount of money (= developer salary). In practice what this often means for the developer is unpaid overtime (also known as "crunch time"), something very familiar to game developers, and also common in traditional software development, as the project nears its deadline. But those unpaid hours are actually costing you, the developer, because you can't get them back. You've sacrificed time in your personal life with your family and instead have chosen to work on the company's project - something of large value has been sacrificed for something of lesser value. If this imbalance continues past a reasonable level and unpaid overtime becomes the norm, then many developers will become dissatisfied and leave the company, increasing the company's staff turnover (churn) rate.

The book describing these harmful effects in the software industry was first published back in 1987. So why are many software development managers and PMs still practicing this method, some 25 years later? The reason I believe is a lack of foresight, an unquestioning acceptance of previous methods, a short term project oriented view, a limited understanding of the harm that comes to a company from a high churn rate, and finally, developers that are willing to accept these conditions. In moderation, some unpaid overtime is probably ok, but when it becomes the norm, from week to week and is just expected of all developers, then maybe that's a sign something is wrong, and could even be considered a job smell.

The attitude of government and corporations around the world towards unpaid overtime is changing, as can be seen by some recent initiatives out of Britain (Work your proper hours day). Similarly in Australia, there's now a National go home on time day held every November. The US-based International Game Developers Association (IGDA) is also active in promoting quality of life in the workplace through various publications and events.


Below I've quoted the extracts from chapter 3 of the book which gave me the idea for this brief blog post - I highly recommend you have a read of this book, or if not, then at least read through this small extract here which I thought was outstanding ...


Peopleware: Productive Projects and Teams (Second Edition)
Amazon Link: here
Authors: Tom Demarco and Timothy Lister
"Historians long ago formed an abstraction about different theories of value: The Spanish Theory, for one, held that only a fixed amount of value existed on earth, and therefore the path to the accumulation of wealth was to learn to extract it more efficiently from the soil or from people's backs.  
Then there was the English Theory that held that value could be created through ingenuity and technology. So the English had an Industrial Revolution, while the Spanish spun their wheels trying to exploit the land and the Indians in the New World. They moved huge quantities of gold across the ocean, and all they got for their effort was enormous inflation (too much gold money chasing too few usable goods). 
The Spanish Theory of Value is alive and well among managers everywhere. You see that whenever they talk about productivity. Productivity ought to mean achieving more in an hour of work, but all too often it has come to mean extracting more for an hour of pay. There is a large difference. The Spanish Theory managers  dream of attaining new productivity levels through the simple mechanism of unpaid overtime. They divide whatever work is done in a week by forty hours, not by the eighty or ninety hours that the worker actually put in. 
That's not exactly productivity — it's more like fraud — but it's the state of the art for many American managers. They bully and cajole their people into long hours. They impress upon them how important the delivery date is (even though it may be totally arbitrary; the world isn't going to stop  just because a project completes a month late). They trick them into accepting hopelessly tight schedules, shame them into sacrificing any and all to meet the deadline, and do anything to get them to work longer and harder. 
Overtime for salaried workers is a figment of the naive manager's imagination. Oh, there might be some benefit in a few extra hours worked on Saturday to meet a Monday deadline, but that's almost always followed by an equal  period of compensatory "undertime" while the workers catch up with their lives. Throughout the effort there will be more or less an hour of undertime for every hour of overtime. The trade-off might work to your advantage for the short term, but for the long term it will cancel out. 
Just as the unpaid overtime was largely invisible to the Spanish Theory manager  (who always counts the week as  forty  hours regardless of how much time the people put in), so too is the undertime invisible. You never see it on anybody's time sheet.  It's time spent on the phone or in bull sessions or just resting.  Nobody can really work much more than forty hours, at least not continually and with the level of  intensity required for creative work. Overtime is  like sprinting: It makes some  sense for the last hundred yards of the marathon for  those with any energy left, but if you start sprinting in the first mile, you're just wasting time. Trying to get people to sprint too much can only result in loss of respect for the manager. The best workers have been through it all before; they know enough to keep silent and roll their eyes while the manager raves on that the job has got to get done by April. Then they take their compensatory undertime when they can, and end up putting in forty hours of real work each week. The best workers react  that way; the others are workaholics. 
People under time pressure don't work better; they just work faster. 
In order to work faster, they may have to sacrifice the quality of the product and their own job satisfaction."

Follow @dodgy_coder

Subscribe to posts via RSS