<pre>Author/s : Scott Ambler Publisher : Wiley Category :Project management, Process and Best Practices Review by : Lasse Koskela Rating : 7 horseshoes</pre> Agile Database Techniques is a brilliant book. Already after reading the first chapter I felt like I had been run over by a truck, wondering why I haven't paid more attention to these issues before. Yet, it also has its flaws which I will go into further down. Ambler starts laying out the groundwork for the second part of the book by introducing his Agile Data method, UML and data modeling. He also gives a very useful jump-start tutorial on data and class normalization and discusses the infamous object-relational impedance mismatch. Worth noting is that in each chapter (throughout the book) Ambler makes sure that the reader understands how the subjects relate to the role of an agile DBA and what should he be looking out for. The subjects in part one were introduced so well that I more than once thought, "I've never seen such a well-balanced and informative tutorial." The second part of the book is dedicated for discussing how evolutionary software development is the reality and how techniques such as Agile Model-Driven Development and TDD can assist in surviving in this climate. The chapter on database refactoring is intriguing and the more comprehensive list of database refactorings, found in the appendices, is something I'll definitely Xerox and keep with me in my traveling tool bag. The second part also covers database encapsulation strategies and approaches to mapping objects to relational databases which, again, is a delightfully comprehensive tutorial, as well as touching on the topic of performance tuning. The third part is a seemingly random collection of subjects such as finding objects in a relational database, referential integrity, concurrency, security, reports and XML with databases. The text is again of high quality and provides an entertaining walk through the woods, but I feel that these chapters had very little to contribute to the subject of the book. This disconnect is made even more clear when Ambler finishes with a 10-page guide on how to become agile and to introduce agility into the organization. After reading the book, I feel confused. On the other hand, this book is full of little islands of useful insights that I wouldn't think twice recommending for others to read. On the other, the book as a whole is very fragmented and pretty far from what the book's title might suggest. If you pick up the book with an open mind like I did, you'll gain plenty. Otherwise, you'll probably be disappointed to find out that one half of the book probably talks about something you weren't expecting based on the title. After a long struggle, I'm giving this book "only" seven horseshoes despite that it contains some very, very high quality material.
The target audience may have been DBAs mainly to get them to think and work agilely within the development team. Most DBAs I know have anyway as far as I know but as I haven't read the book I guess we'll never know until reading the book.
Yes, the target audience is DBAs, but also software developers who want to work with DBAs. That may be one of the reasons I got such a weird big picture of the book. My biggest problem, however, is that one chapter talks about the need for the whole organization to be agile, the next teaches you what is data normalization, then some test-driven development, and then some database performance optimization... There's a huge gap between each chapter.