Visual Studio Collaboration, Anywhere

One of the key goals for Visual Studio Team Foundation Server (TFS) 2012 is to provide a way to allow different team members to interact and work more closely together. By increasing the amount of collaboration between team members, and allowing team members to utilize the tools they're familiar with, teams can be more efficient and work better together. TFS 2012 accomplishes this goal very well, through a variety of different tools.

In this column I'll review a third-party tool for Visual Studio that may further increase the collaboration between team members, especially developers. It may even change how you write your code. This component is called VS Anywhere.

VS Anywhere turns Visual Studio into an actual, real-time collaboration platform. It allows your developers, architects, designers and testers to use Visual Studio in new and creatively collaborative ways, even with geographically dispersed team members. Using VS Anywhere, team members can share their Visual Studio sessions, working together in the same code file at the same time. Developers can watch other developers write code, in real time, in Visual Studio.

In addition to the code-sharing capabilities, VS Anywhere also adds full chat functionality with multiple user conference rooms, where developers can participate in different discussions. And it supports Voice over IP (VoIP), with integration with Skype.

VS Anywhere is composed of both a client component and a server component. The client is available in the Visual Studio Gallery. The server component is available both as an on-premises install and a cloud-based solution. From a licensing perspective, VS Anywhere is free for non-commercial users. Other pricing information, including a pricing calculator, is available on the company's Web site.

Once you have VS Anywhere installed, your main interface is the VS Anywhere Control Center, shown in Figure 1.

[Click on image for larger view.]Figure 1. The VS Anywhere Control Center window.

This window allows you to manage all aspects of VS Anywhere, including:

- Manage followers/following, which allows you to control who's following your session and whose sessions you're following.
- Manage contacts, which provides the ability to see who's online and ready for a collaboration session.
- Manage conference rooms for sharing information with team members.
- Manage shared sessions.

VS Anywhere installs an icon that hovers in the top-right corner of Visual Studio. This icon allows access to the VS Anywhere menu, which you can use to control sessions. Simply hover your mouse over the icon to open the VS Anywhere menu. If you're not currently in a sharing session, the menu gives you the ability to start a session. If you're in a sharing session, the options are slightly different, as shown in Figure 2.

VS Anywhere can also be accessed from the Visual Studio main menu. There are contextual menus that can be accessed by right-clicking on a solution, project or project file in Solution Explorer, allowing one-click access to start a sharing session.

So what happens when you start a sharing session? Most readers have probably participated in a Microsoft Office Live Meeting or Microsoft Lync Online meeting, where presenters can share their desktop or applications, and other members of the meeting can view what the presenter does. VS Anywhere does something very similar, but instead of sharing a view of a desktop or application, it actually links the developers' Visual Studio applications together. Essentially, the developers are seeing the same tab containing code in Visual Studio and -- depending on the meeting sessions -- they can edit the code file at the same time.

A developer can follow what another developer is doing, actually watching the developer's mouse move and click. And all of this takes place inside of Visual Studio, allowing developers and other team members to stay inside their tool, yet benefit from collaboration. VS Anywhere uses contextual information, such as remote virtual carets and scroll markers, to make it easy to see what other developers are working on, while they're working.

Here's a typical scenario for getting help in resolving a coding issue. A developer has a problem with which he needs help. He writes an e-mail describing the problem, and e-mails it to another developer. This developer has to read the e-mail, determine exactly what the first developer is talking about, find the code, try and re-create the issue, then inform the first developer of the solution. All this can lead to misunderstandings, and takes a good bit of time.

Now consider the same scenario using VS Anywhere. A developer finds a problem he needs help with. Using VS Anywhere, he can see a second developer is currently online. He can ping the second developer to see if he's available, then start a sharing session with him. The first developer can walk the second developer through the code to show him the issue, and the second developer can fix the code while the first developer watches. All of this occurs within Visual Studio, with neither developer having to leave the application or start a separate sharing application.

Future enhancements coming to VS Anywhere include the ability to do collaborative merging, to work together with another developer to merge different branches of code, and to perform an online code review using TFS.

I give the VS Anywhere component a rating of five out of five. It's a tool I see myself using on a daily basis, and it will definitely make teams -- both those that are completely in-house and those that are geographically dispersed -- much more productive.

You can find more information on VS Anywhere, including videos showing details on how it can be used, on the company Web site.

Author disclaimer: I have no financial relationship with Constellation, VSAnywhere, or with anyone involved with the product. I also am benefitting in no way from reviewing the product.

About the Author

Mickey Gousset spends his days as a principal consultant for Infront Consulting Group. Gousset is lead author of "Professional Application Lifecycle Management with Visual Studio 2012" (Wrox, 2012) and frequents the speaker circuit singing the praises of ALM and DevOps. He also blogs at ALM Rocks!. Gousset is one of the original Team System/ALM MVPs and has held the award since 2005.