On a quest for the silver bullet..

Recommended Books

Here are some books I would like to recommend. Recommendations will be updated regularly (feed is at the bottom of this page).

Extreme Programming Explained: Embrace Change Extreme programming explained (Kent Beck)
Extreme programming is beautiful. Not only because it uses the well known practices of TDD, CI, Pair programming and so on. Xp is beautiful because it understands that practices do not stand on its own. You need a mindset. The mindset is expressed through the Xp Values, and throughout the entire book. Xp is close to a philosophy. Read the book and I’m sure you will see software development in a slightly different way.

Software Craftsmanship: The New Imperative Software Craftsmanship (Pete McBreen)
This book is the foundation of the Craftsmanship movement that seem to get momentum these days (and that is a good thing). “Software craftsmanship” sounds nice and has a positive ring to it, so it does not seem to be hard to endorse. But for Pete McBreen software craftsmanship is more than just taking your job serious. It’s a way to organize teams, a way to run projects, a way to run the whole industry, a way to organize learning, and a new way to look at developers. I really like many of his ideas, and I hope people like the Craftsmanship movement not just because it sounds nice, but because they know what this book is about. Read it and see what you think of “Software engineering” when you’re done.

Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin) Clean Code (Robert C. Martin)
One of the best books I’ve read about writing quality code, and certainly the most concrete one. Gives you concrete advice on how to improve your code. No less than every developer should read it.

Working Effectively with Legacy Code (Robert C Martin) Working Effectively With Legacy Code (Michael C. Feathers)
Don’t be scared away just because the title has the word “legacy” in it. This book is not about VB6 or Fortran. Not at all! It’s probably the best book I’ve read about writing automated tests. It is about how to work with code that is not tested (which is Feathers definition of legacy code). And it is about testing in general. If you want to write tests for code that is not previously tested (or written in a way that makes it testable), this book is for you.

The Pragmatic Programmer The Pragmatic Programmer (Hunt & Thomas)
This book is a classic. It is a collection of great advice that every software developer will benefit from. I keep coming back to this book and read a few pages in it now and then, and almost every time I get something new out of it.


(Subscribe to all my recommendations)