Software Engineering Management Reading List

2468912536_159679f47a

I seem to be in a book mode this week. So let me continue this series of blog posts with my take on a list of books that every software engineering manager should have read. To me, the most important book on software engineering management is still Frederick Brooks' The Mythical Man-month, even though it is as old as myself (i.e. 37 years) and it's based on Brooks' experience with development of IBM OS/360 some 50 years ago. But the lessons and wisdom presented in this book seem to transcendent time.

The next on my list is Extreme Programming Explained by Kent Beck. It is this book that has taught our community to embrace change and gave us a consistent way of thinking about our work with values on one side, practices on the other side, and principles connecting the two. The practices first introduced into main stream programming community by this book such as short iterations, pair programming, and test driven development, are the corner stones of modern software development practice.

The notions first put forth by the extreme programming movement, were put into a coherent framework by Ken Schwaber and Mike Beedle in their book Agile Software Development with Scrum. It is this book that ended the reign of Microsoft Project and finally convinced the community that software development process cannot be fully-defined up front, but should instead be continuously updated with reality.

To keep this list short and to include only essential reading, I'll add to it only one book more. First, Break All the Rules by Marcus Buckingham and Curt Coffman is a general book on management, but I think it's style and approach is especially suited for engineers who have little patience for bullshitting and management gurus, and prefer facts over dogmas. I've written a review of this book some time ago that you can read here.

So what are your favorite books on engineering management? Please, describe in the comments.