Friday, July 25, 2008

Book Recommendations

OK, so you're a good developer. Your manager seems to be doing a decent job. Your team gets the job done.

But things could be better. You could use a few tips and tricks here and there. Heck, everyone on the team could. And your manager? You don't even have to say it: managers need all the help they can get, right?

So here's some good news: there's help out there. In fact, there's expert help. People who know more than any of us do about this stuff. People who have seen it all, and done it all. And they wrote it down.

I highly recommend the following books, written by people who really seem to know what they're talking about.
  • Code Complete by Steve McConnell: This is, simply put, the most important book on my bookshelf. This is the developer's bible. It's the end-all, be-all for how to write the best code you can. The clear, concise, decisive suggestions in this book should become the standard by which your code is measured.
  • The Mythical Man-Month by Frederick P. Brooks, Jr.: This classic series of essays on software engineering puts forth what may be the most important and overlooked lesson to learn in our field, now known as Brooks' Law: "Adding manpower to a late software project makes it later." The book will help you understand why our work is often difficult to estimate.
  • Peopleware by Tom DeMarco and Timothy Lister: This is the book you'll want to have in hand when you go to your manager and ask for an office instead of a cubicle. Or a conference room for your project. Or at least a pizza for the team.
  • Agile Project Management with Scrum by Ken Schwaber: Understanding the value of agile development is important for any modern developer, and this introduction to Scrum will help you understand how to use Scrum on an agile project. It's helpful for managers and developers to understand the Scrum methodology.
  • eXtreme Programming Explained by Kent Beck: This short introduction will explain the much-hyped development methodology known as eXtreme Programming. It may get your interest, or it may send you screaming into the distance.
  • Death March by Edward Yourdon: Though you never want to find yourself on one of these projects, this book is still a good guide to making sure that your projects are not destined to become death marches. It gives an interesting perspective on what "success" means on a project.
  • Software Estimation: Demystifying the Black Art by Steve McConnell: Hey, look: another Steve McConnell book. This one is extremely helpful for understanding that thing we all seem to do poorly: estimating how long it will take us to complete a project. It turns out that our ability to estimate accurately is the key to our own perceived success within our organization. It's our ability to hit our own targets that impresses product owners, not necessarily our ability to hit their targets.

That's my short list. For further (and even better) recommendations, read these books, and look for the books these authors reference and recommend. Again: these guys are the ones who really know what they're talking about.

Update: I totally forgot one of the more important books I've read on the topic of application development: Alan Cooper's The Inmates are Running the Asylum. It is a great introduction to the idea of designing an experience, not just an application. I'm currently reading Cooper's About Face, which is essentially a practical guide to applying the lessons learned in Inmates.

Ss.

1 comment:

andy koopmans said...

Man, reading your blog gives me a brain-ache. In that good way that I'm glad somebody is able to understand this and I don't have to.