Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

.NET

VSTS: In the Wild


DDJ: Let's pull back a minute and look at all of Team System. You work with a lot of people, and it's been out long enough that some things are probably starting to emerge as front runners as far as the overall Team System feature set. Why are people buying this product? What are the killer features? Is it things like unit testing, code coverage, and so on?

RH: So, the people that are interested in the unit testing, code analysis, code coverage, and build, those are what I call the "N" people (people using NUnit, NAnt, and the like), and they're not gaining a ton of new functionality; but they are getting it all integrated into their daily IDE.

DDJ: How big of a deal is the integration? Are you finding people saying, "Now that it's in Team System, we're dumping all the Ns"? Or, is it more an issue that they already have the Ns up and running, and Team System is really going to have to prove itself to get them to move?

RH: It's both. If I'm talking to a room full of self-employed types like you and me, I get a response of, "If I want Team System, I have to pay extra for MSDN. I already have the Ns, etc. I don't need it just because it's Microsoft." But, if I'm talking to a law firm, or aerospace company, or insurance company, they say, "Yeah, the Ns were always out there, but we never really used them that much. Our company wouldn't have authorized it because it's some unsupported SourceForge thing." Now that it's integrated and supported by Microsoft, those people are raising an eyebrow, and they are really interested in it. There are also migration tools available to get people off of the Ns. We list quite a few on our widgets on our site [www.accentient.com].

DDJ: What I'm running into, with some of the smaller shops that I work with, is they don't have formalized testing. To some degree, the testers are the customers. This is shockingly common. So when I show them the unit testing, they're not really interested in going down a whole Test-Driven Development (TDD) route, but they are very interested in using it to sort of "smoke test" their application—maybe build a test that runs through a series of operations, and then look for a certain result in the database, or a certain output.

They might also be looking at it to test some of their algorithms, especially if they're planning on making some big performance optimization and they want to ensure that they don't break something. With some of these algorithms, it wouldn't be immediately obvious if the wrong numbers started popping out. If you run a histogram algorithm, for example, it's hard to just look at the data and know that it's right, so they see the importance of having a test suite before they start making big changes. To them, testing is now within reach, and maybe it wasn't with the Ns. Maybe Team System will lower the barrier to entry for automated testing, more than it will capture the top end of the TDD market.

RH: I think that's true. It's right there. It's just a right-click away. There aren't a lot of excuses for not using it.

DDJ: So when you look at all of Team System, what are the main reasons people are interested?

RH: My observations are: Number one is that it's the next version. They have an enterprise agreement, it's where Microsoft is going, so they're going to upgrade just because it's their policy to stay current. Number two is source control. They aren't satisfied with SourceSafe. They've seen demos of Team System and they know it can do very sophisticated branching, merging, and shelving, and they need better protection of their code. They need to have an enterprise source control system. That's what Team Foundation Server is being targeted at.

DDJ: Is it more of a concurrent source control, where there isn't really a check-in, check-out? In other words, is it more like CVS, where you aren't locking files when you're working on them?

RH: There are a couple of different modes that you can run it in. You can have a check-in/check-out mode where no one else can touch a file while you have it checked out. You can also allow other users to check-out, but not while you have it checked out. The default is a multiuser mode where everyone can modify the same files at the same time. It will try to automatically merge changes, or if there are conflicts, the second person checking in is presented with a three-way conflict resolver. It's a nice tool.

There have always been differencing engines, but this is a good tool where you can say, "I want these changes. I want those changes. I want to comment this. I want to shelve it. I need to throw a work item in here." If you'd rather not use Microsoft's compare and/or merge tools, you can link up your favorite tool instead.

The ability to associate things with work items is huge. You can say, "I'm going to check in 15 files. I'm going to put a comment across the whole changeset. And, I'm going to associate this change with two bug work items and one feature work item." That's pretty darn cool from a project-management standpoint. It really lets a project manager say, "What did my developers do all day?"

DDJ: Another impression that I get is that the work items are core to the product. Are you seeing the work items as being a driver?

RH: I've definitely met customers who say, "We're just getting it for the source control."

But then, once they have it in their shop, they start to see, "Hey, I can just right-click on this and create a work item." I think that feature will grow on people. Maybe they'll just do tasks at first, and then get into logging bugs and other types.

I've actually gone in and delivered training on Team System to companies that don't produce software. Seriously, all they do is crank out work orders, jobs, and job steps. They just want the portal aspect; they want the Team Project aspect. What they really like is that they can customize the methodology templates. You can take something like the MSF 4.0 Agile template, copy and paste, and customize it. You can put your logos in the corner of the guidance pages. You can put in your step-by-step definitions of a task. You can put your reports in. You can put your document templates in. You can create your own work item types, so instead of a bug and a task, you have a work order and a job. You compile that and upload it and, boom, you have your own custom process.

That's really the undiscovered country of Team System. If people will just take the time to document what they do, for projects of any kind, whether it's making sandwiches or generating work orders, or even writing code, you can put together a methodology template, and the portal will reflect it. The reports will report on it in real time. You can plug in your own domain-specific designer with your own toolbox. Then you can just scale it up from there.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.