Adventures with Team Foundation Server 2008 - The VSS 2005 Bait and Switch

Before launching into the gory details of my recent conversion to TFS I feel its necessary to address an issue that I consider to be completely reprehensible on Microsoft's part.  It’s not a technical issue so much as a product and market decision, and as such, lies squarely within the most disfunctional zone of the organization.  The issue involves the migration of VSS 6.x databases into TFS, or rather, the inability to do so.

Background

If you are currently using VSS 2005, I think you can safely stop reading this post now, but I make no guarantees.  I don’t know if the tool works, and I’m not spending the time to find out.  I will say that the core TFS developers seem to support it on the forums, so a certain amount of confidence seems warranted. If you’re using the older VSS 6.x, you’re about to have an extremely nasty surprise if you don’t have a MSDN membership.

When you migrate to VS2008 (which is well worth doing, don’t get me wrong) you will find that you can’t, out of the box, connect to your VSS database.  You can certainly dig through your archives and find the client for 2005, which does work with VS2008, but the writing on the wall is pretty clear.  TFS is maturing, it has a lot to offer, it is the future, and it’s pretty much about time to move there.

You’ll probably want to migrate your existing VSS databases to TFS, as if you practice good development, you’ve used source control to keep your code clean.  It isn’t stuffed full of large blocks of commented out code representing alternate solutions, all of that is done with versioning and branching in VSS.  Unfortunately, you can’t migrate this directly to TFS, because the migration tool has two nasty issues.

1 –  It only works on VSS 2005 databases

2 – It also seems to have dependencies on VS2005 code, so if you uninstall VS2005 prior to installing VS2008, you just shot yourself in the foot.

Overall productization efforts at Microsoft redefine the meaning of ‘abysmally bad execution’, so it should come as no surprise that this information is not communicated to you, instead you are left to stumble across it.  If you search through the forums, you’ll quickly determine that a number of small shops are upset, and some organizations have elected to not migrate at all, for this, and many other reasons.

Now, if you’ve got a full boat MSDN license, you can certainly go get VSS 2005 –  but there are a lot of developers who don’t have that, and there also (from forum postings) seem to be a fair number coming to VS2008 from somewhere other than VS2005.  Instead of feeling welcomed, they are met with a bait and switch. 

Here’s the catch for all of you in that boat – you can get a trial version of VS2005 which will address part of the problem, but you cannot get a trial version of VSS2005 – you’re either going to need the MSDN subscription, or you’re going to need to go buy a copy of VSS 2005, or you’re simply going to have to abandon the legacy information in your VSS database (there is an alternative I will discuss below, but its potentially even more expensive).

VSS 2005 was always a bit of a stealth product.  Not necessarily its fault, it had a very short life between 6.x and TFS.  It wasn’t ever truly integrated into the Visual Studio products, it always stood alone as a separate SKU.  So there’s a large body of developers that didn’t use it, and continued on with the legacy VSS.  TFS 2005 was simply too big an effort, and many didn’t even know about VSS 2005, because it wasn’t part of the product suites they were exposed to. However, understanding the genesis of the problem does not excuse it, in fact one would expect that the proper parties would be sensitized to the issue.

Commentary

Whatever morons made and reviewed the productization plans for TFS 2008 should have had this little datum at the forefront of their minds.  Specifically, they should have been asking, if we’re trying to move our customer base onto TFS 2008, how do we make that easy for them.  Half of it they got right, have a low cost version of TFS suitable for small shops.  I can’t say I believe they deserve credit for that, from the outside I’d be more likely to believe the TFS team themselves are responsible for that.

Some weasel is probably quite pleased with themselves, because they’ve read the situation as one where the conversion of small shops to TFS (under pressure) will result in additional revenues for VSS2005 because these shops will be compelled to get access to it one way or another. Look, little weasel, let me make something really damn clear here.  An enormous amount of the innovation on your platforms comes from these small shops, they’re usually strapped for resources of all kinds, and a large number of them may simply stay with the legacy VSS, which the posts on your forum should indicate to you, if you’ve got five working neurons left in that empty head of yours.  This then screws the larger shops, because it cuts down on the number of potential hires with TFS experience, as the small shops that fail (most of them) serve the additional purpose of generating a constant pool of available employees with experience with later Microsoft technologies.  I know one large Microsoft reference customer who has yet to migrate to 2.0 in any serious way.  They are considering 3.5, bypassing the majority of the 2.0 migration, but you’re not doing them any favors by making people with experience damn hard to find.  I’m looking forward to bringing this up to them, and I hope to be a spectator at the meeting I am reasonably certain will follow.  The pity is that I know the guys who will take the heat at that meeting, and its just going to be another case of punishing the innocent while the guilty go about their activities, oblivious to it all.

Recommendations

In short, if you’re a small shop moving to ViS2008, you’re doing the right thing.  And you can get the workgroup version of TFS which I do believe is the future and is also a good thing.  And after a year romping through all these new technologies, my hat is off to the people that created them.  I strongly recommend you consider them.

But you’re going to have to bite a bullet –  you’re either going to have to get an MSDN license version of VS2008, or you’re going to have to abandon your historical source.  And you may well look at this and say that Microsoft has gouged you for a product you need for one calendar day.  And you are quite correct.

An Alternative Strategy

A while ago I wrote some custom tools for version management that interoped with the VSS 6.x code –  I plan on looking at these to see if they can be connected to TFS to provide a migration alternative.  I plan on giving away whatever I have in source form, but I don’t plan on writing the whole thing myself.  If there’s anyone else out there that would like to participate, sing out by posting a comment.

A comment to the Microsoft readership.

As far as the Microsoft folk that are reading this – if you’re a developer and I’ve gotten something wrong – tell me, I’ll fix it and make sure the right information is available –  if you’re involved in productization, you can go straight to hell –  I have a very long list here, I’ve done everything I can to work with you clowns, and you just screw up worse and worse and worse.  I want the things your developers have done, very badly.  It seems the only way I can get them is to begin kicking the product folks in public forums. I am grateful to everything Microsoft's developers have ever done for me, and I am now completely furious about everything that Microsoft's productization teams have done to me.  You’re screwing up your own business model, and you’re screwing up the business models of a lot of people that have partnered with you. 

 

Published Thursday, January 17, 2008 6:54 PM by MarkMMullin
Filed Under:

Comments

# Interesting Finds: January 19, 2008 @ Saturday, January 19, 2008 8:58 AM

Jason Haley