Friday, August 7, 2009

Agile Project Management: Creating Innovative Products

Author: Jim Highsmith Format: Paperback, 432 pages Publisher: Addison-Wesley Professional; 2nd edition (July 20, 2009) ISBN-10: 0321658396 ISBN-13: 978-0321658395 I'm at a slight disadvantage in not having read or reviewed the first edition of this book. Based on the reviews of the first edition though, it seems to have been very successful with its readership. This second edition is touted to have been updated with newer techniques for larger projects. I can only imagine that was some of the feedback from people who liked the previous incarnation, but wanted to apply it to broader contexts. We'll see how this edition presents to the first time reader. This book is part of the publisher's Agile Software Development Series. That means, while this book can stand on its own, it is part of a larger body of information regarding agile development in general. The target of this book, is the application of agile development to product development. That would seem sort of like a "duh", since the idea of the agile process in general, is to become more effective at developing applications as products. I imagine however, that this book is specific to the "nuts-and-bolts" of Agile in the real-world environment, as opposed to pure "theory". There doesn't seem to be a way to read or review this book without mentioning the connection to the Agile Alliance. Author Jim Highsmith "is a founding member of the Agile Alliance, co-author of the Agile Manifesto, and director of the Agile Project Management Advisory Service for the Cutter Consortium", according to his bio on the book's back cover. Like most technical books, the author has leveraged his "day job" heavily to produce the book now sitting beside my keyboard as I create this review. In fact, this "leveraging" has been infused into virtually every part of Highsmith's text. My first piece of advice is "hands off" this book, if you don't have the faintest idea about software development in a production environment. Maybe I'm being too harsh, but if you are the casually curious sort, who thinks it would be "cool" to learn about Agile, you may find yourself in way over your head, if you tackle this book cold. I can see Highsmith's text being more aimed at the development team at my day job, since portions of this book remind me of conversations I've had with some of the programmers there. This book is best used by an individual or group, that has a business need to develop or enhance an Agile process in a production environment (and if, at this point, you need to ask what Agile Software Development is, take some time, do some research, and come back when you're ready). Despite the nuts-and-bolts promo, Chapter 1 does start out at a high level, explaining concept and process. The Agile Alliance and Agile Manifesto are referenced heavily, as are some practical business examples. Agile is presented both as a process and as a movement in this chapter, and the reader who is part developer and part business manager will have the greatest ability to benefit from the material. The book operates like a set of building blocks, constructing the structure of Agile, one chapter at a time. Don't look for a quick fix or speedy reference guide here. This book is meant to be read cover-to-cover, consumed like a multi-course meal. Nothing can be skipped, particularly if you develop software products and are serious about integrating Agile into your world. Each chapter ends with a "Final Thoughts" section, summarizing the content. The content itself is hardly what you'd call "entertaining" (some books are written that way), so I recommend not only a strong interest in this topic, but reading it while your mind is alert, or at least fully caffeinated. On the other hand, each chapter begins with a hypothetical conversation between two project managers, so Highsmith does provide a more personal element for your consideration. The "Principles to Practices" section in Chapter 4 got my attention, because that's what this book is all about, and not just regarding the development of a software product. Agile is as much about people and teams as it is about what they create. In fact, it's all about the flow of information and activity between the different groups and stakeholders in the process. I was very appreciative of how the book took time to describe and illuminate the interaction between the products, the players, and the principles of Agile development. While on the one hand, I experience this book as well rounded, on the other hand, and I've mentioned this before, it has its biases. That isn't bad, but it does mean that not everything Agile is included. Agile Project Management (APM) is greatly emphasized as a framework, but that means other Agile frameworks aren't available in this text. The book teaches its own flavor and brand, rather than a truly generalist approach. This particular "brand" may or may not work for any given reader's particular business needs or organization. Of course, that's like saying, Microsoft Windows may not be a good fit for a particular company's business model (and it may not). Biasing content isn't to be avoided. Just be mindful that you're looking at only one neighborhood in a larger community. I suppose that's why this book is part of the Agile Software Development Series. The prudent reader will want to sample other series items. Some months ago, I reviewed O'Reilly's The Art of Lean Software Development which, if you don't feel up to Highsmith's book at the moment, might be more appropriate as an introduction of both theory and practice. That said, project and development team managers should be well-positioned to take advantage of the wisdom and experience presented in Agile Project Management, as a way of garnering a better understanding of Agile methodologies in project management.