Deploying Visual Studio Team System 2008 Team Foundation Server at Microsoft Published: June 2008 Using Visual Studio 2008 to Improve Software Development
Agenda ● The Former Development Environment ● Project Management Issues ● The Team Foundation Server Deployment ● Benefits
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 off- the-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 Microsoft IT Former Development Environment
Traceability Traceability Scope creep Scope creep Missed features Missed features Business value – No effective method was available to assign value to a program feature Business value – No effective method was available to assign value to a program feature Visibility issues Visibility issues Source code management issues Source code management issues Project Development ChallengesRequirements Results/Benefits Need a method to build a project from a business perspective Need a method to build a project from a business perspective Need a method to break down program requirements Need a method to break down program requirements Need a method to promote traceability Need a method to promote traceability Assign business value to program features. Assign business value to program features. Break requirements into work items. Break requirements into work items. Create tasks based on work items. Create tasks based on work items. Force change control to eliminate scope creep. Force change control to eliminate scope creep. Improve visibility into work item progress. Improve visibility into work item progress. Management Challenges and Requirements
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 ● 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 RAM- based computers ● Analysis Services – Four dual-core processor, 32 GB RAM-based computers ● Windows Server 2003 x64 Edition Solution
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
Deployment Characteristics – Virtual Instance
Deployment Characteristics – Project Migration Team Foundation Server instance ProjectsWork items Source code files Virtual instance808,503523,320 First physical instance271251,6586,143,367 Second physical instance7515,495235,990 Third physical instance2424,314462,790 Total450299,9707,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 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 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 Results Benefits
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 ● Microsoft IT Showcase Webcasts ebcasts ebcasts ebcasts ● Microsoft TechNet
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