Deploying Visual Studio Team System 2008 Team Deploying Visual Studio Team System 2008 Team Foundation Server at MicrosoftFoundation Server at Microsoft
Published: June 2008
Using Visual Studio 2008 to Improve Using Visual Studio 2008 to Improve Software DevelopmentSoftware Development
AgendaAgenda
● The Former Development EnvironmentThe Former Development Environment● Project Management IssuesProject Management Issues● The Team Foundation Server DeploymentThe Team Foundation Server Deployment● BenefitsBenefits
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 controlLarger teams used custom databases and internally-developed toolsCross-project reporting was very difficultDevelopment environment used a “silo” approach
Microsoft IT Former Microsoft IT Former Development EnvironmentDevelopment Environment
• TraceabilityTraceability• Scope creepScope creep• Missed Missed
featuresfeatures• Business value – Business value –
No effective No effective method was method was available to assign available to assign value to a value to a program featureprogram feature
• Visibility issuesVisibility issues• Source code Source code
management management issuesissues
Project DevelopmentProject Development
ChallengesChallenges RequirementsRequirements Results/BenefitsResults/Benefits
• Need a method to Need a method to build a project build a project from a business from a business perspectiveperspective
• Need a method to Need a method to break down break down program program requirementsrequirements
• Need a method to Need a method to promote promote traceabilitytraceability
• Assign business Assign business value to program value to program features.features.
• Break Break requirements requirements into work items.into work items.
• Create tasks Create tasks based on work based on work items.items.
• Force change Force change control to control to eliminate scope eliminate scope creep.creep.
• Improve visibility Improve visibility into work item into work item progress.progress.
Management Challenges and RequirementsManagement Challenges and Requirements
Goals and ObjectivesGoals and Objectives
● Moving towards more Moving towards more formalized development formalized development methodologies and methodologies and frameworksframeworks
● Implementing Implementing standardized metrics to standardized metrics to measure successmeasure success
● Leveraging Team Leveraging Team Foundation Server to Foundation Server to facilitate the program facilitate the program delivery processdelivery process
Team Foundation Server – DeploymentTeam Foundation Server – Deployment
● April 2006 – Visual Studio 2005April 2006 – Visual Studio 2005● Some groups start to migrate projects to Some groups start to migrate projects to
Team Foundation ServerTeam Foundation Server● January 2008 – Upgrade to Visual Studio January 2008 – Upgrade to Visual Studio
20082008● Project migration to Team Foundation Project migration to Team Foundation
Server continuesServer continues● All new projects are created in Team All new projects are created in Team
Foundation ServerFoundation Server● June 2008 – All Microsoft IT projects hosted June 2008 – All Microsoft IT projects hosted
by Team Foundation Serverby Team Foundation Server
The SolutionThe Solution
● Four Team Foundation Server instancesFour Team Foundation Server instances● Three instances deployed on physical serversThree instances deployed on physical servers● One instance deployed by using virtual machinesOne instance deployed by using virtual machines
● Physical instances use commodity hardwarePhysical instances use commodity hardware● Application tier – Four processor, four gigabyte (GB) RAM-Application tier – Four processor, four gigabyte (GB) RAM-
based computersbased computers● Data tier – Four dual-code processor, 32 GB RAM-based Data tier – Four dual-code processor, 32 GB RAM-based
computerscomputers● Analysis Services – Four dual-core processor, 32 GB RAM-Analysis Services – Four dual-core processor, 32 GB RAM-
based computersbased computers● Windows Server 2003 x64 EditionWindows Server 2003 x64 Edition
SolutionSolution
Products and TechnologyProducts and Technology
● Visual Studio 2008Visual Studio 2008● Team Foundation ServerTeam Foundation Server● SQL Server 2005SQL Server 2005● Windows SharePoint Windows SharePoint
ServicesServices● Team System Web AccessTeam System Web Access● Source code controlSource code control
Deployment Characteristics – Physical Deployment Characteristics – Physical InstancesInstances
Storage area network
Fibre Channel connections
Network switch Data tierApplication tier
Gigabit Ethernet Analysis serverDatabase engine
`
`
Microsoft Visual Studio Team Explorer clients
Client tier
Team Build server
Deployment Characteristics – Virtual Deployment Characteristics – Virtual InstanceInstance
Storage area network
Fibre Channel connection
Network switch Data tierApplication tier
Gigabit EthernetDatabase engineAnalysis server
`
`
Microsoft Visual StudioTeam Explorer clients
Client tier
Team Build server
Virtual machine
Virtual machine
Deployment Characteristics – Project Deployment Characteristics – Project MigrationMigration
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 WorksHow it Works
● Management benefitsManagement benefits● Centralized source code storageCentralized source code storage● Improved project visibilityImproved project visibility● Improved source code management – Tree pruningImproved source code management – Tree pruning
● Centralized storage benefitsCentralized storage benefits● Source code is located on a single enterprise platform – Source code is located on a single enterprise platform –
Allows for easier reorganization of groups across Allows for easier reorganization of groups across Microsoft ITMicrosoft IT
● Windows SharePoint Services hosts project documents Windows SharePoint Services hosts project documents – Electronic records generate a more realistic project – Electronic records generate a more realistic project representationrepresentation
How it Works (cont)How it Works (cont)
● Improved reporting capabilitiesImproved reporting capabilities● Storing TSP/PSP information in work itemsStoring TSP/PSP information in work items● Easier to monitor lines of code and productivity – Visual Studio Easier to monitor lines of code and productivity – Visual Studio
2008 lets you expand project tasks to examine individual work 2008 lets you expand project tasks to examine individual work itemsitems
● Potential blocking issues are easier to detect – Gives the ability to Potential blocking issues are easier to detect – Gives the ability to work proactively with project taskswork proactively with project tasks
● Improved project collaboration Improved project collaboration ● Team System Web Access lets you access Team Foundation Team System Web Access lets you access Team Foundation
Server from a Web browserServer from a Web browser● Team System Web Access returns information as query string Team System Web Access returns information as query string
parameters – Easy to e-mail a link to a queryparameters – Easy to e-mail a link to a query
How it Works (cont)How it Works (cont)
● Easy repository branch managementEasy repository branch management● Lets project managers fix incorrect or Lets project managers fix incorrect or
suboptimal branch structuressuboptimal branch structures● Reduces costly development errors – Reduces costly development errors –
Developers less likely to work from an incorrect Developers less likely to work from an incorrect code branchcode branch
● Easy project deletionEasy project deletion● Reduces database storage requirementsReduces database storage requirements● Reduces cache size – Speeds project accessReduces cache size – Speeds project access
DeploymentDeployment
● Deployed by using an incremental approachDeployed by using an incremental approach● Back-end servers upgraded by using an in-place upgradeBack-end servers upgraded by using an in-place upgrade● Client tier servers upgraded between release cyclesClient tier servers upgraded between release cycles
● Updating team build definition scripts required one monthUpdating team build definition scripts required one month● Used a small team to work with each development team to Used a small team to work with each development team to
upgrade computers in the client tierupgrade computers in the client tier● Did not upgrade .NET Framework 1.1 code – Requires Did not upgrade .NET Framework 1.1 code – Requires
upgrades to the project files and the codeupgrades to the project files and the code● Minimal user impact – Visual Studio 2008 Team Minimal user impact – Visual Studio 2008 Team
Foundation Server supports Visual Studio 2005 clientsFoundation Server supports Visual Studio 2005 clients
Deployment – Application and Data TiersDeployment – Application and Data Tiers
● Upgrades handled by the operations teamUpgrades handled by the operations team● Performed an in-place upgrade of Visual Performed an in-place upgrade of Visual
Studio 2008 Team Foundation ServerStudio 2008 Team Foundation Server● The team experienced a simplified server The team experienced a simplified server
installation over that of earlier versions of installation over that of earlier versions of Team Foundation ServerTeam Foundation Server
● The new version of Team Foundation The new version of Team Foundation Server enables the team to reclaim space in Server enables the team to reclaim space in the data tierthe data tier
Deployment – Client TierDeployment – Client Tier
● End-user downtime was the most critical aspect of the End-user downtime was the most critical aspect of the upgrade – For one group, downtime could affect over 800 upgrade – For one group, downtime could affect over 800 peoplepeople
● Used the following upgrade approachUsed the following upgrade approach● Upgrade existing projectsUpgrade existing projects● Upgrade build serversUpgrade build servers● Upgrade build scriptsUpgrade build scripts● Install Visual Studio 2008 on client computersInstall Visual Studio 2008 on client computers
● Used a team-by-team progression to upgrade the client Used a team-by-team progression to upgrade the client tier in an incremental mannertier in an incremental manner
● Kept a Visual Studio 2003 implementation to support a Kept a Visual Studio 2003 implementation to support a large .NET Framework 1.1 code baselarge .NET Framework 1.1 code base
The ResultsThe ResultsUser Experience EnhancementsUser Experience Enhancements
● Simplified development environment – Program Simplified development environment – Program development in Microsoft IT has become more development in Microsoft IT has become more standardized standardized
● Improved visibility in project progression – Improved visibility in project progression – Managers can view detailed information about a Managers can view detailed information about a project’s progressproject’s progress
● Improved source control management – Teams Improved source control management – Teams can now easily manage the branch structure for can now easily manage the branch structure for their projectstheir projects
● Enhanced deployment – Server installation in the Enhanced deployment – Server installation in the back-end is easier and less prone to user errorback-end is easier and less prone to user error
ResultsResultsBenefitsBenefits
Best PracticesBest Practices
● Use an incremental upgrade approachUse an incremental upgrade approach● Communicate with product groups to locate Communicate with product groups to locate
and remove unneeded projectsand remove unneeded projects● Use centralized groups to manage Use centralized groups to manage
permissions – Microsoft IT uses centralized permissions – Microsoft IT uses centralized groups to manage permissions to Windows groups to manage permissions to Windows SharePoint Services and Team Foundation SharePoint Services and Team Foundation ServerServer
SummarySummary
● A platform is available to let you manage A platform is available to let you manage project development from a business project development from a business perspectiveperspective
● Visual Studio Team System includes tools Visual Studio Team System includes tools to improve collaboration among project to improve collaboration among project team membersteam members
● Improvements in source code management Improvements in source code management help reduce costly development errorshelp reduce costly development errors
For More InformationFor More Information
● Additional content on Microsoft IT Additional content on Microsoft IT deployments and best practices can be deployments and best practices can be found on http://www.microsoft.comfound on http://www.microsoft.com● Microsoft IT Showcase WebcastsMicrosoft IT Showcase Webcasts
http://www.microsoft.com/howmicrosoftdoesitwhttp://www.microsoft.com/howmicrosoftdoesitwebcastsebcasts
● Microsoft TechNetMicrosoft TechNet http://www.microsoft.com/technet/itshowcasehttp://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.
AppendixAppendix