Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a solo developer, I think I'm using an Agile-like process, but I'd like to compare what I'm doing to real Agile and see if I can improve my own process.

Is there a book out there that's the de-facto standard for describing best practices, methodologies, and other helpful information on Agile? What about that book makes it special?

share

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

locked by Thomas Owens Oct 4 '13 at 12:19

This question exists because it has historical significance, but it is not considered a good, on-topic question for this site, so please do not use it as evidence that you can ask similar questions here. This question and its answers are frozen and cannot be changed. More info: help center.

1  
The only canonical material about agile is the Agile Manifesto. –  mouviciel Dec 9 '11 at 8:39
comments disabled on deleted / locked posts

14 Answers

up vote 20 down vote accepted
+50

Another great book is Robert C. Martin's Agile Software Development, Principles, Patterns, and Practices. This is focused on developer practices and coding and is a must read for any developer serious about agile software development. There is also a C# version of the book that he and his son Micah wrote, so if you are a .NET developer, that version might be the one for you.

Agile Software Development, Principles, Patterns, and Practices

share
3  
What exactly is that on the cover? –  talonx Oct 12 '10 at 5:23
    
Eta Carinae - see hubblesite.org/newscenter/archive/releases/1996/23/image/a/… –  andcoz Oct 20 '10 at 15:43
2  
Uncle Bob can preach quite a bit--but at the end of the day he has some great lessons. His book "Clean Code" was what made me realize what OOP was, and how far off the mark my code had been. –  STW Oct 20 '10 at 19:25
    
@andcoz - It says "doomed star" :D –  talonx Nov 3 '10 at 14:44
    
Bob is legendary. It's hard to go wrong with his books. –  Rein Henrichs May 2 '11 at 23:45
add comment

For the best insight into overall agile project practices I recommend The Art of Agile by James Shore & Shane Warden. It's focussed on XP practices (but that's really because XP is where all the specific developer practices are defined), but has a big picture focus on how Agile projects work.

The Art of Agile

A great thing about this book is that James Shore is publishing the whole text on his website for free, so you can try before you buy.

share
    
+1 Excellent book. –  talonx Oct 12 '10 at 5:23
    
I also really enjoyed this book. –  Eric King Oct 25 '10 at 4:00
    
+1 Indeed. An excellent resource. –  Chiron Mar 22 '12 at 21:56
add comment

If you have to purchase only ONE book.

Buy Practices of an Agile Developer.

alt text

Amazon Reviews

share
    
I don't know why I was expecting that one... –  DavRob60 Sep 28 '10 at 16:24
    
It's sign you must buy it –  user2567 Sep 28 '10 at 16:44
    
Do you get a commission on sales or what? –  DavRob60 Sep 28 '10 at 18:20
    
No, I'm helping you for free. Agile coaching is one of my speciality –  user2567 Sep 28 '10 at 19:24
1  
+1 I reread this book twice a year. –  Chiron Mar 22 '12 at 21:57
show 1 more comment

Extreme Programming Explained

Probably the oldest book I can remember which helped make Agile principles popular. Agile is fast becoming a buzz word in the world of Tech. I feel Extreme Programming (XP) is a good place to start before the term Agile just seems to lose meaning.

Extreme Programming Explained

share
1  
From my undergraduate experience, I believe XP programming is a subset of agile. Not saying this is a bad book/wrong book but this is one type of agile programming. –  Chris Sep 28 '10 at 17:07
    
Yes, it is. It's the kind of Agile that programmers can relate directly to the most. The Agile term itself is more of a term for project managers these days. That is why I put it on this list. –  sunpech Sep 28 '10 at 17:26
    
Great justification. :-) –  Chris Oct 19 '10 at 17:43
    
@Chris, it's more a forebear than a subset. As with many great ideas, various people took it and ran with it. Some of them ran way too far, but some of them didn't. –  Rein Henrichs May 2 '11 at 23:48
    
Though the white book is awesome, I would strongly recommend the first edition. The 2nd edition (the one mentioned above) is a great book if you have already internalized agile. Some might argue that the second edition is more a philosophy book than a "process" book. IMO the first edition is a better place to start. I started with the XP white book (first edition) in 1999 and though I have ready many more, it's still my favorite one. Re: "xp is a subset of agile". Not the right way to put it. Agile is the abstract class whereas XP, Scrum, FDD, etc are the implementations. –  Julio May 2 '11 at 23:58
add comment

There is also a great list of The Top 100 Agile Books on Jurgen Appelo's NOOP.NL site. He ranked the books based on Amazon.com and GoodRead.com reviews and popularity.

It's worth taking a look through this. I think I own all of the top 20 books and a few others beside, but then I'm a bit of a bookworm.

share
add comment

The Agile Samurai

Just purchased this myself and found it to be a refreshing look on how to get started with agile. Might be of help to you.

Cheers. Jas. alt text

share
3  
Last chapter states: "When your project inevitably fails, you must kill yourself!" –  webbiedave Oct 19 '10 at 22:07
1  
...so that's where our good kitchen knives and developers from that project went... –  STW Oct 20 '10 at 19:27
add comment

For "the Agile process" - I'd recommend Mike Cohn's "Agile Estimating and Planning" - bearing in mind that it's Scrum-centric.

alt text

Cohn covers a lot of the basics as well as some of the things new Scrum teams often struggle with - estimation using Story Points vs. Ideal days, what do do if you fail a story in a sprint, when to re-estimate/size and when not to, etc.

He also goes into some really interesting stuff that's mainly the domain of a Product Owner - things like how to assess and prioritize features, etc.

This book is on the top of my list whenever I'm asked about Scrum.

As far as technical practices go, I highly recommend Roy Osherove's "The Art of Unit Testing". Osherove presents a very pragmatic approach to unit testing. Presents a good approach on how to refactor code to become more testable, how to look for seams, etc. It is a .Net centric book, however.

alt text

share
1  
Osherove's book was a GREAT intro to unit-testing--I would also suggest Bob Martin's "Clean Code" for approaches to turning procedural code into OOP –  STW Oct 20 '10 at 19:27
    
Art of Unit Testing is a great read for learning about mocks and stubs. –  Brian D. Dec 16 '10 at 22:19
add comment

This is by no means as comprehensive as the books others have suggested, because it bypasses a lot of things in favor of just explaining how this one particular team operates, but I found "Scrum and XP from the Trenches" (Freely available online in PDF form) to be immensely helpful in a "Rubber meeting the road" sense.

You'll still want to read up into many of the others listed, but to me this was a full explanation of many aspects of the process that I needed to tie it all together.

share
add comment

If you want to practice Test Driven Development and Continuous Integration, which I find to be some of the best agile practices to follow I'd look at these books:

share
add comment

Agile Adoption Patterns: A Roadmap to Organizational Success by Amr Elssamadisy

Agile and Iterative Development: A Manager’s Guide by Craig Larman

Agile Estimating and Planning by Mike Cohn

Agile Project Management: Creating Innovative Products by Jim Highsmith

Agile Retrospectives: Making Good Teams Great by Esther Derby and Diana Larsen

Agile Software Development by Alistair Cockburn

Agile Software Development with Scrum by Ken Schwaber and Mike Beedle

Becoming Agile: ...in an imperfect world by Greg Smith and Dr. Ahmed Sidky

The Business Value of Agile Software Methods: Maximizing Roi with Just-In-Time Processes and Documentation by David F. Rico, Hasan H. Sayani, and Saya Sone

Collaboration Explained by Jean Tabaka

Crystal Clear: A Human-Powered Methodology for Small Teams by Alistair Cockburn

Encyclopedia of Software Engineering edited by Phillip A. Laplante

Extreme Programming Explained: Embrace Change by Kent Beck

Fearless Change by Linda Rising and Mary Lynn Manns

Innovation Games: Creating Breakthrough Products Through Collaborative Play by Luke Hohmann

Lean Software Development – An Agile Toolkit for Software Development Managers by Mary and Tom Poppendieck

Lean Solutions by Jim Womack and Dan Jones

Lean Thinking by Jim Womack and Dan Jones

Managing Agile Projects by Sanjiv Augustine

Managing the Design Factory by Donald G. Reinertsen

Planning Extreme Programming by Kent Beck and Martin Fowler

Scaling Lean & Agile Development: Thinking and Organizational Tools for Large-Scale Scrum by Craig Larman and Bas Vodde

Scrum Pocket Guide: A Quick Start Guide to Agile Software Development by Peter Saddington

The Software Project Manager's Bridge to Agility by Michele Sliger and Stacia Broderick

User Stories Applied by Mike Cohn

share
add comment

Read Today and Tomorrow, by Henry Ford. (From 1926)

The guys at Toyota used it to develop their business model: the toyota way.

The lean crowd has been all over Toyota's lean methods.

Agile programming follows in that tradition.

It's not an HOWTO, but it gives great insight.

share
add comment

Based on patterns of mistakes and a regular pain from my real projects I compiled this least of online reading and books for Agile developer / architect: Software Developer / Architect Recommended Reading

share
add comment

Scotty from iDeveloper.tv did a talk at nsconference mini about XP for the solo developer, I think you can buy the video from the website and I recommend that as an overview of the key features of agile development and how/when/if they make sense for one-person shops.

share
    
In the Question, I specify A Book. not a video. Maybe you answered the wrong question? –  DavRob60 Oct 25 '10 at 14:56
    
@DavRob60: no, I just assumed you were after the information, rather than a bound collection of sheets of paper. With that assumption in place the delivery medium is less important. –  user4051 Oct 25 '10 at 16:05
    
Well, this answer would better fit in the other question I linked in the question' text. –  DavRob60 Oct 25 '10 at 16:47
    
@davrob60: sorry the information didn't help you. Feel free not to vote it up. –  user4051 Oct 25 '10 at 19:49
add comment

Alistair Cockburns book on his Crystal methodologies is worth while reading - partly because it gives you an alternative the the usual Scrum methods, and partly because he was one of the original guys who came up with Agile in the first place, so I hope he know what he's talking about.

Crystal is an interesting methodology as it scales from small teams to very large ones, he describes the changes required to make agile work in these different environments.

As he says:

Crystal is a family of human-powered, adaptive, ultralight, “stretch-to-fit” software development methodologies.

“Human-powered” means that the focus is on achieving project success through enhancing the work of the people involved (other methodologies might be process-centric, or architecture-centric, or tool-centric, but Crystal is people-centric).

“Ultralight” means that for whatever the project size and priorities, a Crystal-family methodology for the project will work to reduce the paperwork, overhead and bureaucracy to the least that is practical for the parameters of that project.

“Stretch-to-fit” means that you start with something just smaller than you think you need, and grow it just enough to get it the right size for you (stretching is easier, safer and more efficient than cutting away).

This might mean that your process is actually Agile - as there really is no such thing as a "real" agile process - they're all valid (if they work for you, of course)

share
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.