Saturday, July 18, 2009

10 Books for software developers (that are not about software development)

The best software developers I have met are a pretty diverse bunch of people, but they have some traits in common. For example, they have all been voracious readers, and they read a lot of stuff not directly related to software development.

There is good reason for this:
Creativity is the process of solving problems by taking different bodies of knowledge, breaking them down into components, selecting some of the components and connecting them into a new body of knowledge.
The creative engine needs fuel. Good software developers, like good managers, leaders, and any good knowledge worker, continuously feeds that engine.

The following books are books I have read and found useful when I was a software developer. Today, as a business strategist and advisor, I still find them useful. Please note that I have not ranked them according to usefulness, it would be like ranking the usefulness of the wheels of your car. You need a full set.

Here are the books:

  • Godel, Escher, Bach: An Eternal Golden Braid by Douglas Hofstadter. Fantastic book about how humans think, the nature of the id, and human creativity. This book is different from anything else you have ever read (unless, maybe, if you have read other stuff by Hofstadter). If you are attracted to the idea of thinking things you have never thought before, read this one!
  • Destruction and Creation by John Boyd. Well, this isn't a book, it is a short essay which you can download. If you read nothing else in this list, read this. (You won't get more creative by reading any one thing, but this one will show you what you are missing, and may motivate you.)
  • Slack: Getting Past Burnout, Busywork, and the Myth Of Total Efficiency by Tom DeMarco. This is the book your boss ought to read from every night, have under her pillow when she sleeps, and read from in the morning before eating breakfast and brushing her teeth. Useful to you too, especially if you want to understand why managers in your company don't get Agile, twist it, or actively oppose it. (Assuming you get Agile. You will have to be creative and connect some dots yourself.)
  • The Logical Thinking Process by William Dettmer. Programmmers solve complex problems, so a book about solving complex problems has to be on the list. This is my favorite. I carry it with me on every job I do. My copy is pretty dog-eared.
  • Brainpower Networking using the Crawford Slip Method by William Dettmer. Crawford Slip is the best data collection, brainstorming, and data analysis method I have ever seen. frankly, it beats the #€@#!!! out of anything I have seen in my software project methodology literature. I use it for gathering and analysing requirements, risk analysis, strategy development... I often use a combination of Crawford Slip for analysis and The Logical Thinking Process for synthesis.
  • Managing the Design Factory by Donald Reinertsen. This is a classic.
  • Thinking in Systems: A Primer by Donella Meadows. Filled with stuff that should be a part of basic education for everyone, and yet often is missing even at university level. Also a well written, interesting book.
  • Business Dynamics: Systems Thinking and Modeling for a Complex World by John Sterman. If you get hooked on Systems Thinking after reading Thinking In Systems, this book is the next step. The book looks daunting, but it is actually well written and quite accessible. There is a bit of math in it, but you can get a lot out of the book even if you skip those parts.
  • The Design of Everyday Things by Don Norman. This book changed the way I looked at the world, and was instrumental in shaping my views on user interface design. Also a fun read.
  • The Atrocity Archives by Charles Stross. This is a horror fantasy book with a programmer hero. No mind-bending insights here, but a good read if you want to unwind a bit after reading the other nine.
Which ten non-software development books would you recommend software developers to read?

Which ten non-management books would you recommend managers to read?

Would the lists be overlapping?


Dean Wampler said...

One correction: Don Norman wrote The Design of Everyday Things.

Kallokain said...

Thanks Dean,

I changed the "John" to "Don".