The basis for all projects in Team System is the Team Project. The Team Project holds information about every step of the software development life cycle in a central repository within the Team Foundation Server. This includes requirements management, scheduling, and resources.
There are important differences between a Team Project and a Visual Studio Project — in fact, some people get confused about the meaning of these project types. The Team Explorer enables you to navigate and manage all elements of your Team Project, including your development team, the SharePoint team portal, source code repository, work item database, documents, reports, and templates. The interface of Team Explorer is very similar to that of the Solution Explorer, so you should feel quite at ease using it. To put it in perspective, think of a Team Project in this way: A Solution can contain several Visual Studio Projects. A Team Project, on the other hand, can contain several Solutions. The Visual Studio project is primarily used to organize your code. The Team Project is used to organize all of your software development efforts!
If you can't find the Team Explorer option within Visual Studio, you probably forgot to install the client plug-in. Team Explorer is bundled with Team Foundation Server. You can find the installer on the Team Foundation Server DVD/CD media; please refer to Chapter 18 for more details.
Without helpful software tools like Team System, managing a software development project can be quite a challenge. Here are some common scenarios you might encounter without the help of Team System:
Many development teams use e-mail or some other paper processes as their primary mode of communication. If team members are behind on their mail or a report is lost, then communication problems may occur.
All reporting has to be done manually by project leads. The process of compiling the data can be time-consuming and may not provide enough information to identify trends or problems, especially if you want to manipulate data from a variety of sources. In many cases, you have to buy expensive third-party software to get the job done.
Many project managers use Microsoft Excel or Microsoft Project to create Gantt charts or list requirements. Most project managers update their lists and then have to perform cut and paste operations to bring them into third-party applications.
The prerequisites for the Project Management components of Team System include Team Foundation Server (including an Administrator account), SQL Server 2005, and Microsoft Excel or Microsoft Project (or both).
Currently, the only way to create projects is using the Visual Studio IDE — by using Team Explorer.
In the next section, you will learn the key markers of a successful software project. Then, you will find out how to use the New Team Project Wizard to create and configure your first project within Team System.
Here is a list of common problem spaces and the solutions offered by Team System (as shown in Table 19-1).
Solutions Offered by Team System
Lack of standards compliance
Each Team System project must be accompanied by a methodology, which enforces good practices. With the advent of Sarbanes-Oxley (SOX) legislation (which resulted from the Enron scandal), creating an accountable environment that is compliant with standards is especially important. MSF also comes with prescriptive guidance.
Poor understanding of processes
Process guidance is integrated in your project in many ways: as processes a web site accessible from your team portal and through work items, policies and the help menu.
Work item workflow allows easy inter-team communication. The project manager is always on top of the latest metrics without having to communicate directly with team members. In addition, messages are centralized and are not subject to problems experienced by decentralized systems such as e-mail.
Poor metrics and estimation skills
Metrics are handled via SQL Server Reporting Services. All estimation skills metrics (including build, test, and performance numbers) flow automatically into the central data store on the Team Foundation Server.
Too much focus on operational details and poor workflow management
Team System takes a lot of the operational tasks out of process. Reports are gathered and generated automatically based on incoming data. Team System also operates in a paper- free process that enables all members of the team to be more productive. Workflow is automatically handled via work items.
Now that you've looked at the challenges of implementing a project using manual processes, and you have a clear understanding of the points of failure of a software project, the following sections explain how to successfully implement and manage a project using Team System.
To start a new project, select File New Team Project. The New Team Project Wizard will appear, as shown in Figure 19-1, prompting you to enter a name for your project. You can alternatively launch the wizard by right-clicking on your server name in the Team Explorer and selecting New Team Project.
The next step involves selecting a process template (as shown in Figure 19-2). Team System comes with two default process templates: MSF for Agile Software Development and MSF for CMMI (Capability Maturity Model Integration) Process Improvement.
The wizard then enables you to add a title and a description to your project portal (see Figure 19-3).
Use the next page to set the preliminary source control options. You have the choice of creating a source control folder for your project or creating a new branch from an existing source control tree (in case you are creating a project that is derived from another). Figure 19-4 shows the Specify Source Control Settings page.
Clicking Next completes the wizard. Depending on the template you select, a series of process guidance documents will be generated for your project. The Permissions settings page enables you to set privileges for the groups and users on your team (the next section provides more information on how to secure your project).
Once you click Finish, the wizard will create your Team Project. The process may take a little while (depending on how much RAM your server has). When it is completed, several folders will appear in the Team Explorer (as shown in Figure 19-5). (The figure illustrates the reports and documents you would typically find if you select the MSF for Agile Software Development process).
Your Team Project tree has five primary nodes: Work Items, Documents, Reports, Team Builds, and Source Control. The Work Item node includes predefined queries and custom queries to list the work items associated with your project. The Documents node has Development, Project Management, and Template subnodes to help you map out your development process. The Reports node includes a variety of report types to view the metrics of your project. The Team Builds node offers access to a variety of build types, including custom types. Finally, the Source Control node gives you easy access to your source code tree via the Source Control Explorer (you can also access the Source Control Explorer from the toolbar).