Using Visual Studio 2008 to Improve Software Development Foundation Server at Microsoft

Using Visual Studio 2008 to Improve
Software Development
Published:
June 2008
Deploying Visual Studio Team System 2008 Team
Foundation Server at Microsoft
Agenda
●
●
●
●
The Former Development Environment
Project Management Issues
The Team Foundation Server Deployment
Benefits
Microsoft IT Former
Development Environment
A Staff of
11,000
Over 2,000
developers
worldwide
Supports over
1,400 internal
applications
Developed
project
requirements
and technical
specifications by
using static
documents
Documents
became quickly
outdated
Inconsistent
development
environment
Small teams used offthe-shelf products for
source code control
Larger teams used
custom databases and
internally-developed
tools
Cross-project reporting
was very difficult
Development
environment used a
“silo” approach
Project Development
Management Challenges and Requirements
Requirements
Challenges
•
•
•
•
Traceability
• Scope creep
• Missed features
Business value – No
effective method was
available to assign
value to a program
feature
Visibility issues
Source code
management issues
•
•
•
Need a method to
build a project from
a business
perspective
Need a method to
break down program
requirements
Need a method to
promote traceability
Results/Benefits
•
•
•
•
•
Assign business
value to program
features.
Break requirements
into work items.
Create tasks based
on work items.
Force change
control to eliminate
scope creep.
Improve visibility
into work item
progress.
Goals and Objectives
●
●
●
Moving towards more
formalized development
methodologies and
frameworks
Implementing
standardized metrics to
measure success
Leveraging Team
Foundation Server to
facilitate the program
delivery process
Team Foundation Server – Deployment
●
●
●
April 2006 – Visual Studio 2005
● Some groups start to migrate projects to
Team Foundation Server
January 2008 – Upgrade to Visual Studio
2008
● Project migration to Team Foundation
Server continues
● All new projects are created in Team
Foundation Server
June 2008 – All Microsoft IT projects hosted
by Team Foundation Server
The Solution
●
Four Team Foundation Server instances
●
●
●
Solution
Three instances deployed on physical servers
One instance deployed by using virtual machines
Physical instances use commodity hardware
●
●
●
●
Application tier – Four processor, four gigabyte (GB)
RAM-based computers
Data tier – Four dual-code processor, 32 GB RAMbased computers
Analysis Services – Four dual-core processor, 32 GB
RAM-based computers
Windows Server 2003 x64 Edition
Products and Technology
●
●
●
●
●
●
Visual Studio 2008
Team Foundation Server
SQL Server 2005
Windows SharePoint
Services
Team System Web Access
Source code control
Deployment Characteristics – Physical
Instances
Storage area network
Fibre Channel
connections
Gigabit Ethernet
Application tier
Database engine
Network switch
Analysis server
Data tier
`
`
Microsoft Visual Studio
Team Explorer clients
Client tier
Team Build server
Deployment Characteristics – Virtual
Instance
Storage area network
Fibre Channel
connection
Virtual machine
Virtual machine
Gigabit Ethernet
Application tier
Network switch
Database engine
Analysis server
Data tier
`
`
Microsoft Visual StudioTeam
Explorer clients
Client tier
Team Build server
Deployment Characteristics – Project
Migration
Team Foundation
Server instance
Projects
Work
items
Source code files
Virtual instance
80
8,503
523,320
First physical instance
271
251,658
6,143,367
Second physical instance 75
15,495
235,990
Third physical instance
24
24,314
462,790
Total
450
299,970
7,365,467
How it Works
●
Management benefits
●
●
●
●
Centralized source code storage
Improved project visibility
Improved source code management – Tree pruning
Centralized storage benefits
●
●
Source code is located on a single enterprise platform –
Allows for easier reorganization of groups across
Microsoft IT
Windows SharePoint Services hosts project documents
– Electronic records generate a more realistic project
representation
How it Works (cont)
●
Improved reporting capabilities
●
●
●
●
Storing TSP/PSP information in work items
Easier to monitor lines of code and productivity – Visual Studio
2008 lets you expand project tasks to examine individual work
items
Potential blocking issues are easier to detect – Gives the ability to
work proactively with project tasks
Improved project collaboration
●
●
Team System Web Access lets you access Team Foundation
Server from a Web browser
Team System Web Access returns information as query string
parameters – Easy to e-mail a link to a query
How it Works (cont)
●
Easy repository branch management
●
●
●
Lets project managers fix incorrect or
suboptimal branch structures
Reduces costly development errors –
Developers less likely to work from an incorrect
code branch
Easy project deletion
●
●
Reduces database storage requirements
Reduces cache size – Speeds project access
Deployment
●
Deployed by using an incremental approach
●
●
●
●
●
●
Back-end servers upgraded by using an in-place upgrade
Client tier servers upgraded between release cycles
Updating team build definition scripts required one month
Used a small team to work with each development team to
upgrade computers in the client tier
Did not upgrade .NET Framework 1.1 code – Requires
upgrades to the project files and the code
Minimal user impact – Visual Studio 2008 Team
Foundation Server supports Visual Studio 2005 clients
Deployment – Application and Data Tiers
●
●
●
●
Upgrades handled by the operations team
Performed an in-place upgrade of Visual
Studio 2008 Team Foundation Server
The team experienced a simplified server
installation over that of earlier versions of
Team Foundation Server
The new version of Team Foundation
Server enables the team to reclaim space in
the data tier
Deployment – Client Tier
●
●
End-user downtime was the most critical aspect of the
upgrade – For one group, downtime could affect over 800
people
Used the following upgrade approach
●
●
●
●
●
●
Upgrade existing projects
Upgrade build servers
Upgrade build scripts
Install Visual Studio 2008 on client computers
Used a team-by-team progression to upgrade the client
tier in an incremental manner
Kept a Visual Studio 2003 implementation to support a
large .NET Framework 1.1 code base
The Results
Results
Benefits
User Experience Enhancements
●
●
●
●
Simplified development environment – Program
development in Microsoft IT has become more
standardized
Improved visibility in project progression –
Managers can view detailed information about a
project’s progress
Improved source control management – Teams
can now easily manage the branch structure for
their projects
Enhanced deployment – Server installation in the
back-end is easier and less prone to user error
Best Practices
●
●
●
Use an incremental upgrade approach
Communicate with product groups to locate
and remove unneeded projects
Use centralized groups to manage
permissions – Microsoft IT uses centralized
groups to manage permissions to Windows
SharePoint Services and Team Foundation
Server
Summary
●
●
●
A platform is available to let you manage
project development from a business
perspective
Visual Studio Team System includes tools
to improve collaboration among project
team members
Improvements in source code management
help reduce costly development errors
For More Information
●
Additional content on Microsoft IT
deployments and best practices can be
found on http://www.microsoft.com
●
●
Microsoft IT Showcase Webcasts
http://www.microsoft.com/howmicrosoftdoesitw
ebcasts
Microsoft TechNet
http://www.microsoft.com/technet/itshowcase
This document is provided for informational purposes only.
MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT.
© 2006 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS
SUMMARY. Microsoft, Microsoft Press, Visual Studio, Visual SourceSafe, Windows and Windows NT 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.
Appendix