En ouvrant le livre et en lisant le sommaire, on se rend tout de suite compte de sa qualité: il est architecturé en conseils regroupés dans des chapitres à thème.
Chaque conseil est présenté suivant ce plan:
- Le conseil, en une phrase très courte. Exemple: "Keep it releasable"
- Un petit logo de diable qui critique ce conseil. Exemple: "On a trouvé un bug
bloquant, arrête tout ce que tu fais et corrige-le sans te soucier de la procédure habituelle, on va envoyer un patch vite fait, personne ne le saura"
- Une section qui développe sur le sujet en quelques pages, et argumente contre la critique.
- Un petit logo d'ange qui conclu. Exemple: "soyez sûr qu'à tout moment votre projet est compilable, testable, et déployable"
- Une section "What it feels like", qui résume le gain de l'approche
- Une section "Keeping your balance", qui pondère la règle. Exemple: si vous devez envoyer un patch au plus vite, pensez à faire une branche dans subversion, pour ne pas rendre le système dans un état instable"
La seule chose qui manque pour que le livre soit parfait est une dernière section à chaque conseil, qui propose au lecteur un ou des conseils à lire ensuite, car l'ordre des conseils dans chaque chapitre m'a paru totalement arbitraire. Mais c'est minime.
Pour conclure, "Practices of an Agile Developer" devrait être lu par tous les développeurs, quelle que soit leur expérience. C'est un outil formidable pour progresser, mais aussi pour évangéliser vos amis: toutes les critiques faites à l'agilité sont décortiquées et démontées de manière intelligente, en suivant un argumentaire parfait.
Une fois de plus Venkat nous propose un outil pragmatique (au sens noble américain du terme) englobant un ensemble de bonnes pratiques de comportement en entreprise. Ce livre est un exemple à suivre et est très bien complété par Clean Coder de Robert Martin. Un livre que devraient lire tous les développeurs français (ou supposés tels).
Commentaires client les plus utiles sur Amazon.com (beta)
18 internautes sur 18 ont trouvé ce commentaire utile
Excellent discussion of using agile in the real-world21 avril 2006
- Publié sur 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 internautes sur 54 ont trouvé ce commentaire utile
xp + self help = agile?20 juin 2006
- Publié sur 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 internautes sur 11 ont trouvé ce commentaire utile
Well-done, concise book on doing Agile right23 mai 2006
- Publié sur 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 internautes sur 5 ont trouvé ce commentaire utile
An Agile Developer's Primer18 octobre 2006
- Publié sur 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 internautes sur 7 ont trouvé ce commentaire utile
Good Primer For Agile Beginners25 juin 2006
- Publié sur 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.