There are the books that have shaped my thinking on work. I have read a great many more books – but these are the ones I recommend (regularly) when people ask my advice.
Although there is a bias towards Theory-Y, Lean, and Agile in these books… I also recommend you read subjects you disagree with. You can’t really disagree with a perspective you haven’t knuckled down to understand.
Software + Wetware
The Psychology of Computer Programming
Gerald M. Weinberg
Many of the books on my list are old books. When a book of this vintage is listed, it not only means it’s a good book; it also means it has withstood the test of time. This is one of the fundamentals and contains a great collection of long standing truths about software development. This is also the book that sparked my interest in Psychology, which I eventually gained a certification in.
The Psychology of Computer Programming on Wordery.
Tom DeMarco and Timothy Lister
This book sets up Tom and Timothy as software versions of Michel de Nostredame. What they wrote about in this book eventually became hot topics of debate some years later. They cover a broad range of issues that kill programmer productivity and it is still a must read if you have any influence over the conditions your code is created in.
Peopleware on Wordery.
Pragmatic Thinking and Learning
If you understand your brain, you can unlock a host of power ups that will make you better at what you do. This book is the programmer handbook for brains.
Pragmatic Thinking and Learning on Wordery.
Toward a Theory of Instruction
This is a book about education, written before we were born, proved time and again in practice, and still largely ignored. Although Bruner isn’t talking about programming, much of the material is directly relevant to software teams.
Toward a Theory of Instruction on Wordery.
Why Plans Fail: Cognitive Bias, Decision Making, and Your Business
This is the best field-guide to how common thought-traps result in burning projects. This is a quick read, but the imapct is huge.
Why Plans Fail on Wordery.
Thinking, Fast and Slow
After reading Pragmatic Thinking and Learning, you might want to go back and read the book that is likely to have inspired it. This is the more general picture about how your brain works.
Thinking, Fast and Slow on Wordery.
Software Craftsmanship: The New Imperative
This book is the first to delve into the need for a more disciplined and professional style of software development. It’s good to read up on the emerging thoughts, even if you’d like to call it something else.
Software Craftsmanship on Wordery.
The Clean Coder
Robert C. Martin
This is part of a three-volume series that can all be read indpendently. This book covers the professional themselves, there are books to cover the code and architecture. All three are listed.
The Clean Coder on Wordery.
Code Simplicity: The Science Of Software Development
This is a quick read that contains some interesting theories about natural laws of programming. Don’t be fooled by the breveity, it’s highly insightful.
Code Simplicity on Wordery.
Robert C. Martin
The second in the power-trio of book from Uncle Bob. This one deals with the code.
Clean Code on Wordery.
Scott L. Bain
This book has stayed with me ever since I read it. It introduces a now well published field of emergent design, covers one of the most important words I leadned in programming (cohesion), and sets your mind up for expressive code organisation.
Emergent Design on Wordery.
This is a massive volume, but it’s worth the calories. An incredibly well researched piece of writing about almost all aspects of software development with analysis that keeps echoing through the ages. This is a fundamental read.
Code Complete on Wordery.
Robert C. Martin
The third in the triptych and covers the architecture. If you’ve read The Principles, Patterns, and Practices of Agile Software Development, you’ll notice the fractality of many principles here.
Clean Architecture on Wordery.
Extreme Programming Explained: Embracing Change
This documents a set of values, principles, and practices that form one of the most complete software development methods around. Not only is it complete, it’s pretty simple to understand, though often hard to do. If you haven’t read this, you won’t notice what pieces might be missing in other methods.
Extreme Programming Explained on Wordery.
99 Bottles of OOP
Sandi Metz and Katrina Owen
Don’t be put off by the price, this book will level-up your programming skills. Great practical examples of test-first development and refactoring.
99 Bottles of OOP on Sandi Metz’ Website.
Lean Software Development
Mary Poppendieck and Tom Poppendieck
This is the book that introduced so many of us to the idea of Lean. After reading this book, which is tailored to software development, you’ll also benefit from searching out the Ohno Taiichi book Toyota Production System as well as the range of books from Jeff Liker, Don Reinertsen, and Eli Goldratt. The subject of Lean and Theory of Constraints will give you a bunch of tools that are highly valuable in the software world.
Lean Software Development on Wordery.
Tonianne DeMaria Barry and Jim Benson
If you want an effective way of organising your life, which also scales well to teams and organisations; this is the book to read. You can also add other ideas to Personal Kanban, like the concepts from Getting Things Done, and it makes them work even better.
Personal Kanban on Wordery.
The Principles of Product Development Flow
Along with Managing the Design Factory, this book is an essential read when you start taking on more responsibility in a software organisation. It will set you up with an economics toolkit that will help you influence better decisions.
The Principles of Product Development Flow on Wordery.
Accelerate: The Science of Lean Software and DevOps
Nicole Forsgren PhD, Jez Humble, and Gene Kim
The amount of research and analysis that has gone into this book is stunning. This is basically a collection of practices that create high performing teams, where each practice has a substantial body of evidence to suggest it really does mean you’re more likely to suceed with your software development. You shouldn’t really be allowed to run a team if you haven’t read it.
Accelerate on Nicole Forsgren’s Website.
Freedom From Command and Control
Essential management reading. Not directly written for software teams, but highly relevant.
Freedom from Command and Control on Wordery.
Escaping the Build Trap
If you are developing a software product, this is the field-guide to avoiding the damaging traps that (in my experience) every product company will encounter at some stage.
Escaping the Build Trap on Wordery.
The Mythical Man Month
Frederick P. Brooks Jr
One of the old ones. Ignore or translate the chapter on microfiche and you’ll be left with a series of excellent essays on software development that will remind you that all the big problems were solved in the 1970s.
The Mythical Man Month on Wordery.
Why Limit WIP
This book supplies all the information you need to inform and influence your execs about the problems of high work-in-process.
Why Limit WIP on Wordery.
Good Strategy, Bad Strategy
I can’t add a great deal more than the title does. This book is essential reading if you are working on a organisation, product, or team strategy.
Good Strategy, Bad Strategy on Wordery.
The Practice of Management
There is a chapter in this book on the management of “Professional Employees”. There weren’t too many programmers around when this book was published, but if ever there was a “Professional Employee”, it’s a programmer (at least, it is if they have read the other recommended books).
The Practice of Management on Wordery.
The Human Side of Enterprise
Another old one. What Doug McGregor wrote in the era of cardigan-wearing and pipe-smoking is now all the rage thanks to its rediscovery in books on motivation and productivity.
The Human Side of Enterprise on Wordery.
Waltzing With Bears
Tom DeMarco and Timothy Lister
If you are leading a team, you need to understand risk and risk management. Start here!
Waltzing With Bears on Wordery.