I’m currently at PDC (follow my tweets for on the spot thoughts and impressions) and today I went to a pre-conference workshop on VSTS.  I wasn’t sure what to expect and was kind of hoping to be reasonably hands on and have a chance to chat a bit closer to a few more of the team.

It turns out that it was much more like an all day VSTS 2010 breakout session and it was presented by Chris Tullier and Todd Girvin from Improving Enterprises instead of the VSTS team.  Chris and Todd did a good job (including when the demo gods tied to smite them a few times) and I know the effort that goes into prepping for a whole day of this stuff, so a big well done to them.

The theme of the workshop was building quality applications with VSTS with the basic flow of the day working from requirements, through to code and build automation and finally through to testing.  Much of the content was similar to, though more in depth than what I presented at the RDN Dev Day just recently.  There wasn’t anything presented that I didn’t know but that wasn’t the point for me.  I was there to either confirm my understanding (and make sure I wasn’t leading people astray with what I thought was right) and to fill in any gaps I may have had.

The main gap that got filled in for me was around the new Architecture features.  Diagrams are one of those areas I’ve glossed over in my VS2010 learning as I tend to avoid them.  In VS2008 they were complete rubbish and I avoid Visio since I find using it akin to self flagellation.  That said, seeing Chris and Todd run through things at greater depth than I have personally gone to showed me a few things I wasn’t aware of and highlighted the value of them in the overall requirements and initial design process.  Chris and Todd also went to pains to make it clear that they thought the usage scenario for the diagrams was around the high level design only and that detailed design work really falls into the usual class designer and code itself. The UML class diagram in the architecture projects has a much different purpose than the class designer in code projects with the former being  a modelling design tool and the latter being a development and implementation design tool.  Questions about code generation from the floor were met with answers along the lines of "Microsoft is moving away from model driven code generation” which I personally applaud.  The conceptual model and how it’s implemented in code are always going to be different so trying to unify them via code generation and reverse engineering will only lead to bad code, a messy model polluted by implementation details or in all likelihood both.

The walk through of the use case UML diagram also made me take stock and reassess wether I should be using them in the agile requirements gathering process. I think I have tended to ignore them because of the tooling pain but now that VS provides these diagrams out of the box and because they form a nice visual way of grouping clumps of user stories together and can provide a clean visual way of understanding the overall system interactions I’ll have to reconsider.  I’m pretty sure that I’ve been skipping an important part of my requirements gathering and high level design process until now and that needs to change.  Mea culpa.

Apart from that everything else was pretty much on par with my understanding – a few little bits and pieces here and there and some fleshing out of my understanding of some of the more esoteric things, but nothing major.  It was still worthwhile being there and I got to meet and chat with some people who have quite different experiences to mine as well as one of the guys on the TFS team about the future of source control.

Tomorrow PDC kicks off in earnest.  Let’s see what the announcements out of tomorrow are.  Hopefully something big and not just the launch of Azure and betas for the upcoming Office, xRM and MOSS products.