An In-Depth Look at Visual Studio Team System
Visual Studio Team System provides a wealth of tools in one place. Explore all aspects of this integrated suite of tools.
by David Nelson and Jeff Levinson
June 28, 2006
Visual Studio Team System (VSTS) is a suite of tools designed to allow a development team to communicate not only with one another, but with stakeholders, in real time. It also contains a set of tools for developing architectural views of a system, generating code from certain views, testing code at all stages (during and after development), and integrating the testing experience with project management. At a high-level view, VSTS is divided into four areas: integration, architecture, development, and testing. Each of these areas contains tools that cater to a different facet of the development team. Some of the tools are available to all groups of users, and some are targeted at a specific group associated with only one role. A complex hierarchy governs teamsthe larger the team, the more complex the hierarchy (see Figure 1).
Team System is also designed, from the ground up, to help an organization implement an effective development methodology, whether it's Microsoft Solutions Framework (MSF), Rational Unified Process (RUP), Extreme Programming (XP), Scrum, or any of a dozen other types. The purpose in implementing a structured methodology is the same as the goal of the rest of the VSTS suite of toolsto build better applications for a lower cost both in the short term and the long term. This concept of integrating methodology into the development process is ingrained in all aspects of Team System.
VSTS comes in four different editions—Team Edition for Software Architects, Team Edition for Software Developers, Team Edition for Database Professionals, and Team Edition for Software Testers)—and a core component called Team Foundation Server (TFS). Team System features out-of-the-box functionality, but it is also highly extensible. Joining the Microsoft Visual Studio Industry Partner (VSIP) program allows you access to the VSTS APIs, letting you integrate virtually any tools you have into the VS IDE.
Team Foundation Server is the "team" in Team System. Without it, all of the other components of VSTS are essentially standalone components that run on the client. Once TFS becomes part of the picture, the various client pieces start to work together as a cohesive unit.
Team System provides a framework in which applications can be built. Many companies these days are working to improve their processes by using the Capability Maturity Model Integration (CMMI) from Carnegie Mellon's Software Engineering Institute (SEI). Microsoft, with Visual Studio Team System, is releasing the only methodology recognized by SEI as being CMMI level 3compliant. This methodology is the MSF version 4. The template and instructions on how to use the methodology are all included with Team System. You might ask, "What is so significant about this?" In order for a company to provide software to the U.S. government, the company should, at a minimum, be CMMI level 3certified.
Team Foundation Server: Core Components
Team Foundation Server contains a new source-code control that is backed by SQL Server 2005 and designed for large-scale teams. It is a welcome edition to the developer's toolbox and allows an easy alternative to Visual SourceSafe. It also supports project managers and overall application reporting to the stakeholders. You can also use this tool to implement policies to ensure that code meets certain requirements before it is checked in (see Figure 2). This ensures that the code base is always stable.
Another key piece of TFS is the project site. This Windows SharePoint Services site serves as a central communication tool for the entire team (see Figure 3). Stakeholders can go to this Web site to review the current status of various tasks on the project, view nightly build and test reports, and have discussions or ask questions of the team. SharePoint also serves as a project-documentation repository (with version control).
Team Build is a component of the foundation that allows a server or workstation to become a build machine. Team Build automatically gets the latest version of code from Team Source Code Control (or a specific version), compiles it, deploys it, and runs any automated tests (unit or Web tests) against the build. The results of the compilation and testing are stored in the Team System data repository.
Back to top
|