- Shopping Bag ( 0 items )
As the most important component of Microsoft's Visual Studio(r) 2005 Team System, Team Foundation Server is the central integration point that provides a collaborative environment for every member of a team, regardless of role. Since Team Foundation Server is so tightly interwoven with the rest of Team System, the authors have decided to present you with an invaluable resource that covers both, so that you may learn to set up and administer Team Foundation Server in order to ...
As the most important component of Microsoft's Visual Studio(r) 2005 Team System, Team Foundation Server is the central integration point that provides a collaborative environment for every member of a team, regardless of role. Since Team Foundation Server is so tightly interwoven with the rest of Team System, the authors have decided to present you with an invaluable resource that covers both, so that you may learn to set up and administer Team Foundation Server in order to effectively use the whole Team System toolset effectively.
Three Microsoft Team System MVPs cover how to plan a Team System deployment, complete a software project, and everything in between. They show you how to handle real-world challenges and tackle the tasks and scenarios that encompass the entire software development lifecycle.
What you will learn from this book
Who this book is for
This book is for project managers, IT administrators, and anyone whose role consists of administering Team Foundation Server on a daily basis, running a software project, setting up users, or handling security.
Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.
It can't be stated enough that planning is an essential part of any process. Without planning, you may unnecessarily complicate the deployment process or, worse yet, miscalculate what your needs are and have to reinstall the product. (As a consultant who has deployed Team System hundreds of times, I speak from experience.)
Deployment does not necessarily mean just the installation of the product. Once Team System has been installed, you must configure it correctly. (For example, you must set up the proper permissions, change the process template to match the target environment, and handle other details including source code migration and extension or customization of tools to make them interact with Team Foundation Server). If you are a consultant, you'll often get client requests to install Team System in, say, two days. Team Foundation Server takes at the very least a day to correctly install and configure in an enterprise environment. Working on a two-day engagement to deploy Team System is the equivalent of asking a home builder to build a housefrom scratch in two weeks! It's best to set the proper expectations with your clients, work out a deployment plan, and work out realistic timeframes.
In this chapter, you learn the major components of Team System and how to plan your deployment based on your capacity and needs. The final part of the chapter discusses strategies to help you migrate your existing tools and data to Team System.
Team Foundation Server Overview
One of the big challenges of working on a software development team is getting all the members of the team to collaborate seamlessly. There are always so-called silos that are created for each role on a team. For example, developers like to live in Visual Studio and can easily relate to development talk and issues, whereas most project managers have no Visual Studio experience whatsoever; they are used to working with Excel spreadsheets working up use cases, scenarios, and project milestones.
Architects map out application designs in Visio, testers use testing tools. The groups and roles are quite different. Trying to integrate it all is difficult and requires a lot of coordination-and frequently intercession-on the part of the project manager, who must set up status meetings and track deliveries from a number of sources.
To successfully deploy Team System, you'll need cooperation from the entire development team, and especially the operations team. Installing Team System involves setting up accounts in Active Directory, changing firewall port settings, prepping hardware, making sure the licensed software is available on DVD or on a network share, and so forth. Get the operations team involved early in the process and get them to read the Team Foundation Server installation guide (and quiz them on it). Both of these steps will make the deployment process a lot easier.
Team System (and specifically Team Foundation Server) provides tooling and a framework to simplify collaboration between team members. The server allows you to communicate with anyone on your team using a number of tools including the Visual Studio editions, Microsoft Excel, Microsoft Project, and Team Explorer. All team members get access to a common set of services including a Team Portal, version control, build engine, and reporting. Everything is integrated in one location. All of this means that you need fewer status meetings, and you get more transparency and clarity with regards to the work being done within a project.
Team System can be viewed as three logical tiers: the client tier, which includes the Team Editions of Visual Studio 2005; the application tier, in other words, Team Foundation Server; and the data tier (SQL Server 2005), which provides the data management and storage support behind the scenes. This very basic architecture can be seen in Figure 1-1.
When you are planning a deployment, it is important to consider what deployment scenario will work best for your needs and what client/server configuration will give you the best bang for your buck in terms of management and configurability. Let's start by looking at the essential parts that make up the client and server components of Team System.
Team System Overview
Team Foundation Server plays a very important part in Team System. It is the collaborative suite that supports the entire software development life cycle (SDLC). Prior versions of Visual Studio supported developers only and everyone else had to rely on third-party products to achieve any kind of integration. The different tiers of Team System can be further broken down into its client and server components.
Here is a listing of Team System's core client components. You can't really talk about a server without discussing how the clients interact with the server (of course). Along with these clients, the Team Foundation Server API (also known as the Team Foundation Core Services) contains methods that allow you to programmatically connect to Team Foundation Server (and create your own custom clients).
Visual Studio 2005 Team Editions-Even though this is a book on Team Foundation Server, we would be remiss not to cover client features and how they integrate with Team Foundation Server. Refer to the individual editions below for details on the coverage level.
For software architects-Unfortunately, this book has little to no coverage of the architecture tools. If you are interested in Team Edition for Software Architects, we would like to refer you to Professional Visual Studio 2005 Team System (Wrox Press, ISBN: 0764584367).
For software developers-For developers, the book covers version control management (Chapter 12) and extensibility (Chapters 9 through 11).
For software testers-For testers, refer to Chapter 15 for information about the Team Test Load Agent. We also cover test case management to a limited degree in Chapter 13.
For database professionals-Chapter 8 is devoted to Team Edition for Database Professionals and how the data development lifecycle ties into the software development lifecycle.
Visual Studio 2005 Team Suite-Visual Studio 2005 Team Suite integrates the features of Team Edition for Software Architects, Team Edition for Software Developers, and Team Edition for Software Testers. Starting late 2006, Team Suite will also include Team Edition for Database Professionals.
Team Explorer-Team Explorer ships on the Team Foundation Server media and provides connectivity between Visual Studio 2005 and Team Foundation Server. You can learn more details about Team Explorer in Chapter 2. Third Party Tools-There are a number of third-party companies developing tools for Team Foundation Server. When appropriate, we have provided you with links to these complementary tools. MSSCCI Provider (for Visual Studio 6.0 and 2003)-Many companies have made investments in .NET 1.0 and .NET 1.1, and need to support Visual Basic 6.0. The Microsoft Source Code Control Interface provider allows these IDEs to connect to Team Foundation Server. Microsoft Office Excel 2003-Microsoft Excel is used as a project management tool within Team System. (A developer or any other team member can also use it to manage their work items.) You can learn how to make the most out of Excel in Chapter 13. Microsoft Project 2003-Microsoft Project has special capabilities and limitations that are documented in Chapter 13.
These server components provide the infrastructure backbone for Team System. In this book, we examine each one of these in detail:
Team Foundation Server-Team Foundation Server is comprised of a number of components and services. The installation of the product is covered in Chapter 2, you learn about backup and recovery strategies in Chapter 5, right up to retirement in Chapter 17.
Team Foundation Build-Team Foundation Build provides an automated, integrated build experience. You can learn a great deal more about Team Foundation Build in Chapter 3.
Team Test Load Agent-The Team Test Load Agent is composed of an Agent and Controller, which allows you to test Web applications against a profile of a thousand users or more. There is coverage of these tools in Chapter 15.
Team Foundation Server Proxy-Team Foundation Server Proxy is a tool that helps improve the performance of Team Foundation Version Control over HTTP. We cover the proxy in Chapter 15.
Team Foundation Core Services (TFCS)-Team Foundation Core Services is a set of services and APIs that allow you to extend Team Foundation Server. You can learn more about extensibility in Chapter 9.
Active Directory domain controller-If you are working within a big enterprise, Active Directory (AD) is essential for the management of your user's roles and credentials. You'll find deep coverage of AD in Chapters 2 and 4.
Mail server-Team Foundation Server has the ability to leverage a mail server to send out alerts to your team members. The alert and eventing infrastructure is covered in several chapters, most notably in Chapter 14.
Compiling Your Project Data
There is key data you should compile to plan a deployment. Otherwise, you may be unprepared for the installation and it may be unnecessarily complicated. Here are some of the data points you should collect:
Hardware infrastructure-This includes a full audit of all the target systems that will be used alongside Team System. This audit should be undertaken in consultation with your operations team. Equipment usually takes time to order, therefore you may want to consider dates-a nontrivial requirement because they will affect the dates in which you can start the deployment. Part of the hardware infrastructure review includes writing a maintenance plan, which includes backup/recovery, a maintenance task list for administrators to perform regularly, and so forth. Your operations team should be deeply involved in this process.
Software infrastructure-List all the software required for the deployment, and the software currently in place in your environment. The software check may reveal systems with incompatible software, in which case the operations team must upgrade the target systems before starting the deployment process. A close consultation with your operations team is key to obtaining a solid understanding of the target environment. Another element that can't be understated is licensing. Do you have all the necessary licenses for Team System? A good place to start is look at the 1:1 correspondence between the software you need and licenses you need. After that, you will need to look at client access licenses (CALs) for those who will be accessing Team Foundation Server without a Team Edition.
Network infrastructure-Your network infrastructure may appear deceptively simple, but there are many things to consider including security settings, user account settings, topology challenges, and so forth. For example, if you have governance rules in place, your user accounts may have special restrictions such as password policies that will complicate a deployment. Another scenario is that ports may need to be opened on your network to allow Team Foundation Server communication to flow through. In order for the ports to be opened, a security audit might be required. It's important to note not only the components that are required, but also the process behind those components.
Project documentation-Find all documents relating to your software development process and the documents supporting that process, including templates, lists, and so on. If some of these seem ad hoc, not to worry. Team System provides a solid mechanism for aggregating and publishing software project assets.
Build requirements-The complexity of your build may depend on many factors, including what type of software you are developing, if you are building a multiplatform or distributed solution, and so forth. The key information you will want to record includes what needs to be built, what you are expecting as a release at the end of the build process, and if any special tasks are required along the way (for example, automatically copying files via FTP to another server).
Source code-How much source code do you have? Where is it stored? What policies and procedures have you put in place to track versions and integrate source code? You must document all of this to decide how you will migrate the code and what approach to take to configure Team Foundation Version Control.
Another thing you can do that can't be understated is creating a checklist before deployment. Figure 1-2 shows the installation checklist available in the Visual Studio Team Foundation Installation Guide. It breaks down the installation steps for both single-server and dual-server deployments.
You can create a personal checklist in Excel that reflects the software, hardware, and tasks you need to accomplish to successfully deploy Team System. Figure 1-3 shows an inventory of software, which you can check off as you obtain it. Once all the software has been checked off the list, for example, you know that you are ready for the deployment.
Planning a Deployment
Installing and deploying a product such as Visual Studio 2005 Team System involves a lot of preplanning and forethought. You must consider variables such as capacity, scale, disaster recovery planning, backups, and the underlying infrastructure. There are several important sources you can refer to that will help in your deployment efforts:
Existing infrastructure documentation-If your company had to write up a disaster recovery plan (which may have stemmed from the Year 2000 fiasco), then you are in a great position as all your software and assets have been catalogued.
Visual Studio Team Foundation Planning Guide-Along with the Installation Guide (TFSInstall.chm) and Administration Guide (TFSAdmin.chm), the Planning Guide will provide you with hints on what to look at in the planning process. Unlike the other guides (which are also great tools to help you plan your deployment), the Planning Guide (TFSPlanning.chm) is not available on the Team Foundation Server CD or DVD.
Microsoft Operations Framework (MOF)-The Microsoft Operations Framework provides guidance on the proper implementation of technology based on Microsoft's own internal experience and practices derived from the IT Infrastructure Library (ITIL). You can learn more about MOF at microsoft.com/technet/itsolutions/cits/mo/mof/
Governance documents-Your company may need to follow strict or specific rules for legal reasons. You need to consider these governance rules and practices when planning your deployment.
Some of the key questions you have to ask include whether you'll need one or two Team Foundation Servers (depending on the scale of your team). Will you need a proxy server? (In other words, will you support geographically distributed teams?) Do you need more than one build server? If so, where will they be installed? Do you need to create load tests with more than a thousand simulated users? If so, a test rig may be required. Here is a more in-depth look at these variables and how they may affect your implementation of Team System.
The best way to look at capacity planning is by thinking about and looking at scenarios. First, we look at the performance and scope of a deployment. Next, we look at deployment on a small and then a larger scale.
Excerpted from Professional Team Foundation Server by Jean-Luc David Mickey Gousset Erik Gunvaldson Copyright © 2007 by John Wiley & Sons, Ltd. Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.
Part One: Deployment and Administration.
Chapter 1: Planning a Team System Deployment.
Team Foundation Server Overview.
Team System Overview.
Compiling Your Project Data.
Planning a Deployment.
Migrating and Integrating Your Existing Tools and Assets.
Where to Get Team System.
Chapter 2: Advanced Installation and Tools Migration.
Enterprise IT Administrator.
Group IT Administrator.
Installing Team Foundation Server.
Types of Installation.
Installing Team Foundation Server Proxy.
Installing Team Foundation Build Server.
Overview of Microsoft Virtual Server and Virtual PC.
Creating a Base Virtual Machine.
Installing Team Foundation Server Components on a Virtual Machine.
Understanding Team Explorer.
Installing the Prerequisites.
Internet Explorer Enhanced Security Configurations.
Installing Team Explorer.
Connecting Team Explorer to Team Foundation Server.
Configuring Team Explorer to Use Team Foundation Server Proxy.
Accessing Administrative Functions.
Using Team Explorer.
Using the Command Line.
Giving Users Team Project Create Ability.
Migrating your Tools to Team Foundation Server.
Work Item Tracking.
Chapter 3: Configuring Team Foundation Build.
Team Foundation Build Overview.
Common Build Scenarios.
Continuous Integration (CI).
Customizing and Extending Team Foundation Build.
Existing Build Tasks.
Custom Build Tasks.
Advanced Build Scenarios.
Building .NET v 1.1 and VB 6.0 Code.
Building ASP.NET Applications.
Setting Up Team Foundation Build Server.
Setting Up Build E-Mail Notifications.
Setting Up Multiple Build Servers.
Setting Up a Common Build Drop Site.
Team Foundation Build Security Permissions Overview.
Chapter 4: Setting Up Security.
Team Foundation Server Security Model Overview.
How Team Foundation Server Manages Groups.
Built-In Global Groups.
Built-In Project Groups.
Managing Security in Other Groups.
Security in Other Parts of Team Foundation Server.
Managing Security Groups in Team Foundation Server.
Creating New Groups Using the GUI.
Creating New Groups Using the Command Line.
Adding Users to Groups Using The GUI.
Adding Users to Groups Using the Command Line.
Using the GUI to Set Security Permissions for Groups.
Using the Command Line to Set Security Permissions.
Managing Security for Other Areas.
Common Security Access Problems.
User Cannot Connect to Team Foundation Server.
User Cannot Create a Team Project.
Security Best Practices.
Chapter 5: Team Foundation Server Backup and Recovery.
Disaster Recovery Overview.
The Disaster Recovery Plan.
Built-In Windows Backup Tools.
Third-Party Backup Tools.
Disaster Recovery Applied to Team Foundation Server.
Backing Up Team Foundation Server.
Backing Up the Team Foundation Server Databases.
Backing Up the Report Server Encryption Key.
Restoring the Report Server Encryption Key (Optional).
Restoring Team Foundation Server to the Same Server.
Restoring Team Foundation Server Databases.
Recreating the Data Warehouse.
Refreshing the Work Item Cache on Client Machines.
Restoring Team Foundation Server to a Different Server.
Configure and Stop Report Server.
Configure and Stop IIS.
Stop Services on the Application Tier.
Recreate the Data Warehouse.
Connecting the Application Tier to the Data Tier.
Re-creating Report Server Connection Strings.
Configure Windows SharePoint Portal Sites.
Part Two: Project Creation.
Chapter 6: Incorporating Your Process Using Microsoft Solutions Framework.
Understanding the Need for MSF.
Heavy versus Light Processes.
MSF for Agile Software Development.
Working with MSF for Agile Software Development.
Working with Areas, Scenarios, and Tasks.
MSF for Capability Maturity Model Integration (CMMI) Process Improvement.
Understanding the Need for CMMI Levels.
Capability Maturity Level 3.
Project Planning Using Governance and Capacity.
Tracking Your Project Progress.
Managing Risk and Issues.
Understanding Process Templates.
Using Process Template Editing Tools.
Creating Custom Process Templates.
Conchango Scrum Process Template.
Compiling and Creating Documentation.
Integrating Processes into Team System.
Deleting Process Templates.
Testing Your Custom Process Template.
Chapter 7: Project Creation and Team Building.
Team Project Defined.
Creating a New Team Project.
Specifying your Team Project Settings.
Specifying a Process Template.
Specifying the Project Portal Settings.
Specifying the Version Control Settings.
Confirming the Team Project Settings.
Completing the Team Project.
Common Project Creation Errors.
Configuring Project Areas and Iterations.
Modifying Project Areas.
Modifying Project Iterations.
Using Microsoft Excel to Modify Project Areas and Iterations.
Organizing Your Project Team.
Understanding MSF Agile Team Roles.
Interchanging the Roles.
Chapter 8: Managing Schemas Using Team Edition for Database Professionals.
Why This New Edition Is Needed.
The Data Development Lifecycle.
Building and Deploying.
Building a Custom Data Generator.
Part Three: Extensibility and Customization.
Chapter 9: Creating Custom Development Tools.
Extensibility versus Customization.
Team Foundation Core Services.
Subscribing to an Event.
Team Foundation Server Object Model.
The TeamFoundationServer Object.
Accessing the Service Interfaces.
Chapter 10: Extending the Windows SharePoint Team Portal.
Understanding Portal Architecture.
Integration with Microsoft Office 2003.
Extensibility and Customization Overview.
Creating and Extending Custom Web Parts.
Customizing the Team Portal.
Customizing the Process Template.
Customizing the Team Portal Using the Browser.
Incorporating Your SharePoint Design in a Custom Process Template.
Integrating a Site Template within a Process Template.
Verifying Your Portal Customizations.
Chapter 11: Administering and Customizing Work Items.
Introducing Work Items Concepts.
Work Item Types.
Work Item Form.
Work Item Work Flow.
Customizing and Extending.
Work Item Queries.
Work Item Customization and Extensibility.
Work Item Type XML File Overview.
Customizing an Existing Work Item.
Work Item Administration.
Creating A Work Item.
Searching the Work Item Store.
View a Work Item’s History.
Project and Excel Integration.
Work Item Tracking Object Model.
Using Work Item Query Language.
Chapter 12: Setting Up Team Foundation Version Control.
Version Control Overview.
Different Version Control Systems.
Common Version Control Concepts.
Team Foundation Version Control Essentials.
Configuring Team Foundation Version Control.
Source Control Explorer.
Setting Source Control Options.
Converting from Other Version Control Systems.
Using VSSConverter to Convert Visual SourceSafe.
Using CS-Converter to Convert Visual SourceSafe.
Team Foundation Version Control Best Practices.
Check-In and Check-Out.
Branching and Merging.
Team Foundation Version Control Extensibility.
Custom Check-In Policies.
Part Four: Management.
Chapter 13: Managing Your Team Projects.
Working with Team Members.
Advocacy and Ownership.
Customers and Process.
Setting Up Team Meetings.
Structuring Your Project.
Work Item Synchronization.
Naming and Managing Work Items.
Managing Summary Tasks.
Setting Up Your Work Items Hierarchically.
Re-creating the Hierarchy in Microsoft Project.
Time Tracking and Results Roll-Ups.
Using Pivots to View Work Item Summaries.
Managing Test Cases.
Manual Test Cases.
Other Test Types.
Project Server Integration.
Chapter 14: Effective Team Communication.
Current Communication Challenges.
The Cons of Current Methods.
Using Team Foundation Server to Communicate Better.
Communication across Multiple Platforms.
Communicating the New Way.
Examining Future Possibilities.
Receiving Tasks via Instant Messenger.
Tracking Project Status via Outlook.
Microsoft Groove 2007.
Chapter 15: Working with Geographically Distributed Teams.
Identifying the Challenges.
Team Foundation Server over The WAN.
Setting Up Your Branch Office Infrastructure.
Deploying Your Team Portal on The Web.
Setting Up the Tools.
Team Foundation Server Proxy.
Distributed Load Testing.
Team Foundation Build.
Chapter 16: Monitoring Your Team Project Metrics Using SQL Server Reporting Services.
Reporting Services Architecture.
Online Analytical Processing (OLAP).
Team System Data Warehouse Structure.
Using MSF Documentation as a Guide.
Planning Custom VSTS Reports.
Creating Custom Team System Reports.
Mining Project Data Using an Excel Pivot Table Report.
Creating Custom Reports with the Report Designer.
Using the Report Builder.
Advanced Customization and Extensibility.
Deploying Reports in Team System.
Troubleshooting the Data Warehouse.
Administering and Refreshing the Warehouse.
Setting Security Permission on Reports.
Chapter 17: Completing Software Projects.
Release Management within the Microsoft Solutions Framework (MSF).
Implementing Release Management Tasks in Team System.
Finalizing Projects in Team System.
Exporting and Saving Your Project Artifacts.
Improving Your Process through Lessons Learned.
Removing a Project from the Server.
Deleting a Team Project.
Using the TfsDeleteProject Commands.
Uninstalling Team System.
Creating a New Version of an Existing Application.
Create a New Team Project.
Implement Version Control Migration.
Migrating Other Assets.
Team Foundation Server Future Directions.