There comes a time in every software project where you realize that everything is staring to gel and the product suddenly feels very very real.  I just had that experience with Visual Studio Team System, and it's really exciting.

During our last test pass, some of our testers were using the system from end-to-end, simulating the way a team would design, implement, and build software.  I had my testers working on a .NET smart client application that could monitor the state of our Team System servers during the test pass.  Now, we didn't use all the features of Team System, but we did put source control and work item tracking through its paces.  Here's a sample of how we used Team System:

1.  I created a new C# Windows Application solution and added it to source control in the "new project" wizard.  It's a simple app that uses some of the Team System web services to query data such as total server uptime, the number of outstanding pending changes, the total number of changesets for our project, etc.

2.  I filed a bunch of bugs and work items against the project and assigned them to various testers on my team.

3.  As testers fixed the bugs and implemented the features noted in the work items, they did peer code reviews and noted the code reviewer in the checkin notes "Code Reviewer" field.  Then they associated the bug or workitem they were resolving with the changeset and checked in their changes.  Anyone who registered for them received e-mail notifications on each checkin.

4.  From time to time, I would query the list of resolved workitems and bugs and then navigate from the bug details to the changeset details and use the diff tool to review the actual code that fixed the bug. 

5.  One day, I made a change, but I had to leave the office before I could get a code review.  So, I shelved my changeset and sent mail to Chris and asked him to review it for me.  He unshelved my changeset to his workspace, made a few tweaks, and then checked it in for me.

As I said earlier, I didn't get to try out all the features of Team System during this test pass.  As we continue testing, we'll keep adding in more and more components to our end-to-end test scenarios.  Some of the things I'm really looking forward to trying include viewing reports about our outstanding bugs & work items, code churn, etc., using the builder component to automatically generate nightly builds of our project, using the test tools to do static code analysis to help us find design issues and interesting bugs, using the team sharepoint site to manage design specs etc.  The fun just keeps coming!

Hopefully you'll see what I mean in the upcoming Beta release.  But don't take my word on it... I really hope you try all these things for yourself and give us good hard feedback on what you like, what you don't like, and how you think it could be improved.

It feels great to be a part of such a great product!