This book takes an interesting path to teaching Plone 3 development. Unlike most software instructional books, it starts way back in the often-unread Preface by listing 10 requirements a mythical customer is asking the reader to implement in Plone 3. The requirements are realistic and I think would probably be quite a stretch for an inexperienced Plone developer. The rest of the book is dedicated to implementing those 10 features, and coaching the reader on Plone 3 development along the way.
I wouldn't say this is a good book for a novice Plone user. There really isn't much introductory material, and there is little material to transition the reader from Plone installation to meaty development. A newbie could certainly use this book if it were augmented with additional material (say, the Internet and a fair amount of time allocate), but the reader had better be ready to self-educate on Plone/Zope/Python development if they are not already proficient in these areas. For developers who already know their way around Plone, however, this book is an excellent step-by-step guide to adding serious functionality to the platform.
The book follows a consistent theme throughout. The desired functionality is briefly (very briefly) described, then the reader is given the following sections: Getting Ready, How to Do It, How it Works, and (sometimes) There's More. Here's how these work:
Getting Ready — outlines installation prerequisites, the things you'll need to gather.
How to Do It — step by step instructions on how to implement your changes.
How It Works — after you've configured things in the previous step, this step explains why things work.
There's More — an optional section where further reading can be found, or maybe extras like test procedures.
The book includes more than just the 10 specified features from the Preface, though. The authors cover development best practices, documentation, a section on testing, and many other goodies that are not directly in the path of implementing those 10 requirements. I especially liked the parts about performance improvements, a consideration that's sometimes lacking in development books.
Many expert-level techniques are revealed to the reader, especially those concerning production of Products for Plone 3. The authors are obviously well versed in their domain and they freely share best practices the reader will be able to leverage. These tips deal with the whole development cycle, distributed in a sort of holistic manner, sprinkled into several chapters along with the primary material for that section. It's not a book on the development process, but if the reader is willing to listen as advice is given, they will become aware of many development best practices (automated testing, documentation, etc.) along the way.
Besides just the how-to aspect of Product development, the authors give the reader some insight into runtime aspects of a Plone site. The chapter covering cache configuration, for example, was lighter on Product development verbiage and much longer on advice that is bound to be helpful for a Plone site administrator rather than a Product developer. I imagine it's probably not uncommon for people to wear both these hats, so this is another useful characteristic. Developers and Administrators alike can profit from this kind of advice.
The book definitely reads differently than most tech instructional books-- it's more like an expert's working notes than it is a typical dev book. It took me a few chapters to catch on, but after I figured out how to best use this format I can see how this would be very useful for random-access reference work. You don't need to do everything in sequence, just skip right to where you need to go.
There's a lot of text provided, too. There are nearly 370 pages here, almost all of it good, meaty instructions provided in the soon-familiar instructional template the authors established early on. If you know exactly what you want to do, there is little room for ambiguous interpretation-- you're bound to get it right. Some might consider portions of the text verbose, but that can be a desirable trait in a book that's going to serve as both introductory survey and later valued reference.
If you're charged with doing Plone 3 development, I'd recommend this book. There's a lot of expert advice here, and it covers a wide range of development activities. I would imagine almost every developer will learn some things from this book, and many developers will learn a great deal. For producing Plone 3 products, it will provide a quick answer for many commonly encountered questions.
The book can be found here: https://www.packtpub.com/plone-3-3-products-development-cookbook/book