Are you a developer who wants to improve your personal development habits in a way that helps not just yourself, but also incrementally improves your project and your team? If so, then run, don't walk, and get your hands on Practices of an Agile Developer: Working in the Real World by Venkat Subramaniam & Andy Hunt.
Practices of an Agile Developer (and the even more recent Agile Retrospectives, also from the PragmaticBookshelf) is not specific to any particular agile method or programming language/environment. It is a collection of almost four dozen real world, down-to-earth, small but high-impact habits that an individual can easily digest and incrementally to become a more agile and pragmatic developer (as well as a better team-mate). It is not religiously devoted to a single approach or attitude, rather it is incredibly mindful about all the little things a single person can do that make a big positive difference for himself, his project, and his team.
What I like most about the book isn't just that it is really useful, but that it is usefully real! It acknowledges some of the less-than-desirable realities many
Advertisement
developers may live with and some of the tradeoffs they must consider when applying these practices in the real world. Each practice is clear enough and concise enough to be put into action shortly after reading it.
The first two chapters start you off on the incremental and evolutionary path to agility in nice bite-size pieces. Chapter 1 (Beginning Agility) covers Work for Outcome, Quick Fixes Become Quicksand, and Criticize Ideas Not People, and Chapter 2 (Feeding Agility) tells how to Keep Up with Change, Invest in Your Team, Know When to Unlearn, Question Until You Understand, and Feel the Rhythm. Those two chapters set the personal and interpersonal stage for the rest of the practices in the book, which are divided into sections on What User Want, Agile Feedback, Coding, Debugging, Collaboration, and how to adopt the practices one at a time or attempt to rescue a failing project.
Some readers will recognize a few things like "Tell, Don't Ask" that originated from Andy Hunt and Dave Thomas' now classic book The Pragmatic Programmer. This book certainly follows in the footsteps of that one in some of its writing style as well as in its insights and their impact. (So if you liked one, you'll probably like the other too!)
I believe Practices of an Agile Developer successfully captures the essence of the habits and attitude a would-be agile developer should strive for because it focuses not only on technical and logical factors, but also on important communication aspects of collaboration and feedback and being open to and mindful of others. And it does this without taking a hard-line stance around a specific method or corporate culture. As such, I truly feel this book delivers on its promise of not only describing a set of productive personal development habits, but in helping you steadily improve and put them into action! I only wish it did the same for more than just the development role within a company or project.
About the Reviewer
Brad Appleton is an enterprise SCM/ALM solution architect for a Fortune 100 technology company. Currently he helps projects and teams adopt and apply agile development & SCM practices. Brad also author's the Agile CM Environments blog, and is co-author of Software Configuration Management Patterns: Effective Teamwork, Practical Integration,the "Agile SCM" column in CMCrossroads.com's CM Journal, and is a former section editor for The C++ Report. Since 1987, Brad has extensive experience using, developing, and supporting SCM environments for teams of all shapes and sizes. He holds an M.S. in Software Engineering and a B.S. in Computer Science and Mathematics.