Books Considering that one of the principles of software agility is "less is more" (as in minimal, low-ceremony software processes), you could spend a lifetime reading about even niche aspects of agility. So here's the second part of our pick of the crop of agile planning books:
1. Agile and Iterative Development
Craig Larman; Addison-Wesley, 2004
This book describes the key practices of four allegedly important development processes: Scrum, XP, the Unified Process (or UP, and its commercial counterpart, the RUP) and Evo.
Larman discusses a combination of risk-driven and client-driven iterative development. With the risk-driven approach, you'd choose the riskiest, most difficult elements for the early iterations. Conversely, with client-driven iterative development, the choice of features for the next iteration comes from the client – whatever they perceive as having the highest business value.
(In Agile Estimating and Planning which I covered last time, Mike Cohn says much the same thing but refines the advice to: "Work on features in the order that optimises the total value of the project. Early elimination of a significant risk can often justify developing a feature early.")
2. Agile Project Management
Jim Highsmith; Addison-Wesley, 2004
This book describes the five-phase APM framework (for the record, the five phases are: Envision, Speculate, Explore, Adapt, and Close). But the advice can be applied to most other agile frameworks; especially Highsmith's six principles of agile project management.
In the chapter on the Speckled (sorry, Speculate) phase, Highsmith says: "Plans are guides, not straightjackets...Plans have to adapt because the customers' understanding of their requirements changes, because estimates of work effort vary because of unknowns, because people arrive or depart from the project team, and for a variety of other reasons."
3. Software Estimation: Demystifying the Black Art
Steve McConnell; Microsoft Press, 2006
I've included this book even though it's primarily about a subset (albeit a pretty major one) of agile planning: estimating. Truth is, after reading many of the books listed here you'd be forgiven for thinking that agile planning is some monstrous task that only a select few highly knowledgeable people in the industry can ever hope to get right.
But if you get good at the software estimation part, then the other major part – prioritising features – is a cinch, and many of the planning issues I've discussed in the last few articles sort of melt away. Whether you're a project leader or a team member, if you can get good at creating accurate estimates, your life becomes a whole lot easier.
Then, of course, there are all the process-specific books such as the Scrum books (here and here), Planning Extreme Programming (as covered last time), Feature-Driven Development (now out-of-print, but available second-hand), Crystal Clear (out-of-stock at the publisher), and my own Agile Development with ICONIX Process, which all offer advice on agile planning.
As I mentioned above, though, agile planning isn't nearly the black art that it's sometimes made out to be. Get the finer details right and the broader stuff usually ends up taking care of itself. ®