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.
|
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:
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.
.gif)
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.
.gif)
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.