A previous manager gave me this book last year. He was impressed by it and gave a copy to everyone on his team. After reading it, I can see why; it’s a fascinating read, and maybe one of the best books on issues unique to the management of software engineering organizations.
The author, Will Larson, has bona fides from managing technology in some well-known, high-profile organizations, including Digg, Uber, and Stripe. Not all of the ideas in the book are going to be useful to everyone, as most people manage much smaller organizations than he has. Still, there is a lot of gold to be mined here for any manager.
He starts with a discussion on the sizing of teams. While many of his ideas are wise, he also neglects to identify how certain specialists fit in an organization. For example, maybe his ideal organization has six teams of six software engineers each, but then where does the DBA fit in? Also, in my experience, not every employee requires the same amount of management, so sometimes a team is a better fit at four people instead of seven… or vice versa. But the general ideas he has in the book are sound.
Other areas of the chapter regarding teams had lots of great insights. Larson gives his opinion on when to grow teams, how to handle rapidly growing organizations, and giving teams the slack they need to operate effectively. There are also comments in here about reducing interruptions to make teammates more effective. He closes out the chapter with some thoughts on succession planning.
The next chapter talks about tools, in particular establishing metrics for the processes around software engineering. After all, you can’t improve what you don’t measure. He also talks about the process of paying down technical debt by doing migrations.
The chapter then goes into topics like IT controls, presenting ideas to the bosses, and time management. It also talks about creating communities of learning. Honestly, the book is packed with topics, with new gems appearing every few pages. It’s simply amazing how dense it all is.
Chapter four delves into the topics of policies, relationships, and managing priorities. He also talks about the various problems managers have in the act of, well, managing.
Chapter five explores the various aspects of company culture. It starts with identifying those people with the greatest potential to become future leaders and how to develop them. Among the ideas here is the danger of the hero programmer, and why that role needs to be defeated.
Chapter six talks about careers. It starts with advice on defining roles and recruiting talent. Then it moves on to reviewing employee performance, when to promote, and what kind of career levels one should have in an organization. This, of course, comes back to metrics once again.
Finally, in chapter seven, he sums up with a list of books and papers he’s found very educational over the years. It’s a good list.
Overall, the book is a must-have for anyone who is involved in the management of technology organizations. While I don’t agree with every one of his ideas, I do agree with many of them. Because it covers such a wide range of topics, it’s probably a good idea to revisit the book every few years.