18 of 18 people found the following review helpful
- Published on Amazon.com
In my own work, I am struggling with various agile vs. non-agile practices, but sometimes it can be hard to see why a non-agile practice is worse in the long run than an agile practice. This books goes a long ways toward identifying the problems with non-agile practices by identifying an agile practice, then showing the benefits of following it as well as the result if it isn't followed. Throughout the book, a little angel and a demon show up-the angel illustrating a "good" practice, and the demon illustrating a "bad" practice. This makes the book a fun read and I think really helps in illustrating the authors' points.
The book includes 45 different points that an agile developer should follow. For example, "Criticize Ideas, Not People" and "Keep it Releasable". Each section begins with one of these points, followed by a little demon telling you why you shouldn't follow the agile principle. More often than not, you'll find that the demon's arguments are things you might have heard from your co-workers, managers, or someone else in your work environment. After the authors' explain why the particular agile principle is important, the little angel sums up why the principle is important. Again, it sounds silly, but it's an effective teaching mechanism. It's also a lot of fun when the demon's arguments are ones you've heard before.
In reading the book, I had the sense that the authors were really trying to be unbiased in their discussion of agile. They present some very convincing case studies of how some projects when terribly wrong, and how it could have been prevented with some very simple agile practices. With some books on agile, you have the sense that the authors have never written a line of code in their life. This book was a good reality-check for me. The authors sound like they know what they're talking about, and they talk about real-life problems that all of us experience in our coding. I would highly recommend this book to developers looking to become more agile, but needing something that's actually applicable to the real world.
47 of 54 people found the following review helpful
- Published on Amazon.com
I bought this book because I had another Pragmatic Programmer book that I liked and wanted to see what best practices the Agile Developers had in mind. I was really disappointed in it. The short review is that, it's a decent book with a lot of good ideas, but the packaging up of those ideas left some to be desired, I'd recommend going back to the olde thyme Extreme Programming books and read the much more thorough understanding of how to work quickly and efficiently in this environment. This felt a little like cliff notes for Kent Beck's and Martin Fowler's excellent books. (and don't get me wrong, I'm not a crazy xp'er, I just read the books and took the parts that I liked and made sense to me)
The longer review...
The book is composed of tips. Most tips are about 2 to 4 pages, which make for a very quick read. This is both good and bad - it seems very overviewy. The structure of every tip, starts out with the title, a description of the tip and then a "what it feels like" little paragraph that gives you the emotional state you should be in when you are doing this and a "keeping your balance" bullet point. To me it feels very touchy feely/self-helpy and turned me off, but that's just a personal issue - others may find this format very novel and helpful. The length of each tip precludes it from going in depth into any particular one.
The first two chapters "Beginning Agility" and "Feeding Agility" read like some kind of self-help manual. To sum them up they mean to say,"Don't be a jerk to your team." It seems to me, anyone who is reading this book who is always assigning blame, looking for scapegoats, sticking fast to unsupportable claims - they are unlikely to change because the author's suggest that maybe that's not the best way. I'd wager that most readers of this book already are focused on working well with the team - at most this should have been a few pages. The second chapter spends nearly 20 pages that saying, you should keep your skills up to date and at least have a broad measure of what's going on in the ever progressive world of technology.
The next 4 chapters (the only ones before the epilogue), either repackage Extreme Programming (with unit testing, group ownership, iterative programming, quick feedback loops, keep the customer in the mix, refactor, keep things simple) with a couple more experiential suggestions. Strangely, they credit XP with stand up meetings, but none of the almost everything else they seem to have cribbed.
One thing they do throughout the book, that I like, is they suggest problems and solutions because of real world experiences they've had. I enjoy books that do that because you can see how people get to where they are and how they develop. Sometimes, their solutions agree with you or give you a new insight in how to deal with something.
The epilogue gives you some ideas on how to move to agile developing.
It's not a bad book. Generally the ideas are valid and work proven and will probably be useful to most people. Personally, I prefer the more in depth XP books from which this seems to repackage most of it's core ideas, it seems more like XP lite, that you can read in one sitting in an afternoon (which I did) and come away with a couple good ideas. So buy this for a quick read, but I'd say, if you're really interested in these ideas, go for the original XP books.
11 of 11 people found the following review helpful
- Published on Amazon.com
This is an absolutely terrific book. It's well-written and lays out 45 essential practices for starting and keeping an agile project rolling.
Each chapter starts out with a very sensible overview, pointing out where the practices for that chapter might fit. Each specific practice is nicely done, with short, to-the-point discussions of what the practice is, how you roll in to it, and how you stay in the groove with that practice.
There's a lot of goodness in the bibliography for additional reading, plus the epilogue, "Moving To Agility" is worth pasting on the foreheads of stubborn mangement who are unwilling to listen to rationale for improving the development environment. The specific steps for rescuing a failing project are terrific, as are the other epilogue sections.
Lastly, there's a nice pull-out reference card with one or two sentance blurbs on each practice.
5 of 5 people found the following review helpful
- Published on Amazon.com
This book by Venkat Subramanian and Andy Hunt (one of the authors of "Pragmatic Programmer") provides an interesting view into the life of an agile software developer. So many of the misconceptions of what agile development processes are (and aren't) are broken by this book with its clear articulation of the foundational tenets of the concept. Having worked with TJ Hadfield, one of the key fathers of agile development at the C3 project, I can say this book re-enforces much of what I've learned from him and his many years of wisdom and experience.
Too many folks have derided agile software development as a `do whatever you want' process that isn't a process. This book does a good job at clearly stating the goals of an agile developer and walking through what the process means to the developer. It paints the true picture of the process and the foundation: treating developers and responsible professionals capable of implementing a solution without enough information. Agile admits that we'll always be imperfect in defining the specification, so it embraces the concept.
Other key points the book covers includes: Daily stand-up meetings. Finding bugs early. Test driven development. Nightly builds. All with the goal of making a schedule by making lots of little milestones. Plus, putting a process in place that hums along with a rhythm. A nice call-out in the book identifies out practical tools required for the agile developer including the wiki (for documentation), continuous integration, automated build and others.
The playful tone of the `devil' and `angels' on the shoulders of the developer is an interesting way to present the problems in software and solutions presented by agile, even if it's a little condescending (as though we're all intent on listening to the worst advice in software development). I understand the intent but could imagine a little less cartoon-ish way of presenting the problem/solution mix.
Overall, an excellent book to walk through what it's like to develop in an agile process and how it will feel once it's done. It provides insight into how to adopt it successfully and gives perspective on the end-product you may not see immediately.
6 of 7 people found the following review helpful
- Published on Amazon.com
Practices is pretty well just that - a list of practices for agile programmers. If you haven't done agile before or are just getting started, then this will provide you a good primer for getting a handle on the most important practices that span most of the agile methodologies - XP, Scrum, Crystal, etc. It is very readable and is organized in a way that you can use it for reference later to look up specifics about each practice.
What makes the book only average however is the general way that it defends each practice. In contast to another Pragmatic Programmer title, "Ship It!", there is a lack of explaination of the "why" of each practice. In some cases, they take a shot at explaining why, but it general terms that aren't really compelling. (They certainly won't be compelling if management or your peers are skeptical of agile practices.)
Even if you believe in agile, as I do, you need to understand why you do certain things and how each of those practices fit together to support each other. Software development isn't about blindly following a process - you have to understand what you are doing. For that, you'll have to look elsewhere.