The new SCCS emphasizes scalability and parallel development. Missing are two features relevant to many enterprise projects: remote teams and distributed builds. VS Team Foundation has no specific facility for linking external teams, including consultants and outsourcing firms, into the life cycle as more restricted and closely monitored participants.
One SCCS feature stands out: The ability of a VS Team System client to “shelve” a project. This takes a snapshot of the project and stores that state in SCCS. Shelving allows developers to quickly switch projects, to safely hang up a project until the next workday, or to move from one machine to another, for example, from work to home. When the project is unshelved, the workspace and all associated checked-out code appears in the workspace in its previous state.
The work-item tracking system built into VS Team Foundation resembles a bug-tracking system. Items are placed in topic-oriented queues and assigned to participants. This arrangement is typical, except that Microsoft extends work-item tracking throughout the life cycle, so that nondevelopment groups responsible for operations and technical documentation can also use this functionality. But overall, the tracking system seems a bit loose. It would be better if the system captured some context for each item so that the recipient wouldn’t have to duplicate the submitter’s effort.
VS Team Foundation captures the status of work items, along with knowledge derived from individuals’ use of the tools, in a SQL Server metrics warehouse. The new SQL Reporting Services (code-named “Rosetta”) will provide views into that warehouse. Participants can, within the limitations of privileges, dump their work items to Excel for off-line perusal and modification.
As for testing, VS 2005 will deliver a set of testing tools unprecedented in previous versions. The editor will automatically generate unit tests for everything but C++ code. Code coverage will show the programmer, down to the line of code, what has been tested. Static analysis tools for both .Net managed code and C++ unmanaged code will be in the box. These scan through code looking for potential bugs, deviations from good programming practices, and holes that could be used to compromise the application.
Profiling takes a stopwatch to your code to help you find performance bottlenecks at a fine-grained level. As with code coverage, the profiler shows its results in the VS 2005 editor. Load testing identifies potential bottlenecks and scalability issues in running applications, including anything that uses HTTP for a transport (for example, Web pages and SOAP Web services). Finally, project managers can lay out policy requirements that define minimum testing requirements and acceptable results.
From language improvements to life-cycle management, the new VS Team suite and the VS development environment itself seem almost certain to make Microsoft programmers and their bosses happier. But will these new products sustain Microsoft’s momentum, particularly as it tries to move upscale into more challenging enterprise development environments? As usual, the company seems unlikely to get the new stuff completely right the first time. But salves for the disgruntled and nods to enterprise work modes should make VS 2005 and VS Team the most attractive development products Microsoft has released in a long time.