Inspired by the recommendations in Apprenticeship Patterns about keeping a reading list, reading the classics, and reading constantly.

Design Patterns: Elements of Reusable Object-Oriented Software Erich Gamma, et al.

The exposition before and after each pattern category are worth more than the patterns themselves.

The Leprechauns of Software Engineering Laurent Bossavit

More of what this industry needs… Evidence!

Measuring and Managing Performance in Organizations Robert Austin

Finally, an evidence-based look at performance measurement and incentives.

Slack Tom DeMarco

Theory of Constraints for people and people managers.

Understanding the Four Rules of Simple Design Corey Haines

I’m inspired to run mini coderetreats at my company and among my colleagues!

The Decline and Fall of IBM Robert Cringley

I love a good narrative history, especially of such a behemoth.

The Pragmatic Programmer Andrew Hunt & Dave Thomas

An enormous survey of programming advice, patterns, and practices (feels a little dated). Read this 10 years ago.

The Art of ‘Ware Bruce Webster

A reinterpretation of Sun Tzu’s maxims for software entrepreneurs or executives.

An Agile Adoption and Transformation Survival Guide Michael Sahota

coming soon!

The Visible Ops Handbook Kevin Behr, Gene Kim, et al.

The “emergency room” guide to getting your crazy IT situation under control; stop fighting fires and get important work done.

Theory of Constraints Eli Goldratt & The Phoenix Project Kevn Behr, Gene Kim, et al.

Encouragement that you can change the way your organization works!

Good to Great Jim Collins

Not just cheesy platitudes, the research feels really solid and tells a compelling story about organizing, working, and becoming significant.

Culture and Empire Peter Hintjens

An almost sci-fi perspective on the current and future effect of technology on society, like a good version of Lessig’s Free Culture ;)

The Gervais Principle & Be Slightly Evil Venkatesh Rao

In the office sociological structure, you don’t want to be a loser.

Understanding Computation Tom Stuart

Computation, state machines, Turing machines, and parsing disguised in simple Ruby programs, for the non computer scientist!

Making Software Andy Oram & Greg Wilson

Reexamine important software development research, with a focus on experiment design & concordance.

Windows PowerShell in Action Bruce Payette

Windows developers and sysadmins finally have a scripting language and a modern shell.

The Inmates are Running the Asylum Alan Cooper

Everyone in your organization needs to understand personas and interaction design up front.

Code Complete Steve McConnell

A practical guide to good software construction (if you ignore the outdated ideas like code layout and tools). The “Personal Character” section is a gem.

Lean Software Development Mary & Tom Poppendieck

Hold out for the good parts (chapter 4ish): queue theory, empower teams, and systems thinking. Then have management read the whole damn thing!

Systemantics John Gall

Recommended for anyone writing “enterprise” software. Systems grow, are unpredictable, will create new systems, and, worst of all, they create systems people!

Release It! Michael Nygard

Systems engineering concepts that programmers need to understand to be prepared for capacity spikes, outages, and error reporting.

Microserfs Douglas Coupland

An odd story about a group of developers in Silicon Valley leaving big companies for startups (see the Netscape documentary, Code Rush).

Getting Real Jason Fried & David Heinemeier Hansson

Keep your company small, have strong opinions, and create simple design.

Rework Jason Fried & David Heinemeier Hansson

An encouraging denouncement of meetings, distractions, and other kinds of waste that are so common in business.

The Art of Agile Development James Shore

This is the XP book for the modern developer, pay attention to the “contraindications” section for advice when you’re doing it wrong!

The Three Signs of a Miserable Job Patrick Lencioni

Knowledge workers take the quality of their work personally, so it affects the quality of their life. The three signs are anonymity, irrelevance, and immeasurement.

The Five Dysfunctions of a Team Patrick Lencioni

Fundamental concepts for any agile organization or team: trust, conflict, commitment, accountability, and results.

The Elements of Style William Strunk & E.B. White

Simplify language, introduce clarity, and develop a style.

Working Effectively with Legacy Code Michael Feathers

A rich introduction to practical coding concepts wrapped up as a guide to refactoring legacy code.

Visual and Statistical Thinking Edward Tufte

Your graphics should be evidence for your argument (hypothesis).

The Cognitive Style of PowerPoint Edward Tufte

PowerPoint reduces the analytical quality of presentations, corrupts statistical reasoning, and weakens verbal thinking.

Code Charles Petzold

Replace your computer architecture textbook with this book.

Peopleware Tom DeMarco, Timothy Lister

All problems in software are people problems (there are no technical problems that can’t be solved).

The Mythical Man Month Fred Brooks

A deep understanding of software project management with essays like No Silver Bullet, the Surgical Team, and Essential Difficulties.

Framework Design Guidelines Krzysztof Cwalina & Brad Abrams

Each guideline includes honest feedback including sections called “Consider”, “Do Not”, “Do”, and “Avoid”.

Facts and Fallacies of Software Engineering Robert Glass

Great for beginners, dozens of fallacies discovered over decades of exprience.

The Design of Everyday Things Donald Norman

You’ll never unsee frustrating design.

Reading

Pitfalls of Object-Oriented Development Bruce Webster

Revealing the fallacies of OO development and management.

Godel, Escher, Bach Douglas Hofstadter

A confounding mix of mathematics, musical theory, and philosophy wrapped in a fairy tale!

Queued