Planning a Team Project

Before creating a team project, you should carefully plan the scope of the project and consider the future path for the modification, growth, and maintenance of the team project. This topic presents a list of questions you must answer to determine whether you may want to create a new team project or expand an existing project. This list of questions is presented as a starting point for your deliberation and is not intended to be exhaustive or definitive for all software development projects. The questions are divided into four groups:

  • Questions about the Current Team Project and Your Future Work

  • Questions about the Capacity and Performance of the Team Foundation Server

  • Questions about the Structure or Hierarchy for Organizing the Team Project

  • Questions about the Preferred Software Development Process

For most of the questions, if you answer yes, we recommend that you create a new team project.

The following diagram displays the questions as a decision tree and will help you visualize how the various questions relate to one another.

Planning a Team Project

Questions about the Current Team Project and Your Future Work

To answer the following questions, you may want to think about your current team project and whether you want to continue doing things the same way in your future work. You may also want to determine whether there is sufficient capacity in the team project to handle the future work.

The following diagram displays the questions as a decision tree and will help you visualize how the various questions relate to one another.

Planning a Team Project section 2

Is this a new Team Foundation Server installation?

If you have installed Team Foundation Server for the first time, you must create a new team project before you can use any one of the features or tools of Team Foundation. If you are working on an existing installation, you might find team project already existing on the server, and you should evaluate the adequacy of that project for your future work.

Do you need a new team portal?

Review the contents and focus of the current team portal. Determine whether the content and focus of the portal is still relevant to the future work. If you want to create another team portal that focuses specifically on the future work, you must create a new team project and team portal. We strongly recommend that you use only one team portal for each team project.

Do you need different people to have different permissions?

Review the task assignments and security permissions for all the team project members. Determine whether:

  • Current team project members will be performing multiple roles in the future work.

  • The same person will need different permissions for different parts of the project.

  • Different people will be performing the same roles as current team members.

If you will have different people with different permissions working on the project, you must create a new team project.

Do you want to use different check-in policies?

Review the current check-in policies for the current team project. Determine whether the check-in policies are still appropriate for the future work. If you want to use different check-in policies for future work, you must create a new team project and define the new check-in policies. Team Foundation Server supports using only one set of check-in policies for each team project.

Do you want to use different settings?

As you gain experience working on and with a team project, you may decide to change the project settings. Some settings can be changed in the existing team project, and others can only be changed by creating a new team project for continuing the work. The following questions will help you consider the adequacy of the current settings.

Do you want to use a different process template?

Identify the process template and, if applicable, the process guidance used in the current team project. Determine whether the template is still appropriate for the future work. If you want to use a different process template for future work, you must create a new team project using that different template. Team Foundation Server supports using only one process template for each team project. After the team project starts, you can manually customize the process template that is being used according to the team project. However, unless these customized changes are saved to the process template stored on the Team Foundation server, the changes will not appear in any new team projects that are based on that template.

Do you want to use different work item types?

Identify the type of work items used in the current team project. Determine whether the work item types are still appropriate for the future work. If you want to use different work item types or want to use the same work item types with different content, you have to create a new team project and define new work item types. Team Foundation Server supports using only one set of work item types for each team project.

Do you want to experiment with process or other team project settings?

If you are new to Team Foundation Server or interested in improving team functioning, you may want to experiment with alternative work flows, classification hierarchies, build processes, policies, and more. Create a separate team project to run these experiments.

Do you use a master .mpp or .xls file to manage?

Review the information and tools you use to manage the team, especially if you manage more than one team project. If you use Microsoft Project or Microsoft Excel as the major tool to manage team projects and want to track all project activity in the same master .mpp or .xls file, you should continue adding more iterations to a project instead of creating a new team project. Team Foundation Server does not support using Microsoft Project or Microsoft Excel to display work items that are shared across team projects. In other words, if you manage two or more team projects and have work items that are associated with more than just one team project, you cannot display those work items in Microsoft Project or Microsoft Excel. Instead, you must use one of the other reporting tools in Team Foundation Server to view and manage those shared work items.

Are there more than 10 million versioned work items in the project?

Count the total number of work items in the current team project and determine whether you have used more than half the capacity of Team Foundation Server. Team Foundation Server supports a maximum of 20 million versioned work items in a single team project. If you have used more than half, you may run out of room before you finish the new team project. Additionally, the complexity of the work items can adversely affect Team Foundation Server performance

Do you want to manually move all the active work items in the project?

Count the number of active work items in the current team project. If you create a new team project, you must copy these work items from the current to the new team project. Team Foundation Server does not support the bulk copying or moving of work items from one project to another. Assume for a moment that it takes 30 seconds to copy and paste a work item from one team project to another, to copy 500 work items would take 250 minutes or over 4 hours of continuous work.

Alternatively, you could use Microsoft Excel to bulk copy work items from one team project to the other. Although the bulk copy would copy the current information in the work items, it would not copy the work item history, attachments, and links to the new team project. For more information about bulk copying work items using Microsoft Excel, see Working with Work Items in Microsoft Excel and Microsoft Project.

You must decide whether the advantages of having a new team project out weigh the costs of copying the work items.

Does the software functionality change significantly?

If the future work introduces new technologies or significantly new software functionality, you may want to create a new team project. New technologies or functionality may require very different work flows, testing, build scripts, and more that could, in turn, require significant modifications to the current process template or process guidance.

Questions about the Capacity and Performance of the Team Foundation Server

To answer the following questions, you may want to think about the Team Foundation server, where the current team project is stored, and where the future work will be located. You may also want to determine whether there is sufficient capacity and performance in the server to handle the future workload.

The following diagram displays the questions as a decision tree and will help you visualize how the various questions relate to one another.

Planning a Team Project section 3

Are there any performance issues on the server?

As Team Foundation Server accumulates work items, source code, documents, and other artifacts, the server may require more time to return queries, check in files, or build a software project. If these actions take longer than they did when you first started using Team Foundation Server, the increase in time may indicate slower server performance because of many team projects on the Team Foundation server. The more team projects there are on the server, the slower the server will perform. If server performance has become an issue, consider either upgrading the server hardware and continuing with the current team project or creating a new team project on a different server.

Have you upgraded the server?

If query, check-in, or build performance become an issue, contact your Team Foundation Server administrator to review any server hardware upgrades that have been completed or are planned for the time period of the future work. If the server hardware has not been upgraded, an upgrade may improve the performance to acceptable levels. If an upgrade is scheduled but not yet completed, you may want to create a new team project instead of add iterations to an existing one.

Are there more than 1 million documents in a document library?

Contact your Team Foundation Server administrator and review the number of documents stored on the Team Foundation server. Windows SharePoint Services supports a maximum of 2 million documents in a document library on a server. As the number of documents approaches the maximum, server performance will slow, and your team will eventually run out of room to store documents. If you have used more than half the capacity of the server, we recommend that you create a new Team Foundation server and a new team project on that new server. For more information, see "Capacity Planning for Windows SharePoint Services" (https://office.microsoft.com/en-us/assistance/HA011607741033.aspx).

Note

When you plan for the capacity of your project, consider that you cannot later move the team project from one server to another. The team project can be backed up and restored on that server, but moving the team project from one Team Foundation Server server to another is not supported.

Are there more than 200 team projects on the Team Foundation Server?

Contact your Team Foundation Server administrator and review the number of team projects on the Team Foundation server. Team Foundation Server can support a maximum of five hundred (500) team projects if you use the MSF for Agile Software Development process template for project creation. Team Foundation Server can support a maximum of two hundred and fifty (250) team projects if you use the MSF for CMMI Process Improvement process template for project creation. As the number of team projects approaches the maximum, server performance will slow, and your team will eventually run out of room to store team projects. If you have used more than half the capacity of the server, consider installing a new Team Foundation server and a new team project on that new server. For more information, see Team Foundation Server Planning Roadmap.

Are there more than 1000 users on the Team Foundation Server?

Contact your Team Foundation Server administrator and review the number of unique users on the Team Foundation server. Team Foundation Server supports up to 2000 users on a single server, depending upon the server hardware. As the number of users approaches the maximum, server performance will slow, and your team will eventually run out of room to add unique users. If you have used more than half the capacity of the server, we recommend that you create a new Team Foundation Server server and a new team project on that new server. For more information, see Team Foundation Server Requirements.

Do you want to preserve the team project artifacts from one time period for later audit or historical review?

If you want to periodically make a historical record of the team project artifacts (for example, source code, work items, documents, or reports) and help protect that record from any additional intentional or unintentional changes, you may want to create a new team project after a major iteration, milestone, or release. To help protect the record, you can create a new team project, branch the existing source tree, copy the other objects to the new team project, and then remove all permissions to make changes in the original project.

At this point in the planning process, you should decide about whether to create a new team project or to continue to use the existing team project for future work. If you decide to create a new team project, before you continue with the next set of questions you should also determine:

  • Your long-term plan, such as five-year, for creating and naming software development projects.

  • The conceptual boundary for the new team project such as what kinds of things are included or excluded.

Because these two decisions are most likely based on factors outside Team Foundation and unique to your organization, they are not discussed more in this topic.

Questions about the Structure or Hierarchy for Organizing the Team Project

To answer the following questions, you may want to think about the way the current team project is organized and if the future work is best organized the same way. You may also want to determine how the organization of the future work corresponds to the organization of the source code and to the rest of your organization.

The following diagram displays the questions as a decision tree and will help you visualize how the various questions relate to one another.

Planning a Team Project section 4

Is the structure imposed by an external group?

Your organization may already have a standard structure for software projects that is based on the business unit requesting the software, the funding source for the work, critical organizational events, or some other factor outside the software development life cycle. Set the areas and iterations hierarchy for the team project to match the required structure.

Is the team creating a product?

If the central focus of the future work is creating a stand-alone product with a clear identity, you can organize the source code, iterations, and areas by the product features. Each new product should be a separate team project.

Are you creating a new version?

If the central focus of the future work is creating a new version of an existing product, you can organize the source code, iterations, and areas by the software version. Each new version should be a separate team project.

Do you have definite start and end dates?

If the central focus of the future work is a definite start and end date, you can organize by the software version. Each major set of start and end dates should be a separate team project.

Are you concerned about accumulating items?

As work progresses on the software, the team project may accumulate work items, documents, reports, build scripts, and other team project items and work products. There is both a storage cost and a staff cost to the monitoring and management of these items. If you are concerned about the accumulation of team project items and want to archive or delete these items as quickly as possible, you can organize by the software version. Each major version should be a separate team project.

Do you want to store source code by team?

If you prefer to have a single source code project for the whole team project and not a separate source code projects by product, version, or business unit, you can organize your areas and iterations hierarchy to match the organization of the whole software development team.

Are you just maintaining software?

If the focus of the future work is maintaining software or the organization infrastructure instead of for distribution outside the organization, you can organize your areas and iterations hierarchy to match the organization of the whole software development team.

Questions about the Preferred Software Development Process

To answer the following questions, you may want to think about the software development process you want to use in accomplishing the future work. You may also want to determine whether there is a mandated process or a priority on process improvement.

The following diagram displays the questions as a decision tree and will help you visualize how the various questions relate to one another.

Planning a Team Project section 5

Are you required by law or contract to use CMMI?

Under certain circumstances you will not have a choice about the process template used to create a new team project. For example, Federal regulations may require that the software be developed by using the CMMI process. Therefore, you must select the template MSF for CMMI Process Improvement when you create the team project. Or the funding organization may require that you use CMMI.

Do you need a larger number of roles?

If your future work requires many roles for team members, you should determine whether the template MSF for CMMI Process Improvement is appropriate. For example, you may have just completed a team project using the template MSF for Agile Software Development and found that your team needed more than following roles that come standard with that template:

  • Business Analyst

  • Project Manager

  • Architect

  • Developer

  • Tester

  • Release Manager

The template MSF for CMMI Process Improvement comes standard with the following, more complex set of roles:

  • Project Manager

  • Sponsor

  • Architect

  • Subject Matter Expert

  • Developer

  • Development Manager

  • Build Engineer

  • Tester

  • Test Manager

  • Auditor

  • Quality of Service Specialist

  • Release Manager

  • IPM Officer

  • User Experience Architect

  • User Education Specialist

  • Product Manager

  • Business Analyst

Does an outside group recommend process improvements?

If your organization is concerned about process improvement, the organization may rely on a special group inside or outside the organization to review current workflow and business processes and suggest improvements. If using a special group, use the template MSF for CMMI Process Improvement when you create a new team project.

Do you currently document your process?

If your organization is concerned about process, the organization may rely on a special group inside or outside the organization to review current workflow and business processes and suggest improvements. If using a special group, use the template MSF for CMMI Process Improvement when you create a new team project.

Is there an appropriate third-party template?

Your organization may have already adopted a process template provided by a third-party vendor. If you already have a template selected, use the third-party template when you create a new team project.

Are you satisfied with your current process?

If you are satisfied with the current workflow process, you might not want to change or use a formal template. If it works, keep doing it.

Does the project have a short life cycle?

If the life cycle of you team project is relatively short, that is, less than 90 days, you may not want the additional overhead that a formal process like CMMI requires. In this case, use the template MSF for Agile Software Development.

Note

When you plan for the capacity of your project, consider that you cannot later move the team project from one server to another. The team project can be backed up and restored on that server, but moving the team project from one Team Foundation Server server to another is not supported.

See Also

Tasks

Walkthrough: Creating a New Team Project

Walkthrough: Creating a New Team Project from an Existing Team Project

Concepts

Creating a Team Project

Other Resources

Creating and Managing Team Projects