We were asked to submit a book review of “Team Foundation Server 2013 Customization” by Gordon Beeming. This book provides a useful reference for anyone getting familiar with customizing TFS. Although not quite everything it could have been, the book acts as an excellent introductory guide to customization. Our full review is below.

More details on the book can be found here.

The TFS 2013 Customization book has some great content and ideas around how to make Team Foundation Server 2013 work for you, but overall is a bit of a missed opportunity to be something great – kind of like teasing you with a movie trailer that is fantastic, holding true to it during viewing of the movie, but not quite delivering on a phenomenal film. It could be great but requires some tweaks and enhancements.

There is quite a bit to like in the guide. The author discusses some best practices in customizations, talks about JavaScript plug-ins, which I hadn’t seen documented before, includes tips on testing in staging and using TypeScript for plug-ins, discusses reasons for a plug-in over custom check-in policy, and talks about server-side plug-ins and their caveats. A perfect surface skim on customizing TFS, filling a void that would have otherwise continued empty. Kudos to the author for getting a book out on this topic!

There is also quite a bit of room for improvement, which will hopefully be incorporated into the next edition when a new version of TFS surfaces.

The first issue is that the book lacks details for each of the customizations. My overall list is too large to share here, but to give a few examples: no mention of customizing states and transitions in process templates, no mention of best practices around customizing process templates (like storing in source control and branching), missing “why’s” around many of the customization topics (e.g., why process template editor vs. XML, why is there a #700 in the build process parameters, etc.), how to thoroughly test and troubleshoot the customizations, best practices for deploying custom controls, strategy for finding the right w3wp process when debugging, and assumed background knowledge for the code samples.

Secondly, although I appreciate the links the author provided to more information, I often read a book to get the complete picture and not jump around to other sites. Furthermore, I read the book offline, so I didn’t have the opportunity to explore the links anyway. It got me thinking about the format of the book, and in the end, it felt like a set of somewhat disjoint blog postings as opposed to an end-to-end customization guide. Perhaps in the future, a core customization scenario for company XYZ could be described, and then the book takes you through all of those customizations where everything fits together.

Thirdly, the content felt like a bit of a missed opportunity. The author is obviously very knowledgeable with TFS, but providing additional content and context such as other real-world process template scenarios, other value-adds with scripts perhaps with a useful library/framework, and covering additional customizations that are not well documented elsewhere, such as examples of using process template rules.

In summary, if you are new to customizing Team Foundation Server, this is an excellent place to get started. The book walks the reader through the customization with some nice screenshots presenting context. However, the “why” behind a lot of the activities is missing, and I’m afraid there isn’t enough information here to really go off and easily create your own customizations without referencing a reasonably significant set of companion materials. The groundwork for the book is there, and I believe the author has more to share from his experiences – the book feels like it was rushed for publication and omits some details.