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.