Larkware banner
border

Book Review: Software Engineering with Microsoft Visual Studio Team System

Software Engineering with Microsoft Visual Studio Team System, $39.99
by Sam Guckenheimer with Juan J. Perez
Addison-Wesley, 2006
255 pages
ISBN 0-321-27872-0
http://www.amazon.com/gp/product/0321278720

Now that Visual Studio Team System has been released, we're starting to see books on the market about the product. Most of the ones I've looked at so far are the usual sort of thing you get in the first wave - basically, point-here-click-this-do-that product manuals, aimed at people who prefer dead trees over online help. This one, written by the Group Product Planner at Microsoft responsible for the product, is different. Rather than grub around in the details of how to use the product, Sam Guckenheimer steps back and views the forest instead of the trees. This is a book about the philosophy behind VSTS, the ways in which the pieces fit together, and Microsoft's vision of how it should be used to make your development organization more effective.

The most essential chapter here is the first one, "A Value-Up Paradigm," in which Guckenheimer argues that the most recent version of MSF (the Microsoft Solutions Framework) and VSTS represent aspects of a new paradigm of software development, which he contrasts with the old "work-down" paradigm. I personally am not convinced that there really is a paradigm shift going on here, or that "value-up" is really a term with any substantial meaning (basically, it refers to measuring value delivered rather than tasks completed). But I am quite happy to see this sort of explicit background from the team that designed a product and a process (actually several processes). It helps make the whole VSTS heap of stuff much more understandable to know that there's a philosophy behind it.

Having laid the foundation, the authors go on to discuss how VSTS tackles software engineering from various aspects: requirements, project management, architectural design, development, testing, and reporting bugs. Each of these chapters shows off the various VSTS tools, but it also tries to put them into the value-up framework. This is more successful in some cases than others; I can't quite shake the feeling that some pieces of VSTS were thrown into the sack because they were handy, not because they fit the overarching plan. But overall, things hang together pretty well. The book won't tell you how to use any particular tool - you'll need to go back to the help files for that. But what it will do is give you a broad overview of the capabilities of VSTS and how they fit together, as well as how they fit into the MSF processes (agile and CMMI). The target audience for this book is not so much the working developer or tester or architect as it is the manager who has to pull them all together.

The book ends with a chapter on troubleshooting a process gone wrong, which gives some examples of using the various charts and reports that VSTS makes available to spot and correct problems. This is likely to be the most valuable part of the book for many managers, as it gives them something to watch out for (and, sadly, there are far too many projects in trouble, no matter what tools they're using).Overall, I wouldn't call this a must-have for the developer, but it's a good introduction to the VSTS philosophy if you're trying to decide whether this might be a product worth the investment for your shop.

Mike GunderloyLarkware is the editor of Larkware, the daily .NET newspaper of record.

Published June 21, 2006