Andre's Blog

Personal blog of Andre Perusse

Team Foundation Server - First Thoughts

The latest project I'm working on is using Visual Studio 2005, and the license we have allows us to use Team Foundation Server (TFS) Workgroup Edition. The Workgroup Edition is limited to 5 users, but is otherwise fully functional. Taking some advice from the Microsoft Regional Director for my area, I decided to move our small team from Visual SourceSafe (VSS) to TFS. And, as you know if you've been reading my blog at all, I'm a sucker for new technology especially as it relates to my day-to-day job.

So, I get right to work installing this puppy. Instructions? Who reads instructions, right? I knew it needed SQL Server and Windows SharePoint Services (WSS) so off I went. Okay, I did read just a little bit of the instructions and knew that TFS wouldn't work with SQL Server 2005 Development Edition, so I dodged that bullet. I wasn't so lucky with the next bullet, however. I installed WSS and when the web-based admin screen came up, I proceeded to complete the WSS install. Oops. When I started to install TFS immediately afterwards, it chastised me for not reading the installation instructions. With TFS, it doesn't want you to complete the WSS web-based admin portion since TFS completes the WSS setup. The only way to fix it? Unistall and reinstall WSS.

Honestly, this wasn't a big deal. Cost me maybe 10 minutes and that's only because the crappy virtual machine we have for a dev environment is slow as a dog. After I corrected that boo-boo, TFS installed fine. Well, mostly. See, TFS needs two separate service accounts to run - one for the TFS system itself, and one for the Reporting Services piece. It says it can use a local or a domain account, but using a local account pops up a warning that "domain users won't be able to use it". That's no good - all our developers are using domain accounts. Luckily, I had our help desk folks set me up a domain service account for another purpose a few weeks ago so I was able to use that for the TFS service account. Upon attempting to use if for the reporting account, though, TFS squawked at me that I couldn't use the same account for both services. Seeing as how getting the first domain account set up had taken about 6 weeks, I decided to use a local account for this one and damn the "domain users can't use it" message. Who needs reports anyway?

Once TFS was completely installed, my next task was to connect to it. I quickly installed Team Explorer on my machine, not really knowing what it was exactly, just knowing that it was the client piece. After it installed, I went looking for it in my Start menu. Nothing there. Hmmm.....  Later, I discovered that if you install Team Explorer on a machine without Visual Studio 2005, it actually installs a small version of VS 2005 because Team Explorer can't work without it! Since I already had VS 2005 installed, I didn't see anything new in my Start menu.

So, I fired up VS 2005 and started scanning menu items. Sure enough, under the Tools menu was "Connect to Team Foundation Server...". So I did. And it worked!! Honestly, I was floored because I fully expected some permissions problems. Of course the only reason it worked was because I installed it on the server under my domain account. So, I create a new Team Project and then I marvel at all the cool stuff TFS has set up. Stuff like requirements logs, default work items, and a bunch of other goodies I can't remember. The SharePoint portal site it sets up for the project is also cool, with a bunch of graphs and reports that project manager types are sure to eat up.

Moving my project's source control from VSS to TFS was also mostly painless, though it cost me about 20 minutes of aggravation. I wasn't interested in migrating the VSS database to TFS (since we just started and there wasn't much of a version history anyway), I just wanted to drop the VSS bindings and then re-bind to TFS. Remember, I don't like reading instructions, mostly because they're not usually in the format of "this is how you do exactly what you want to do right now" and instead you have to read a dozen sections piecing together the bits that are relevant to your immediate problem. After missing one project in my solution when unbinding from VSS (and having VS 2005 whine when I tried to change source-control plug-ins) and fighting with that for a little while, I eventually got VS 2005 changed over to TFS source control mode. I checked in the entire solution without incident.

The only other problem I had was setting up other developers to use the system. Silly me, when the dialog asks you to select users OR groups, I selected my team's group instead of individual users. That got me nowhere. Other developers got the "you are not a licensed user" message when trying to connect. With the Workgroup edition (and maybe the full edition, I'm not sure), you have to specify individual accounts, not entire security groups. Once I figured that out (many thanks to the great oracle known as the Internet and MSDN blogs), we were off to the races!

All in all, it was a helluva lot of work just to get a better source control system set up. I'm not sure if using something like Subversion would have been easier, but TFS brings so much more to the table. At any rate, transactional check-ins (no more corrupted VSS databases!) and the whole "shelving" concept are worth the effort. I'm sure we'll dive into all the other cool features of TFS as the project progresses.

Comments (2) -

  • Darth Mac

    9/27/2006 5:53:03 PM |

    "Moving my project's source control from VSS to TFS was also mostly painless, though it cost me about 20 minutes of aggravation."

    "mostly painless" = 20 minutes? What does "agonizingly horrific" equal???

    Anything that takes 20 minutes is painful... ;)

  • Abominax

    9/29/2006 11:23:17 AM |

    I can think of a few things that take about 20 minutes which are quite enjoyable.