A great intro into building business software
Forget the production mention in the title; this is a true book on Software Engineering. This book actually addresses the real problems that occur in development: vague requirements, changing scope, not enough time to test all the features, warts and all.
The beginning discussion includes an overview of traditional project management techniques, such as gannt charts, earned-value-analysis, and task breakdowns. The author then explains how software products are intangible and unique, and goes on to cover agile methods. I was particularly impressed with his explanation of the 'value up' technique, which pulls together all of the agile concepts like measured running tested features and quick software releases.
Perhaps the best explanations are in the area of software metrics; how to measure bug count, code coverage, and work products completed vs. the product backlog. The view of metrics proposed in the book is surprisingly mature; the book discusses tradeoffs of various metrics and the concept of dysfunction. I was particularly surprised to find myself taking mental notes as I read the book, tracking all the new ideas to try in the office.
Of course, the title is "Software Engineering With Microsoft Visual Studio Team System", and all of the graphs and charts are generated using Microsoft Software. The book is not tutorial in nature; it concentrates on the essence of development, and not how to click what wizard to generate what graph. Instead, the examples demonstrate how the metrics are integrated within the Microsoft tool, and how much easier it would be to gather metrics within the team system. (Given the title, that has to be expected.)
Overall, I would recommend this for new college graduates without a background in software engineering, 'traditional' software engineers seeking an introduction to agile methods, or Quality Analysts seeking an introduction to Agile Metrics. Surprisingly enough, Team System is not a requisite; but if you are developing in MSVS Team System, I would upgrade it the review to 'highly recommended', or 4.5 stars.
explains Microsoft Solutions Framework
The text appears to be at least as much about Microsoft Solutions Framework (MSF) than about Visual Studio Team System. Granted, there are numerous screen captures about the latter, with accompanying notes on their significance. But you can learn about MSF. Wherein Microsoft has positioned this to appeal to proponents of either Agile or CMMI. For readers possibly unfamiliar with both, Guckenheimer gives an explanation of the ideas behind MSF. Why it is often useful to do iterative development in a software project. And the advantages of this over a traditional waterfall methodology, which has been shown to be often too coarse grained and unrealistic.
Plus, the idea of unit testing and verification testing is emphasised. These tests can be implemented independent of whether you also do any type of iterative development. They have standalone merit. Though their utility is enhanced when combined with rapid iteration.
Even if you decide that VSTS is not for your group, the general approach of MSF may still be beneficial, especially if you are a Microsoft house.
Great for managing projects -- not for implementing VSTS
This book isn't about implementing Visual Studio Team Systems, so don't expect details on setting up, configuring, or making use of VSTS in a daily work environment. What this book really covers is the high-level use of project data, reports and features in VSTS. The author himself says this is intended as a general book on software engineering practices, touching on how to use VSTS to get engineering done well. You'll have to look elsewhere for the nitty-gritty details on actually rolling VSTS into your organization's development environment
What you will find in this book are some well-written, well-thought guidelines on how to approach various aspects of the software development process. Frequently those guidelines will involve using products or features from VSTS, and the book does some nice analysis using those products.
Specifics which I found very good in the book included the great sidebars, the section on using coverage reports for development feedback, and the troubleshooting section. For example, some sidebars show you the specific MSDN heirarchy for finding specific documentation on an aspect of VSTS, helpful for that actual implementation stuff. (That's assuming Microsoft doesn't completely re-arrange MSDN's content structure as they seem wont to do with alarming frequency.) The portion on coverage feedback is great for developers understanding why coverage might change in unexpected fashions as they're moving through their work.
The troubleshooting chapter is seriously good stuff. Guckenheimer does a great job of tossing up many graphs with different data and showing how to interpret them. He shows how graph states might reflect problems on the project with scope creep, architectural mistakes, or various issues with defects such as reactivations or poor unit testing.
The book is definitely not for developers looking to learn more about VSTS, but rather for management and leads looking to understand how VSTS can help them effectively manage their projects will get a whole lot of use from the book.