Problem solve Get help with specific problems with your technologies, process and projects.

Using TFS to manage distributed teams

Microsoft Visual Studio the latest version of Team Foundation Service (TFS) is packed with features that facilitate the coordination and management of distributed teams.

Distributed development teams are becoming more popular as technologies like Microsoft Office Live Meeting have evolved to provide rich experiences for sharing video, audio, documents, and whiteboards. The Microsoft Visual Studio application lifecycle management (ALM) team is keeping pace with this trend and the latest version of Team Foundation Service (TFS) is packed with features that facilitate the coordinate and management of distributed teams. How does a team stay on track and under budget when the designer lives in Washington, the database architect lives in Florida and several of the key developers are overseas?

The answer is to use the features that ship with the Visual Studio 2010 and TFS. SharePoint integration provides an environment for collaboration that allows remote sharing of documents, contacts, and calendars in addition to providing versioning and allowing for online discussions and Wiki pages to document solutions. The new architecture tab in the Ultimate edition of Visual Studio enables powerful UML-based design that can be shared with the team and even used to generate work items. The ability to attach files to work items combined with the association of work items to change sets creates a flexible collaborative workflow from design through release.

Sharing is the point

A powerful feature that has shipped with TFS for some time now is SharePoint integration. One of the first choices the new project wizard presents when creating a new project is the option to create a SharePoint site:

The site that is created can be accessed directly from Visual Studio 2010. Simply right click the project name and select “Show Project Portal”:

The SharePoint site provides multiple areas to store documents for collaboration. You can create areas for development, design, requirements, tests, or any other area that your team may collaborate on. SharePoint allows you to configure the behavior of your libraries so they can track changes or simply store the most recent item. Documents may also be locked and checked out to a user so that the rest of the team knows when changes are being made.

A common thread

Documents aren’t the only thing that the TFS SharePoint integration provides. How often have you been part of a large email thread discussing some question that a developer raised? While email is great for exchanging ideas, the problem is that once the resolution has been reached, it only lives in your inbox! With SharePoint, you are able to create online discussion forums that feature threaded conversations and are fully searchable. When a topic for discussion arises, simply start a new thread on the SharePoint site and then reply to the email with the link. This will encourage the team to take the discussion to the team portal, where it can be archived and referenced. Many companies use this feature to build an ongoing knowledge base for support.


Most development starts with design. The new architecture tab available in Ultimate editions of Visual Studio 2010 provides all of the tools you need to provide blue prints for code, including UML Class and Sequence Diagrams and Use Case Diagrams. These diagrams can be easily exported as images and posted to the SharePoint portal for collaboration. More importantly, they can be directly integrated with work items in TFS – simply right click and you can create a new work item or link to an existing one.

You can use these tools to review dependencies, explore classes and stay in tune with the project at the architecture level.

Could not reproduce

The linking features of work items are very important for distributed teams. How often have you received a defect notice only to find you were not able to reproduce the problem? TFS alleviates this by allowing users to capture their sessions – using screen shots or even full video – and associate the media with an actual ticket. The remote developer can easily see exactly what steps were taken to create the issue, and get to work immediately on resolving the defect.

The work items automatically track history and provide a space for comments to create an archived dialog that follows the ticket from inception to resolution.

Code review

Managers often perform code reviews after developers finish their changes. TFS facilitates this with distributed teams by allowing check-ins to be associated with work items and change sets. A work item is a task, bug, test case or other item that describes a unit of work to be performed by the team. A change set is one set of code checked in by the developer.

The history of the work item will automatically update to show the associated change sets:

For each change set, you can quickly view the code that was modified. This will include any comments the developer left during check-in, as well as the files that were modified:

To see what code was changed, right-click on the specific item that is listed and choose “compare with previous version.”

This will bring up the file difference dialog to show you exactly what changes took place.

Release to manufacturing

Whether your team works out of the house in the same city or is distributed around the globe, the TFS tools provide the perfect environment to facilitate remote development. Be sure to take advantage of these powerful features to coordinate and communicate your distributed software projects. From the first requirement to the last code check-in before go-live, TFS is a key component of the application lifecycle management process and provides powerful tools to manage distributed teams.


Next Steps

Trial versions and vendor research can be helpful if you want to invest in the right application testing tools.

Dig Deeper on SharePoint Server and .NET development

Start the conversation

Send me notifications when other members comment.

Please create a username to comment.