26.04.2015 Views

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

Team Development with Visual Studio Team Foundation Server

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

How should I organize my team projects?<br />

<strong>Team</strong> projects are intended to represent the largest unit of work possible in your<br />

organization. Most often this will be a product under development.<br />

Consider one of the following strategies for managing team projects:<br />

• Create one project per application.<br />

• Create one project per release.<br />

Create one project per application<br />

If you want to carry forward not only source code but also work items and other TFS<br />

assets between releases, consider using one project per application. When you use a<br />

single project for multiple versions of the application, all of the TFS assets are carried<br />

forward automatically for you for the next release. When you are ready to release a new<br />

version of your application, you can create a branch <strong>with</strong>in the project to represent the<br />

release and isolate that code.<br />

The following are reasons not to use one project per application:<br />

• Releases in parallel are forced to share work item schemas, check in policies, and<br />

process guidance.<br />

• Reporting is more difficult; because reports default to the entire project, you must add<br />

filtering by release.<br />

• If you have hundreds of applications, each in its own project, you will run up against<br />

TFS performance and scale limits.<br />

• You will accumulate ‘baggage’ over multiple releases. The easiest way to eliminate<br />

this baggage is to create a new team project and then branch code you want to carry<br />

forward into that project.<br />

Create one project per release<br />

If you want each release to start fresh <strong>with</strong>out carrying forward work items and other TFS<br />

assets, consider using one project per release. When you use a new project for each<br />

release, you can modify work item schemas, workflow, check-in policies, and other<br />

assets <strong>with</strong>out impacting the old release. This can be especially useful if the old release<br />

will be maintained by a separate team, such as a sustained engineering team who may<br />

have a different process and workflow than your main development team.<br />

The following are reasons not to use one project per release:<br />

• While it is very easy to move the source code from one project to another, it is<br />

difficult to move work items and other TFS assets from one project to another. Work<br />

items can only be copied one at a time to another project, if you want to copy sets of<br />

work items you’ll need to write your own utility.<br />

• If you have hundreds of applications and releases, each in its own project, you’ll hit<br />

<strong>Team</strong> <strong>Foundation</strong> <strong>Server</strong> performance and scale limits.<br />

Keep the following considerations in mind when choosing your strategy:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!