I wrote this for several reasons. Of course, self-interest is one of them.  I wanted it to be available to potential employers or consulting customers as an example of my written communication skill and to show that I do spend time educating myself in my chosen field.  But I also like discussing many theories.

Some of these books may not appear to be related to software development, but they did have an effect on the way I work, so I list them.

  1. Peopleware: Productive Projects and Teams, by Tom DiMarco and Timothy Lister
    • If I could only recommend one book, this would be it. (And I have recommended many times over the years.) It was one of the books they should have made me read in college.
    • This book is about the people working on projects. It shows exactly why problems for people are problems for the company project. If you something is a problem, but you have a hard time getting others to help fix it, this book can help you explain the problem in terms that get attention.
    • I got very lucky when my wife bought the audio version for me as a gift.  The audio version is no longer available to buy except as used cassette tapes.
  2. Writing Solid Code, by Steve Maguire
    • This book is the second I would recommend.  It details practices that are so effective for producing bug-free code that they are timeless (even though the provided code examples are somewhat obsolete.)
  3. Debugging The Development Process, by Steve Maguire
    • The sensible practices in this book show why Steve gained a reputation for turning projects around.
  4. The Innovator’s Dilemma, by Clayton Christenson
  5. Lateral Thinking: Creativity Step by Step, by Edward De Bono
  6. Hacking and Securing iOS Applications, by Jonathon Zdziarski