Peopleware: Productive Projects and Teams Book Review

October 21, 2016

When software development projects fail, many factors get blamed—from the technology to the hours put into a project. However, the problem often has a deeper cause:

Management fails to consider the human element required for effective software development.

Tom DeMarco and Tim Lister provide an in-depth look into the real culprits behind missed schedules, high turnover, and low productivity in Peopleware: Productive Products and Teams.

Knowledge workers, such as software engineers, are often thrown in team environments geared for production workers. They lack the necessary elements to thrive in this space and work to the best of their ability.


The modern workplace disregards the fact that engineers feel best creating quality work, which often requires the right space and opportunities to think about the solution they're working on.

Many companies push for faster development cycles, impossibly tight deadlines and a management approach that treats people like they're easily replaceable parts. It's not an easy task to reverse this reality for your team, but this book is the blueprint you need.

Peopleware is divided into six parts:

  1. Managing the Human Resource
  2. The Office Environment
  3. The Right People
  4. Growing Productive Teams
  5. Fertile Soil
  6. It's Supposed to Be Fun to Work Here

Don't worry. This book won't require you to slog through endless theory or management buzzwords. DeMarco and Lister take you through real-world examples and candid looks at everything stacked against successful software managers.

Short chapters focusing on one critical area at a time, which makes it a perfect read when you're dealing with another set of unrealistic timetables. Actionable insights and the data points you need to make the case to upper management, so you get the changes you need to support your team properly.

Productive Projects and Teams

The Most Important Things You'll Learn from Peopleware: Productive Products and Teams

  • Stop looking at team problems from a technological standpoint. A sociological approach is necessary for knowledge workers.
  • Create a working environment capable of fostering concentration. Open floor plans and cubicle farms make it next to impossible for software engineers to achieve "flow," which is a state of focus that permits them to think. Give them the right space and privacy to create quality work. This process is not one size fits all. Watch how your team works to find an ideal configuration.
  • You can't fix every single problem that's impacting your team's productivity, but you can tackle issues one at a time with an eye for the long-term.
  • More hours worked does not equal a greater quantity or quality of work. Avoid overtime as much as possible, outside of crunch situations. Accept that less productive time, termed “under time”, will happen throughout the project.
  • Your hiring process should include a development portfolio and input from current team members.
  • Strive to achieve goal alignment between team members, as this helps you create a working unit capable of more than the sum of its parts.
  • Your team members know there's more to life than work, and you face high turnover if you don't give them the balance they need.
  • A culture of quality is necessary to keep your team happy with the work they do. Realistic project timelines and pushing back against moving upper management goalposts is an essential part of creating this environment.

If you only remember one line from Peopleware

“The manager’s function is not to make people work, but to make it possible for people to work.” Every concept in this excellent software developer management book stems from this philosophy.



Ben Thompson is a co-founder at GitPrime where he leads design and customer experience. He is a Y Combinator alumni, with a background in product design, branding, and UX design. Follow @thebent on Twitter.

Get Engineering Impact: the weekly newsletter for managers of software teams

Keep current with trends in engineering leadership, productivity, culture, and scaling development teams.