Click to Rate and Give Feedback
TechNet
TechNet Library

  Switch on low bandwidth view
Deploying Visual Studio 2005 Team Foundation Server As an Enterprise-Wide Service

Technical Case Study

Published: July 28, 2006 | Updated: August 3, 2006

By deploying Microsoft® Visual Studio® 2005 Team Foundation Server as an enterprise-wide service, Microsoft is standardizing methodologies for project management, software development, and software testing. This standardization provides a much more transparent management view into projects and makes complying with statutory reporting requirements much easier.

Download

Download Technical Case Study, 645 KB, Microsoft Word file

PowerPoint PowerPoint Presentation, 1.2 MB, Microsoft PowerPoint file

Situation

Solution

Benefits

Products & Technologies

The personnel working within development projects at Microsoft found it difficult to coordinate their efforts because their tools were not integrated. The different projects could not coordinate or integrate their project planning or reporting to a high degree.

Visual Studio Team System brought integration and collaboration to the software development life cycle in one package. The Visual Studio Team Foundation service delivers the benefits of Visual Studio Team Foundation Server to the entire Microsoft organization and enables effective management and reporting across multiple projects.

  • Enables coordinated, consistent, standardized, cross-project reporting, which provides transparency to management and makes meeting statutory requirements simpler, easier, and less expensive.
  • Helps the project administrators employ the best set of tools and methods while meeting organizational requirements for consistency.
  • Provides high-level managers with consistent, reliable information on which they can base business decisions.
  • Ensures the use of standardized methodologies and taxonomies, consistent across all projects in the Microsoft Team Foundation Service.
  • Microsoft Visual Studio 2005 Team System
  • Microsoft Visual Studio Team Foundation Server
  • Microsoft SQL Server 2005

Situation

Microsoft has tens of thousands of software developers, usually working on over a thousand development projects. Project teams can consist of project managers, business analysts, application architects, software developers, and software testers.

In the past, the project teams found it difficult and time-consuming to coordinate their efforts because their tools were not well integrated with each other. The project teams closely coordinated their products (output) to help ensure compatibility and interoperability, but, in the past, did not coordinate or integrate their project planning or reporting to a high degree. All the project teams used similar methodologies and tools, but these were usually somewhat different and generally not integrated.

Each project team developed and executed its own project plan, sometimes using nonstandard methodologies. Within the projects' separate project plans, there were often variations in the work items being tracked or different definitions of the same tracked work items. For example, the definition of how to calculate "percent of work completed" would vary significantly between projects. Some projects tracked "bugs," whereas others tracked "defects"; some scheduled according to an 8-hour day, and others scheduled according to a 10-hour day. Work items were tracked separately within each project.

The smaller development teams used commercially available products, such as Microsoft Visual SourceSafe®, for source control and version tracking. Larger teams used a set of internally developed tools for work item tracking, source control, version tracking, and bug tracking. These tools were all operated separately, on separate servers, and were difficult to manage. The IT groups planned infrastructure for each project's tools separately. The architecture and infrastructure made integration very difficult.

Each project team had to deal with separate support teams for each tool. Each tool-centered support team had to deal with hundreds of project teams. There was some confusion about which support team was responsible for which problem.

Each project team had to arrange separately for production and management of its Microsoft Windows® SharePoint® Services collaboration site. The team had to work with a separate SharePoint Services group to build and host the project's SharePoint portal. This portal was not integrated into the source control or bug tracking systems. Information had to be manually transferred to the SharePoint site, or some custom automated integration had to be built.

Each project team also had to construct and manage its own build machines and test rigs. The test rigs were not standardized or stored, so they were different for each project team. The build system used custom scripts and tools constructed around the internal source control system. Each team had to manually manage the build process. The results from the separate projects were not coordinated.

It was impossible to report across projects. For project tracking at higher levels of the organization, the individual project summaries had to be collected and manually compiled into reports, or customized automation had to be built. There was much duplication of reporting efforts. Because there was so much variation in information between projects, including the item definitions, it was difficult to relate items—work items, processes, artifacts—or confidently compile summary information. Much of the important communication within and between projects was not captured, because it was performed on the telephone or in face-to-face communications.

The cross-project reporting problems made it difficult for upper management to make informed decisions about the various projects individually or development projects as a whole. There was no operational transparency into a project's details. Also, the reporting problems made it difficult and expensive to comply with statutory requirements, such as Sarbanes-Oxley, which requires proof of "an adequate internal control structure."

To sum up the situation, within each project, the different phases of the software development life cycle—requirements gathering, architectural design, software design, software builds, and software testing—were not well integrated. Across projects, there was excessive variation in methodology, terminology, calculations, and reporting.

Solution

To bring integration and collaboration to the software development life cycle, a Microsoft development team produced Microsoft Visual Studio Team System. This client/server system consolidates source code control, project management, build and test environments, work item tracking, and bug tracking. To deliver the benefits of Visual Studio Team System to all project teams in the Microsoft organization and to enable effective management and reporting across multiple projects, Microsoft created the Microsoft Team Foundation Service, a managed service that makes the Visual Studio Team Foundation Server available to all project teams at Microsoft.

Visual Studio Team System

Visual Studio Team System is a collection of client applications, Team Foundation Server, and several other related components.

Visual Studio Team Editions and Team Explorer

The Visual Studio Team System client applications are based on the roles that a person fills in a development project. The client applications are called Team Editions. There are three Team Editions for software development:

  • Team Edition for Software Architects
  • Team Edition for Software Developers
  • Team Edition for Software Testers

There is also a Team Edition for database designers:

  • Team Edition for Database Professionals.

    In addition, there is a client edition that delivers the functionality of all the clients listed previously:

    • Visual Studio Team Suite

Finally, there is a Team Foundation Server client, used to build projects and administer the server:

  • Visual Studio Team Explorer

Figure 1 illustrates the functionality contained in the software development clients.

Visual Studio Team Editions functionality

Figure 1. Visual Studio Team Editions functionality

Custom Clients

It is possible to use Microsoft Office Project 2003 and Microsoft Office Excel® 2003 as Visual Studio Team System clients. Also, by using available Visual Studio Team System programming tools, it is possible to build custom clients, if required.

Visual Studio Team Foundation Server

Visual Studio Team Foundation Server, working with the Visual Studio Team Editions and other clients, integrates all of the core roles that compose the software development process. Team Foundation Server is a collaboration engine and a centralized data warehouse.

Team Foundation Server provides source control management, work item tracking, integrated analysis and reporting, and an integrated collaborative project Web site, and it can provide build and test rig management. A server running Team Foundation Server also can integrate with Office Project 2003 and Office Excel 2003 to extend reporting and tracking abilities. Team Foundation Server consists of two tiers (an application tier and a data tier), plus an object model.

Application Tier

The Team Foundation Server application tier primarily consists of Web services. (It represents the application tier in traditional three-tier Web application architecture.) The Team Foundation Server application Web services consist of the Team Foundation Common Web services (Registration, Security, Linking, Eventing, Classification), Version Control Web services, Work Item Tracking Web services, and Team Build Web services.

Data Tier

The Team Foundation Server data tier primarily consists of a Microsoft SQL Server™ 2005 database server and includes databases specific to Team Foundation Server. (It represents the data tier in a traditional three-tier Web application architecture.) The databases include Team Foundation Server operational databases in the categories of Common Services, Source Control, Work Items, Process Definitions, Build Data, and Windows SharePoint Services Data.

The Team Foundation Server data tier also contains the data warehouse, which uses SQL Server 2005 Integration Services and Analysis Services to extract reportable information from the operational databases, transform it into a business-centered data model, and load it into an online analytical processing (OLAP), multidimensional database. In addition to serving as the source for report information, a multidimensional OLAP database system:

  • Can analyze large amounts of data in a short time.
  • Enables users to create summarized fields from detailed data or explore the details that went into creating a summarized field.
  • Enables users to explore the data in new ways, to identify a trend or a problem area that would otherwise be overlooked.
  • Provides valuable transparency into all aspects of the software development life cycle.

Object Model

Team Foundation Server includes an object model that enables communication between the client tier and the application tier. This object model also enables software integrators and third parties to customize and extend Team Foundation Server functionality.

The Team Foundation Server object model is a set of managed application programming interfaces (APIs) that include the interfaces for all Team Foundation Server Web services. The Team Foundation Server object model is publicly documented in the Team Foundation Server extensibility documentation in the Visual Studio 2005 Software Development Kit (SDK). The SDK can be used to create client applications that interact with Team Foundation Server.

The Visual Studio 2005 SDK can be downloaded from the Microsoft MSDN® Web site at http://msdn.microsoft.com/vstudio/extend/default.aspx.

Team Foundation Server: Installation, Customization, Project Initialization

Before installing Team Foundation Server, the SQL Server database and Windows SharePoint Services must be installed. Installing Team Foundation Server, including the database and SharePoint templates, requires approximately two to three hours.

Customization of Team Foundation Server after installation is not required. It includes all of the database schemas, reports, and team portal templates necessary to construct and operate a Visual Studio Team Foundation project.

One Visual Studio Team Foundation Server installation can handle multiple projects. When a project is initialized, the databases, reports, and team portal are created for that project.

Integrations

Initializing a project in Visual Studio Team Foundation Server, in addition to setting up the databases, sets up SQL Server Reporting Services with preconfigured report templates, and sets up a preconfigured SharePoint portal for the project.

Team Foundation Server can manage automated build and test systems and then manage reporting on the builds and tests. Each project team at Microsoft uses existing Team Foundation Server templates to construct these integrations with the team's individual build and test systems.

Visual Studio Team System Architecture

Figure 2 is an architectural schematic of the deployment of Visual Studio Team System at Microsoft. The connections with arrows represent one-way communication, whereas the connections without arrows represent two-way communication.

Visual Studio Team System typical architecture

Figure 2. Visual Studio Team System typical architecture

 

In Figure 2:

  • Earlier Systems and Conversion utilities represent the components used to migrate data from Visual SourceSafe or some other earlier system into Visual Studio Team Foundation Server.
  • VS Team Editions represents all of the Visual Studio Team System client products: Team Editions, Visual Studio Team Suite, and Team Explorer.
  • Office System represents the integrations of Excel 2003 and Project 2003 to work as Visual Studio Team System clients.
  • Microsoft Internet Explorer® represents the users' Web access to the team portal. Team Foundation Object Model is shown as the communication layer between the clients and the application tier. (Templates for integrating Excel 2003 and Project 2003 are included with Team Foundation Server.)
  • Team Foundation Server Application Tier shows the Web services, which were constructed through Microsoft ASP.NET technology. Also on the application tier are Team Reports (SQL Server Reporting Services functionality) and the team portal Web site (Windows SharePoint Services).
  • Team Foundation Server Data Tier shows the SQL Server operational databases and the data warehouse.

Microsoft Team Foundation Service

To deliver the benefits of Visual Studio Team System to projects throughout the organization, Microsoft set the following goals:

  • Standardize project management methodologies, software development tools, and project reporting.
  • Gain better transparency into projects' operations.
  • More easily meet statutory reporting requirements.

To accomplish those goals, Microsoft set up the Microsoft Team Foundation Service, which delivers Visual Studio Team Foundation Server as a service to any project team at Microsoft. The Microsoft Team Foundation Service delivers to internal customers throughout Microsoft a collaborative environment that integrates the source code control that developers require, with the requirements management and issue tracking that project managers and testers require. The service effectively consolidates the software development life cycle into one package.

Solution Provider Team

To introduce project teams into the Microsoft Team Foundation Service, Microsoft established a Solution Provider Team (SPT). The SPT also provides consultation needed to implement projects in Visual Studio Team Foundation Server and refers the project teams to available training.

The SPT initializes all new Microsoft Team Foundation Service projects. The SPT is responsible for accepting and queuing all the incoming project requests, either on a first-come, first-served basis or by priorities defined by the SPT. The SPT then passes the relevant information to the Microsoft Team Foundation Service IT team members so they can create the project instance and, if necessary, add infrastructure.

The SPT promotes the Microsoft Team Foundation Service not only to software development projects, but also to any project that may benefit from the sophisticated project management and work item tracking functions of Visual Studio Team Foundation Server. The project administrators are usually very happy to hand over infrastructure management to the Microsoft Team Foundation Service, and they come to value the Microsoft Team Foundation Service as an end-to-end project management life-cycle tool.

Service IT Team

The Microsoft Team Foundation Service IT team manages the infrastructure for the service and provides support to the customers. As new customers are brought onto the Microsoft Team Foundation Service, the IT team either adds the project instance to an existing instance of Team Foundation Server, or if the project is especially large, installs another instance of Team Foundation Server.

The IT team administers, maintains, and supports a standardized Team Foundation Server hardware architecture configuration. This configuration features the Team Foundation Server application tier, the team portal, SQL Server Reporting Services, and the Team Foundation Server database tier. Using a standardized architecture aids capacity planning and simplifies support.

The Microsoft Team Foundation Service IT team provides continuous, 24/7 support to all Microsoft Team Foundation Service project instances. Support procedures are defined, including support escalation procedures and pre-escalation customer responsibilities.

Moving a Customer to the Microsoft Team Foundation Service

The SPT maintains a Web site that promotes and explains the Microsoft Team Foundation Service and provides the instructions, forms, and other artifacts that new customers need as they join the system. All roles and responsibilities are defined for the Microsoft Team Foundation Service IT team and for the customers.

The SPT uses a roles and responsibilities matrix to assign departments or individuals to activity categories, define role responsibilities, and define relationships between groups. This matrix is completed early in project planning, before detailed resource allocating or scheduling.

The goals of the roles and responsibilities matrix are to:

  • Define roles and responsibilities of project stakeholders.
  • Improve overall project team and stakeholder communication.
  • Proactively identify gaps in assignments, accountability, or resources.
  • Clarify cross-functional interactions between project team members.
  • Document project interdependencies with other enterprise initiatives.
  • Define project team interactions with supporting resources and departments.

After the initial items in the project are completed, the SPT works with the project teams to plan their migration to the system, including deciding on the project methodology template. The SPT can also, as needed, assist in planning system design, testing, and project management.

Currently, two standardized methodologies are modeled as templates in the Microsoft Team Foundation Service. A project team that is joining the system chooses the methodology template that best suits its needs and, if necessary, customizes the template to its particular requirements. These customizations, like all customizations in the Microsoft Team Foundation Service, must balance the individual needs of the project against the higher organizational need for cross-project consistency and operational transparency.

While the planning for a project is being completed, the relevant project personnel are trained on Visual Studio Team Foundation Server and on the Microsoft Team Foundation Service. The SPT includes links to training materials on its Web site and can arrange for additional training if required.

After the initial planning and training are completed, the SPT works with the project teams to implement their projects in Visual Studio Team Foundation Server as follows:

1.     The Microsoft Team Foundation Service IT team creates the project instance in Visual Studio Team Foundation Server.

2.     The client packages are distributed to the appropriate personnel.

3.     The project is modeled in the system.

4.     If necessary, data is migrated from legacy systems into the Team Foundation Server project instance.

5.     Any planned customizations are designed and implemented.

The Microsoft Team Foundation Service IT team provides infrastructure and support to incoming projects for an evaluation instance of the Microsoft Team Foundation Service, for migration from earlier systems, and for a preproduction instance of Visual Studio Team Foundation Server. The Microsoft Team Foundation Service IT team can set up build or test rigs, but it does not host or support those setups. The customers are responsible for running the build servers and test rigs. If a project team is geographically separated, the Microsoft Team Foundation Service IT team sets up, administers, and maintains proxy servers in the remote locations.

The SPT is responsible for validating any customizations to the methodology template. It also verifies that the customizations do not affect the projects that are already on the Team Foundation Server instance that the projects may be sharing. Also, SPT validates custom reports to ensure that the reports do not cause problems with the shared OLAP reporting services on the Team Foundation Server instance.

Best Practices

As of July 2006, the Microsoft Team Foundation Service has been operational for several months. In that time, the SPT and Microsoft Team Foundation Service IT teams have established the following best practices that may be of use to other organizations that want to roll out Visual Studio Team Foundation Server as a service:

  • Get universal acceptance. To successfully implement standardization, an organization must get universal acceptance. A mandate from the chief information officer or other executive is strongly recommended, along with formation of an enterprise management office team for migration planning.
  • Determine a single point of responsibility. Each project must have a project owner who is responsible for designing and building the project. A single point of responsibility provides easier communications and accountability.
  • Schedule enough time and resources for training. The project teams should be well trained in both the tools and the procedures of the Microsoft Team Foundation Service. Project administrators need to learn how to accomplish their individual goals while meeting the corporate standardization requirements.
  • Customize carefully. Customization in Visual Studio Team Foundation Server is very easy. When doing customizations on one project, the administrator must take care not to affect other projects that coexist on the same instance of Team Foundation Server.
  • Identify and enforce standards at the organizational level. The Visual Studio Team Foundation Server administrator must carefully identify and enforce those standards that are necessary at the organizational level. Many customizations at the project level are possible without affecting the high-level requirements, but not all.
  • Verify compatibility. If a customer project will use its own tools, the tools' compatibility with the Microsoft Team Foundation Service system must be verified. Also, the organization responsible for supporting the customer's tools must be determined.

Benefits

Visual Studio Team System delivers the following benefits to all participants in the software development life cycle:

  • It is an all-in-one, integrated, role-based system that combines and coordinates the entire software development life cycle.
  • It provides role-based clients, integrations with Project 2003 and Excel 2003, and the ability to create custom clients. This ensures that each user is responsible for mastering only the functionality that he or she needs.
  • It provides powerful yet flexible project reporting capabilities, so that each user receives only the information that he or she needs and in the most appropriate and usable form.

The Microsoft Team Foundation Service delivers the following benefits to its customers and to the organization as a whole:

  • It enables project administrators to focus on meeting their project's goals instead of being concerned with tools and infrastructure.
  • It enables coordinated, consistent, standardized, cross-project reporting, which provides transparency to management and makes meeting statutory requirements easier and less expensive.
  • It enables centrally managed security to help ensure that all software assets meet corporate security requirements.
  • It lowers support costs because it is a consistent, all-in-one system. The support organization no longer has to support many instances of varied tool sets. Standardized hardware, software, configurations, and methodologies lower the load on the support organization.
  • It provides consulting and design services to projects, helping the project administrators employ the best set of tools and methods while meeting organizational requirements for consistency.
  • It provides high-level managers with consistent, reliable information on which they can base business decisions. Managers can easily access, compare, and analyze information across all projects on Visual Studio Team Foundation Server.
  • It facilitates the use of standardized methodologies and taxonomies, consistent across all projects in the Microsoft Team Foundation Service.

Conclusion

Because Microsoft has deployed Visual Studio Team Foundation Server as an enterprise-wide service, any project team at Microsoft can use the features of the integrated, end-to-end, software development life-cycle management environment, without having to master the intricacies of the system. The Microsoft Team Foundation Service handles the infrastructure requirements, the system planning, and support for Visual Studio Team Foundation Server. Project management is becoming more uniform and coordinated. The projects are becoming more transparent to management, enabling better coordination. The Microsoft Team Foundation Service delivers timely, usable information to the project members and upper management, and it enables the organization to more easily and cost-effectively meet auditing and statutory requirements. As more projects at Microsoft use the Microsoft Team Foundation Service, the organization will become even more efficient and effective.

For More Information

For more information about Microsoft products or services, call the Microsoft Sales Information Center at (800) 426-9400. In Canada, call the Microsoft Canada information Centre at (800) 563-9048. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information via the World Wide Web, go to:

http://www.microsoft.com

http://www.microsoft.com/technet/itshowcase

http://msdn.microsoft.com/vstudio/teamsystem/default.aspx

 

© 2006 Microsoft Corporation. All rights reserved.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, Excel, Internet Explorer, MSDN, SharePoint, Visual SourceSafe, Visual Studio, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement
Page view tracker