What is VSTS?

Posted by Kevin Kelly on 09/1/09 | DotNet

You’re still preparing for your phone screen for that C# position at HealthyBank, and you’ve discovered that you should be ready to answer “What is Microsoft VSTS?” Visual Studio is almost certainly the development environment tool being used, and you already know enough about that, since you are applying for a C# position! But what is Visual Studio Team System (VSTS)? How does it fit with the Visual Studio you know and how might the VSTS features be relevant to you at HealthyBank?

What is Microsoft VSTS?

Visual Studio Team System (VSTS) is composed of a Server, called Team Foundation Server (TFS), and a collection of tricked-out versions of Visual Studio each tuned to specific roles -- architect, developer, or tester -- on a development team.

Corporate IT shops, just like the one at HealthyBank, use VSTS to create a development environment where many projects are developed over the course of a budget cycle and many people come and go over the same time. They count on tools like VSTS to encourage consistency in development projects and to capture and protect assets produced by these projects. I’ll survey the core capabilities of VSTS for you here.

Source Code Control

Source code control (SCC) systems help coordinate parallel development, the simultaneous editing of source files shared by developers across the team. Helping teams orchestrate change to the source base is perhaps the most important capability of VSTS or any system with an SCC component. VSTS has a modern and strong SCC subsystem.

A side effect of the way all SCC systems are implemented is a completely accurate time-machine view of every change to every file of the project. You can recreate the state of the source base as of a specific point in time. Or you can easily look up who made some whacky change a month ago. VSTS has change history features in spades.

Industry Balkanizers try to classify SCC tools by workflow idioms like “Edit-Merge-Commit” (Good) and “Checkout-Edit-Checkin” (Bad). The SCC subsystem of VSTS is a bit of hybrid, more like “Edit-Merge-Commit” in that, by default, it encourages developers to work on shared files in their own workspace (Edit), synchronize their changes with the latest version of the source on the server (Merge) and then checkin (Commit).

The architects of VSTS made a tradeoff to optimize for tighter team collaboration by assuming everyone on the team is connected to the server. They introduced a concept called Pending Changes to communicate when edits are made to shared files. This allows the server to coordinate parallel development. When you make a change to a file in your workspace, the server is notified and annotates file metadata that an edit is pending, the server can track in-flight changes and help anyone else who needs to change the same file coordinate their changes. Pending Changes aren’t locks, they’re notifications.

The implementation of Pending Changes forces a tight binding between VSTS clients and server. Because of this, some try to label VSTS as being of the Checkout-Edit-Checkin class of SCC tools, but it’s not. With VSTS, developers can work in parallel on the same files. The genuine criticisms come from developers who work isolated from one another, disconnected from the server. Truly distributed development is not handled very well with VSTS, a deliberate tradeoff to enable actively collaborating and connected teams to work better together.

Oh, and remember VSTS is not Visual Source Safe (VSS). Both systems are totally different and distinct products from Microsoft.

Manage Developer Workflow

The core of the developer workflow in VSTS is governed by a variety of work items like bug, task, test, etc. The different types of work items in the system each have their own form, available across much of the VSTS user interface, and a simple state-transition based workflow that changes the form validation rules as a work item advances from active to resolved to closed. Work item forms, rules, and workflow are all extensible and many organizations do modify them to match local policy and customs. You may find that HealthyBank has replaced the default work items with completely custom work item types.

In VSTS work items are integrating entities that link to changesets in the SCC system. They link to documents posted in the team portal to provide rudimentary requirements and test case management. Work items link to other work items in VSTS to create hierarchies of related work, great for project planning and status reporting. Be sure to mention how using Microsoft Excel is a simple way to run queries of work items and manage them in a list.

Communicate Status

In VSTS, the organizing entity is the Team Project, and each has a dedicated Team Project Portal hosted on a Windows SharePoint site. Obviously, a shared team portal is useful for landing status widgets and hosting document artifacts. The criticism of VSTS Team Portal is that it’s a bit of a nuisance for the Team Project administrator. To date, VSTS has taken little advantage of the rich SharePoint feature set. But at the same time every Team Project has a hard dependency on the SharePoint installation; you can’t just turn it off and ignore it. Configuration and administration of the SharePoint sites is fragile and requires a lot of expertise from the administrator.

Automate QA Processes

Another major subsystem of VSTS is an application called Team Build. It integrates SCC and work item tracking systems to automate the compile-test loop of the build process. It allows development teams to create a continuously running process, constantly building their product as developers checkin changes to the source base. The process produces interim builds and subjects them to a battery of unit and integration tests the development team maintains. With this automated (read, repeatable) process in place Team Build can compile, deploy, test, and give the team actionable feedback almost immediately when changes cause test assumptions to fail or introduce interaction bugs. Ultimately, it helps the team improve both velocity and quality. The key is the level of integration across all the VSTS systems.

Provide Data for Team Introspection

With work items orchestrating developer and tester workflow, and the SCC and Team Build subsystems tracking every change, pretty soon you can begin to ask and answer some interesting questions about the performance of project, process, and team. VSTS uses SQL Reporting and Analysis Services to generate a data cube enabling analyses like code churn by component or test results by build. These “business intelligence” capabilities drive the pre-packaged reports that come with VSTS as Team Project Templates. Defining and deploying your own custom reports is excruciatingly difficult which makes it hard to unlock the value of this capability.

Who is the VSTS Competitor?

There are several major competitors in the Application Lifecycle Management (ALM) space, but from the VSTS perspective, the primary competitor for VSTS is IBM Rational Team Concert. Both products compete for the corporate IT budget.

Tear away the marketing noise and perhaps the most significant difference between VSTS and Team Concert is that Team Concert has the notion of Team baked in. In a bit of irony, Visual Studio Team System has no entity for team. In the Team Concert mindset you define teams explicitly then you define projects that your team accomplishes. All this enables a wide range of Web 2.0-like collaboration capabilities across the Team Concert tools. With VSTS, you define your project and then you manage ACLs for users who work on your projects. VSTS makes it even more complicated because there is not a central team management capability; administrators have to manage separate ACLs in SharePoint, in SQL Reporting Services, and in the VSTS application itself.

Team Concert has an open middleware interface, which means you can install Team Concert using open source middleware (Tomcat, Derby, and Jabber) or IBM’s middleware (WebSphere, DB2, and Lotus). The Microsoft VSTS server must be installed on the Microsoft stack: Windows Server with IIS, SQL Server, and SharePoint.

A trump card VSTS has over Team Concert is its maturity. VSTS is two releases ahead solving essentially the same scenarios Team Concert is attacking. Microsoft has deployed the VSTS server across its engineering teams and publishes usage metrics openly. They use what they sell. Their dogfooding efforts show up in the robustness and scalability of the server.

What is the VSTS Alternative?

Some organizations avoid software license costs altogether by choosing open source alternatives over mega-vendor tools like VSTS. The primary alternative to VSTS is Subversion for SCC and a constellation of cheap or free tools for work item tracking and build. The development team is left with the integration work. This approach makes a lot of sense when both your team and your projects are mature and stable. For a lot more control, and a lot less expense, you take on the risk of tying together these tools in a way that enables your own development process.

I hope this piece gives you a framework to summarize VSTS with specific talking points that will resonate with your interviewer. Best of luck!

About Kevin Kelly


Kevin Kelly , program and product manager on Microsoft engineering teams from 1995 to 2009, contributed to the Visual Studio product line. Kevin currently serves as consultant to SetFocus on curriculum development for their .NET Master’s Program and on the application of VSTS and agile software development practices across the SetFocus product portfolio. Check Kevin out on LinkedIn and at his blog!

Kevin Kelly on LinkedIn
Kevin Kelly's blog



.NET Training and "How to" prepare for your next .NET Developer job

If you are considering a position as .NET developer and need the background and experience to be able to answer the question “What is Microsoft VSTS?”, consider SetFocus to train for the next step in your career and to network with companies seeking .NET developer talent.  SetFocus offers a number of ways to learn .NET and become a .NET Developer. 





































 


0 Comments

COMMENTS

Name:
URL:
Comment:

Comments are disabled for this article.