Stack OverflowFavorite agile related books?
[+15] [33] RoyOsherove
[2008-09-24 12:57:28]
[ books polls agile ]

From implementing Scrum in an organization to Test Driven Development, what books would you recommend for beginners, advanced and trainers in Agile development methodologies?

(2) please wikify responses.. - Gishu
(2) Also one book per post.. would help the voting system achieve something here.. - Gishu
(1) Any chance you make this poll a CW? Thanks - Jonik
(1) Can't believe that 'Art of unit testing' is still unmentioned. :) - Arnis L.
[+16] [2008-09-24 13:02:43] Bedwyr Humphreys [ACCEPTED]

The Art of Agile Development [1] by James Shore and Shane Warden

The text of this book is being made available at James Shore's website [2]


[+8] [2008-09-24 12:59:36] Ben Scheirman
  • Agile Principles, Patterns, Practices (in C#) by Bob Martin
  • Test Driven Development by Kent Beck
  • Agile Project Management with Scrum by Ken Schwaber
  • Agile Estimating and Planning by Mike Cohn

Those are just 4 of my favs.

[+7] [2008-09-24 13:02:53] Ilya Kochetov

The best writer on the subject is definitely Mike Cohn:

These books give you a great overview of the Agile development process and most importantly allow you to understand the concept behind it.

Also they are very easy to read which is definitely a plus in such a book


[+6] [2008-09-24 13:11:41] mattruma

My personal favorite is Practices of an Agile Developer: in the Real World [1]. This is required reading for my development team.

Practices of an Agile Developer: in the Real World


[+5] [2009-03-26 08:09:43] Razzie

Extreme Programming Explained [1] by Kent Beck. I grew up with that one ;-)


[+5] [2009-03-26 08:11:55] Brian Rasmussen

I can't tell you which of the above is the best book, but as I have read Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series) [1] I'll comment on that.

The book covers a lot of important points and it is good read. Unfortunately the editing leaves a lot to be desired. I got the feeling that this was really a Java book quickly translated into C#. Although a lot of the advice applies equally well to Java and C# then leftovers annoyed me.

Finally I would like to recommend another book by Robert C Martin. It is called Clean Code [2], and it has a lot of the same information as the aforementioned book, but it is much better edited and the advice is more immediately applicable IMO but of course YMMV.

[2] http://Clean%20Code

(3) I also recommend Clean Code, it's one of those books you'll be happy to have in your library. - Igor Brejc
[+4] [2008-09-24 13:08:06] Ryan Thames

The one that exposed me to agile development was Agile Software Development: Principles, Patterns, and Practices [1] by Robert Martin. He uses case studies to demonstrate agile practices and patterns, which is the best way to learn the material, in my opinion.


[+3] [2008-10-23 05:11:23] Ade Miller

Seeing as this hasn't already been mentioned...

Scrum and XP from the trenches [1]

So why is it so good? Well, many (agile) process books are a bit like reading a book the theory of design patterns - a lot of it is abstract. This book is more like digging through source code that makes some good uses of interesting patterns - a lot of concrete examples. This means that it’s very specific to a single instance of a Scrum/XP team and that team’s specific problems and how they addressed them.

The author, Henrik Kniberg, is pretty clear about what worked really well and what worked not so well as well as what they tried and what’s speculation on his part. The bits I really liked were:

Lots of good ideas on how to run multiple teams (Ch. 15). We struggled with this when building a process for the VSTO Team. Henrik covers many of the options we considered and also suggests the idea of a firefighting team - I wish we’d considered this as another option to protect our feature crews from asks from other teams for sustained engineering and Vista migration work. We sort of did but didn’t think about it in the same way. The how we do sprint planning chapter (Ch. 4) is very clear. Not many new ideas here for me but I think it’s a good explanation of how I would do this - although they were co-located so not much help here for distributed teams. Like a lot of people they’ve struggled with being “done done” inside a sprint (Ch. 14) and in that respect some of they differ from idea Scrum but there’s some good ideas here on reducing the amount of deferred test work.


[+3] [2008-09-24 13:28:15] e-satis

Getting Real

This is the book from the 37signals Team, the folks that created Ruby on Rails.

The book is short, 170 pages with lots of whitespace and heavy quoting, but if you ever used any of their web app (Basecamp, Tadalist, Whiteboard), you know how that's it's a very practical knowledge.

A nice manifesto that can be read for free [1] online. Sometimes a bit irritating, but never boring.


[+3] [2008-09-24 13:19:14] Kief

I'm a big fan of lean software development, so Lean Software Development: An Agile Toolkit, and Implementing Lean Software Development.

[+2] [2008-09-24 13:26:27] DaveF

My vote goes to Mike Cohn and his book 'User Stories Applied'. Very readable, talks sense in that there are loads of 'Why aren't we doing it like this already' moments. His companion book 'Agile Estimating and Planning' is also very good and goes into more depth but still keeps it readable.

As a beginner they're a 'must have' read.

[+2] [2008-09-24 13:02:39] JoshReedSchramm

Not strictly agile but many of the practices fall in line with agile

  • The Pragmatic Programmer - Andrew Hunt & Dave Thomas


  • Refactoring - Improving the Design of Existing Code - Fowler, Beck, et. al.

[+2] [2009-03-26 21:51:08] Charlie Flowers

For me, " Agile Software Development", by Alistaire Cockburn [1]. Here's a StackOverflow post [2] I wrote about why I love it so much.


[+2] [2009-03-27 04:54:15] Gishu

alt text Extreme Programming Explained - Kent Beck

I'd recommend going through both revisions.. changed me as a programmer for life. Also if you get back to the book after a year or so of actual practice.. you'll appreciate this book even more and see hidden but key things that you speed read the first time.

[+2] [2009-04-22 08:41:37] Colin Desmond

I am currently most of the way through " Art of Agile Development" [1] by Shore & Warden. It provides a good introduction to XP and other agile methodologies such as Scrum. Most usefully for me it explains why trying to mix and match your own set of agile principals is a bad idea until you become an expert as the subtle way the princiapals and practices support each other is not obvious until you have lived them for a while.

I'd also very highly support Charlie in his love of Alistair Cockburns Agile Software Development [2], a very useful book to get to understand why agile works in terms of how and why people work.


[+1] [2009-05-24 04:31:20] Nathan Palmer

The Art of Agile Development [1] has been a great help getting my team into Agile development. Before that book I read Agile and Iterative Development: A Manager's Guide [2] which gave me enough information about each method that I knew my team would work best using many XP practices (thus why I chose to read further into the art of agile). Although even with both of those books I'm not there yet. They will give you the basics but practical application comes from personal discovery and talking with real people applying them.


[+1] [2009-12-08 05:05:20] Gishu

Just managed to sneak some time off to read Domain Driven Design by Eric Evans [1].

The book was like a mini-revelation. All the things I wanted to tell some struggling teams but didn't have the right words. e.g. teams getting stuck in writing next-gen infrastructure code but not attacking the domain problems that the customer is actually trying to solve.

Especially the Strategic Design part. Be warned though this is the "hard" agile. But no pain.. no gain. Fits with XP without compromising on design like most teams do.. Details the constant-design fine print that is mostly unwritten/unpublished . Have a couple of chapters to go but "Must Read/Highly Recommended".


[+1] [2009-04-06 11:51:27] Yuval

Several books I like very much:


[+1] [2009-04-09 20:52:43] Stuart Caborn

It really depends upon what you want to learn about.

If you want to learn about the human side of agile then you should definately read "Agile Software Development", by Alistaire Cockburn [1]. The discussion on failure modes of humans is fantastic.

If you want to learn about how to plan a project then Agile Estimating and Planning by Mike Cohen [2] is the one to read.

If you want to understand how to deliver lean project and the thinking behind a lot of the lean practices which are bandied about then read " Implementing Lean Software Development: From Concept to Cash" by by Mary & Tom Poppendieck [3].

If you are more interested in the practical side of TDD/Refactoring/Code Design then I'd pick up one of Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series) [4].


[+1] [2009-03-26 08:32:15] Aaron Digulla

I've read and really like Extreme Programming Explained [1], too, because it was such an eye opener. But for a beginner, I'd suggect " Test-Driven Development - By Example [2]" from the same author. The reason is that agile can seem a bit overwhelming for someone who is new to software development and testing is something that you can (and should) use all the time, even in non-agile projects.


[+1] [2009-03-26 08:38:24] Tarkus

Here is a good and new book:

Clean Code: A Handbook of Agile Software Craftsmanship [1] (Aug 11, 2008)

P.S. find more .NET related books at [2]


[+1] [2008-09-24 13:03:16] Einar

I would heartily recommend the Pragmatic programmers starter kit [1]


[+1] [2008-09-24 13:00:34] JohnIdol

Agile Development with ICONIX Process [1]


[+1] [2008-09-24 13:03:05] SaaS Developer

[0] [2008-09-24 13:03:14] Lars Westergren

"Practices of an agile developer" is nice. Tells developers common pitfalls (illustrated with a devil whispering bad advice - "Go ahead and do a little cut and paste here, there isn't time to refactor..."), and good agile practices (illustrated by an angel of course), as well as telling you "how it should feel" when you are doing agile right.

"The pragmatic programmer" isn't only about agile, but covers a lot of it anyway.

[0] [2008-09-24 13:18:30] rohancragg

One I like is: Applying UML and Patterns by Craig Larman [1] (An Introduction to Object-Oriented Analysis and Design and Iterative Development)

Applying UML and Patterns by Craig Larman


[0] [2008-10-03 20:44:37] Brian Kelly

My favorites (warning, I'm a Pragmatic Bookshelf groupie)

  • The Pragmatic Programmer (started with this one)
  • Practices of an Agile Developer
  • The Art of Agile Development
  • Pragmatic Version Control with Subversion
  • Ant in Action (for automating builds)
  • Pragmatic Project Automation (for automating builds and continuous integration)
  • Continuous Integration: Improving Software Quality and Reducing Risk
  • Ship it!: A Practical Guide to Successful Software Projects
  • Refactoring - Improving the Design of Existing Code
  • The Productive Programmer
  • Clean Code (only just started but am liking it already)

With all these books you'd think I'd be able to answer more questions...

[0] [2010-01-12 14:52:23] Ivor

The book Agile Testing: A Practical Guide for Testers and Agile Teams [1] is a great resource for all of the Agile team. Its an interesting perspective on how to approach delivering the goods by incorporating test into the whole process.

I am a great believer that to know a subject is to have an opinion on the subject. To have a better understanding of Agile, you have got to know your stuff outside of your comfort zone, be it design, test, development or management.

The other thing I reccomend is to be an explorer when approaching any topic in your drive to do things better, quicker, faster ... oh and don't forget right! I like to listen in and sometimes flame on people like James Bach, Elisabeth Hendrickson, James Whitaker, Misko Hervey, the one and only Joel, and the Evil Tester. Just to name a few. All of these people have helped to frame the right questions I need to ask and have helped interpret some of the ideas that agile plant in my head. Don't forget its all about the asking :)

Anyways, happy hunting!


[0] [2010-05-18 15:59:16] ratkok

Becoming Agile: an imperfect world [1] by Greg Smith and Ahmed Sidky


[0] [2011-06-08 00:42:38] Sandeep

I would recommend Growing Object-Oriented Software Guided by Tests [1]. The book uses tests to guide through iterative development.


[0] [2011-10-09 10:34:22] Grand

If you need a single book I would vote for # 5: Agile Principles, Patterns, and Practices in C# (Robert C. Martin Series) [1]

It covers all most essential aspects of Agile.

If you would like a list of online reading and books for Agile developer / architect, I compiled this one based on patterns of mistakes and a regular pain from my real projects: Software Developer / Architect Recommended Reading [2]


[0] [2009-06-03 10:11:10] Billy

Kent Beck's books are not about Scrum, but are indeed the best on Extreme Programming, I highly recommend the "Explained" one or the "Installed" one by Ron Jeffries even if you're mainly looking into Scream related books.

[0] [2009-05-24 03:41:50] Cam Wolff

Of the list provided, my favorite is " Scaling Software Agility: Best Practices for Large Enterprises [1]". It provides the widest coverage of Agile topics and applies the coverage against the stereotypical enterprise. The book is realistic and pragmatic. It does a good job providing evidence of the value of Agile in the enterprise and helps with selling agile to executive management and managing real life agile challenges in the enterprise. I use this book frequently as a leader of a a number agile teams.

My comments on the other books that I am familiar with:

I have not read the other two books but they do look intriguing.