Review: Drupal 6 Social Networking
I received my review copy of Michael Peacock's Drupal 6 Social Networking a couple of weeks ago and I've just had a chance to go through it and formulate some thoughts.
I was interested to see how Michael Peacock would approach the topic of social networking in the Drupal context. Having personally built a rather large Drupal powered social networking site in the past I was curious to read about the topic from someone else's perspective.
From the outset the book declares that it does not assume that the audience is familiar with Drupal. As a result the book plays a dual role of introducing the reader to Drupal and educating them on how to unlock the potential social interactivity that is possible with a Drupal powered website. The book does so by providing social interactivity use cases and possible solutions illustrated with step by step configuration instructions for Drupal core and selected contributed Drupal modules. However the book felt like it limited itself to simpler social interaction use cases and didn't dig deeply enough into their solutions (perhaps for fear of overwhelming the reader).
Score based on my own arbitrary rating system:
For Drupal Novices: 3.5 / 5
For Experienced Drupal Administrators: 2.5 / 5
Since the audience is assumed to be new Drupal users, the first two chapters focus on orientation so users can understand some key Drupal 'jargon' and find their way around the Drupal administration landscape. It is difficult for any book to strike the right balance to providing enough orientation material to get readers up to speed and providing too much information that is readily available elsewhere for its intended audience. In the case of Drupal 6 Social Networking the information and balance is good, but I found some sections (e.g. How Drupal Works) a little uneven.
Following orientation, there are two chapters dedicated to familiarize the reader with social interactivity that is available in Drupal 'out of the box'. Features like forums, collaborative books, and blogging are covered as well as key concepts like users, roles and profiles. In each case the book is thorough in its treatment of these topics.
It is only after the first third of the book that intermediate Drupal administrators begin to see information that may be new to them. It is in the middle third of the book where some common social networking questions are answered. How do you create relationships between users? How do you track user or 'friend' activity? How can users form groups? How do you notify and email your users? How can users communicate with one another?
The book attempts to answer these questions by introducing the reader to several contributed modules. However, the information and configuration instructions is very limited compared to the complexity and potential power of the modules mentioned. The section which address email communication is particularly limited. While the messaging and notification modules are mentioned, they are only done so in passing and an opportunity to explore common (though complex) notifications strategies is missed.
The final third of the book covers topics such as custom module development, custom themeing and some advance site configuration as it relates to site maintenance and even a section on site promotion. While much of the information in these sections is valuable the treatment of these topics in the context of this book seemed a little out of place. As mentioned earlier, it is difficult to find the right balance between too little or too much basic information. It is equally difficult to find the right balance between too much or too little information about complex topics like module development or themeing that can and do have entire books dedicated to them. (e.g. Pro Drupal Development or Front End Drupal)
I personally would have liked to see more of the book dedicated to expanding the content found in the middle third and forgone the information in the final third.
In the end, the book does work as an introduction to Drupal and its social networking capabilities, but doesn't dig deep enough into the topic to be of great value for an experienced Drupal administrator/developer. I think the book limited itself to solutions that wouldn't be too difficult for a novice Drupal user. While this is understandable, in many cases I felt that deeper exploration of the contributed modules introduced in the book could have been presented.