Peopleware: Productive Projects and Teams
A book by Tom DeMarco and Timothy Lister which asserts that the major problems of software development are not so much technological as sociological in nature.
Part 1: Managing the Human Resource
Chapter 1: Somewhere today, a project is failing
Quote
If you find yourself concentrating on the technology rather than the sociology, you’re like the vaudeville character who loses his keys on a dark street and looks for them on the adjacent street because, as he explains, “The light is better there.”
Developing new software applications is a sociological problem. In a sample of 500 project histories: 1
- 15% of all software projects fail
- 25% of software projects that took longer than 25 years fail
- Failure reasons are often attributed to “office politics”
- An overwhelming majority of failed projects have no single technological issue explaining the failure
This is because management often treats technical problems as more important than sociological ones. 1
Chapter 2: Make a cheeseburger, sell a cheeseburger
Quote
Development is inherently different from production. But managers of development and allied efforts often allow their thinking to be shaped by a management philosophy derived entirely from a production environment.
Management makes the mistake of treating development as a production environment. In a production environment, you will want to…
- Reduce error
- Optimize for up-time
- Standardize procedure
- Eliminate experimentation
…but these tactics will take the wind out of your sails when you are trying to do development. Production is not the same as development. 2
Instead, to support development, do the opposite. Namely: 2
- Encourage errors and experimentation: Reward people for trying multiple designs or approaches, even if exploring those choices may result in dead ends.
- Let workers do the thinking: Workers are there to think through problems; let them do the thinking. Don’t be condescending or make key technical decisions without them.
- Recognize that people are irreplaceable: The unique characteristics and qualities of people are what makes the chemistry of a project viable and effective. Everyone will have different needs and wants.
- Remember that projects end: A project’s entire purpose in life is to put itself out of business. Evaluate people on their contribution to the dynamics of the development effort. Don’t evaluate them on how much code they can write every day.
- Allocate time for supporting tasks: A task cannot be 100% dedicated to actually doing it — you need to research, explore possible solutions, brainstorm, and build rapport and chemistry within the team. The higher the stakes, the more important these supporting tasks are.
Chapter 3: Vienna waits for you
Quote
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.
When being a manager, you must make sure that workers do not sacrifice their personal life or their own job satisfaction in exchange for seemingly higher productivity. 3
These common increased productivity strategies have the following drawbacks: 3
Tactic | Drawback |
---|---|
Impossible Deadlines | People sacrifice job satisfaction and product quality |
Overtime | People sacrifice their personal life |
Standardized Procedure | Creative work is less fun and satisfying |
All of these tactics can improve productivity in the short term, but will always result in lower productivity and turnover in the long run. 3
Chapter 4: Quality — if time permits
Quote
Quality, far beyond that required by the end user, is a means to higher productivity.
Customers don’t care much about quality and will be happy to accept a quick-and-dirty version of an application in the short term. 4
Builders tie their self-esteem to the quality of the work they produce and the quality desired by the builder will always be greater than what the customer would accept or require. 4
When deadlines are unrealistic and only set to meet the expectations of customers, experienced workers know that the only option they have is to reduce the quality of their work. If you only budget for quality when time permits for it, then you will always end up with lower productivity because that lower quality work will decrease productivity. 4
Allowing workers to set a satisfying quality standard of their own will result in a productivity gain sufficient to offset the cost of improved quality. Consider giving the project team the ability to veto the delivery of an end-product if their own quality standards are not met. 4
Chapter 5: Parkinson’s Law Revisited
Quote
Parkinson’s Law almost certainly doesn’t apply to your people.
Parkinson’s Law is the notion that work expands to fill the time allocated for it. This is often practiced by setting impossibly optimistic delivery dates, since it’s the only way to get work done according to this law. 5
However, Parkinson’s Law has no studies to verify its veracity despite its wide acceptance as truth in management. An argument a manager may make is that there are workers who seems to be avoiding work, have no standard of quality, or can’t get the job done, thus fulfilling Parkinson’s Law. However, these workers often find the work too difficult to do and need to be reassigned. Pressuring a worker that is struggling won’t produce the result you are looking for. 5
On the other hand, a study has been done to try and verify whether or not estimating work has a positive effect on productivity. As it turns out, it seems like bad estimates reduce the productivity of builders too and having no estimates at all increases productivity. 5
Chapter 6: Laetrile
Quote
The manager’s function is not to make people work, but to make it possible for people to work.
Managers are often desperate to look for anything that might improve productivity, accepting even unsubstantiated claims of new ways to increase productivity by a large margin. 6
Even in software development, claims that a new programming language will improve productivity greatly are often found to be false (though they may certainly have a positive effect on productivity, just not one that doubles the productivity of a worker).6