Two years ago I read Peopleware for the first time and wrote this blog post. That book was the most inspiring engineering leadership material I had read, and it's still definitely in my top 5 recommendations.


One of my big goals this year is to read more, and while I've been mostly trying to stretch myself with fiction, I can't help cracking the spine on a few business and personal development books as well.

One of my favorites so far has been _Peopleware: Productive Projects and Teams. _While the majority of the book is filled with practical examples and data-driven analysis, the thesis really hit home for me:

People - not technology - are the reason that software projects (and by extension, software startups) live and die.

This is my first year managing a software engineering team, so I know I have a ton to learn, but I've started to suspect that my job is more about handling diverse desires, goals, and issues between people than it is to manage the technology choices we as a team make.

The nice thing about software is that it is predictable. Computers do what you expect them to and they do the same thing every single time. While creating software that is sustainable, testable, and extensible is no doubt challenging (one of the other books I'm reading now is Clean Code), the technology portion of software development is at least predictable. You can spend a few months learning patterns that make code workable most of the time, but figuring out how to make people work together is a lifelong exercise.

So what's the book about?

Peopleware starts out with an introduction to the authors and the methodology taken in crafting the book. Even if some of the examples and advice given later seem a bit too idealistic to implement, you have to appreciate the authors' data-driven approach to writing it. In the first few chapters, you get the idea that whether you're a software manager, project manager, or business founder, your job relating to products is more about managing people than managing technology.

From this central point, Peopleware branches into a series of real-world examples based on thousands of surveys the authors have performed at companies around the world. They cover topics ranging from the physical environment that engineers inhabit to the need for deadlines to creating friendly competition between developers. As a new manager, I immediately got inspired, but simultaneously knew that some pieces of this puzzle were far out of my control. For example, I'm not going to be able to move the engineering team at Packback off into a separate wing of the building because we (A) don't own a building and (B) don't have the money to buy one.

This book is essentially about project and team management

Creating an effective team is about knowing your people and letting them slide naturally into a role in which they thrive. No manager can get good performance out of people who are doing work they find uninteresting and tiresome, but bad managers have a tendency to look at engineers as man-hours on a timesheet: we estimate this project will take 120 working hours, but we only have one engineer, so let's hire two more tomorrow and get the project done in a week.

Anyone who's even scratched the surface of engineering management knows that you can't ramp up software developers like that, and that you're most effective engineers will likely churn out exponentially more work at better quality than a recent graduate who's just getting his feet wet. Even if you hired all expert level programmers, you can't burn people out by pushing them to do work they aren't interested in doing. The reality of software projects is that the work is challenging and ever changing, so you have to find and retain people who want to learn.

More than anything, people are knowledge; not just knowledge of the technology, but knowledge of each other. The longer a well-working team is together, the more seamless and natural their work becomes. It's the act of keeping high quality teams together that becomes the goal of the engineering manager. While the methods for doing this are different depending on the company and people involved, Peopleware offers enough examples to be practically applicable in some way to almost any situation.