Category Archives: TechEd 2006

My Tech.Ed review scores…

One of the things that technical presenters always dread is reading their review scores and seeing that they got a bad review. I figured that my review scores would make good blog fodder and posting them would allow me to reflect on what I did well, and more importantly what I can improve on next time I present the same material.


First up is my PowerShell session (MGT304). In this session I presented on the next generation command shell from Microsoft which will be shipped to manage Exchange twelve.

I was actually presenting someone elses deck in this one so I wasn’t quite as comfortable as I normally am, and standing up in front of an audience of IT pros is not something that I normally do – and the review scores showed.

Out of the possible score of 9 I scored 6.7 which was the second lowest in the Windows Servier, Management and Operations track. What could I have done better?

Well, I think one of the things that I should have done was scrap the slide deck. Its not that there was anything wrong with it, but based on the comments I don’t think I was presenting it well. If it had been my own deck I would have been a lot more at home.

The second thing that I could have done was anticipate the audience a lot better. Going into the session I thought that I might get a 50/50 mix of developers and IT professionals, it turns out that developers really only represented about 15–25% of the audience and I think I made the mistake of making the session more approachable to that minority group.

Third, I think that I was light on demos. One of the beautiful things about PowerShell the flexibility you get from composing cmdlets to do common (and not-so-common) tasks. I think that I may have failed to demonstrate this aspect and just assumed that the audience “got it”.

Finally, as a developer, one of the things that facinates me about PowerShell is some of the syntax, the problem is that discussion of all this stuff is common in the developer community but not so much in the IT pro community – so I think that I may have been talking a foreign language in some parts.


Ouch! In this session on Concurrent Development with Branching in Team Foundation Server I scored sixth lowest in this session with 6.34. After the session I thought I had done reasonably well, but when I looked at the feedback I noticed a couple of stand out comments:

  1. My presentation skills are not really up to scratch for Tech.Ed (ouch!)
  2. Wanted to see more complete and full bodied demonstrations.
  3. I let the session get taken over by questions (was kind of intentional, but fair call).

I’ve presented at Tech.Ed a couple of times now and have generally had better reviews than this so I was a little bit surprised by the first piece of feedback. Having said that I was presenting more sessions this time, so it is possible that between this and the community project my preparation wasn’t as good as it normally is.

I completely agree about the demonstrations. What I was trying to show was concepts, so if there were some very experienced configuration managers in the audience a lot of this stuff would be second nature and boring to them. I think that the next time I do the session I will definately have a more complex code base and I will actually execute the scenarios that I mentioned rather than just talking about them – my only issue then will be fitting in the alotted time.

In order to get my presentation skills back up to scratch I’m going to take advantage of some training that we sometimes do at Readify to make sure that my preparation and delivery is as it should be. Hopefully I can do better next year if I am invited back.


This was a general TFS session that I presented with Joe Sango. It scored higher than my DEV303 and my MGT304 sessions at 6.61. The comments for this one were kind of all over the place but were mostly negative, I’ll try to summarise here:

  • I’m not a fluid presenter.
  • There was too much coding and filling in of work items on the fly.
  • They didn’t like the simplistic demonstration code and the tag team presentation style (sorry, this was my idea).
  • Too slow and shallow, and too much time on Agile vs. CMMI.

I need to sit down and think on how to present this session some more because we need to try to give an overview of the lifecycle of the project. I’m thinking that rather than trying to weave MSF Agile and CMMI into it Joe and I should have just focused on MSF Agile and done a little bit of role playing as we defined scenarios, tasks and bugs. I think that CMMI is so rarely used that its not even worth discussing.


This was my best session and was on extending Team Foundation Server. I scored 7.64 on this one – there were just five respondants and only two comments, both were positive. Having said that I would have liked to spend about ten minutes bashing out a fully featured sample rather than relying on preprepared code – but it seemed to work.

Maybe the second incredient was that I had Grant Holliday and Chris Burrows come up on stage and show people TFS Bug Snapper and TFS Integrator?

Next Steps

Well, this blog post is the first next step. I’ve acknowledged that I could do better, and even suggested some strategies for how, I’m going to go back over my session materials and see if I can structure a better one, and if I can I’m going to do a Camtasia of the session and publish it out there on the web.

DEV316: Extending Team Foundation Server

David Lemphers said it best when he said that Team Foundation Server is more a platform than a product. In the lead-up to Tech.Ed 2006 in the US I presented a web-cast on how to Extend Team Foundation Server.

I actually had to get up at about 4am in the morning to double check all my configurations before presenting that session live at 6am – to say I was tired would be an understatement. Still – I covered a fair bit of material in that session.

The session that I am presenting will not be the same as the web-cast! I will cover much of the same material but I will demonstrate it by showing off some really useful extensions to Team Foundation Server. The two that I’ll definately be covering include:

Bug Snapper is a tool that Grant Holliday wrote which allows testers to take a screenshot, annotate it and submit it to Team Foundation Server. I know that Grant got quite a bit of traffic to his blog when it was released and I think it is something that people would be interested to see.

TFS Integrator is a continuous integration engine for Team Foundation Server which also takes care of copying build outputs from the drop location back into the source tree where other projects can use them as dependencies for their build. We have actually sent this out for BETA testing already but we are looking to make our first public release soon – hopefully before Tech.Ed.

DEV309: Visual Studio 2005 Team Foundation Server – Applying Version Control, Work Item Tracking and Team Build to Your Software Development Project

On the Thursday during Tech.Ed I will be co-presenting a session with local VSTS MVP Joe Sango. During the session we’ll be having a practical look at how to use Team Foundation Server’s Version Control, Work Item Tracking and Build Automation features in a software development project.

To make it interesting, Joe and I will each choose a different process template (MSF Agile or MSF CMMI) and walk through the typical workflow. Because the session only goes for an hour and fifteen minutes we’ll have to do it fairly quickly, but it will be a good opportunity to see the two processes executed side by side.

I suspect what you will learn is that while the governance processes are quite different, the day to day developer tasks are much the same in that they continue to use the tools to check-in code against work items and create automated builds – how you get to a work item which you can code against is where the action happens.

Tech.Ed: Having trouble accessing the Australian CommNet site with Vista?

Ever since the CommNet site for Tech.Ed Australia went live I’ve had trouble logging in – fetching pages seemed to take an unusually long time to happen. I pinged Michael Kleef and he came back with this helpful suggestion, open up a command prompt and type the following:

netsh in tcp set global autotuninglevel=disable

Apparently the routers between you and the CommNet servers have a bit of trouble with Vista’s automatic tuning features and the command above turns them off. Very useful tip!

MGT304: PowerShell: Next Generation Command Line Scripting

Back when I was in high school I ran an after-hours bulletin board (you know, back when e-mail = FidoNet). Originally I ran the system on top of MS-DOS using the Maximus BBS package – it completely cracks me up that this software is still under active development and hosted up on SourceForge.

Eventually I migrated over to OS/2 which enabled me to run one line full time and an additional line after hours. Operating systems like OS/2 and DESQview were frequently used by BBS sysops because they were better at handling serial comms.

Of course, running a bulletin board involved more than just installing and configuring an operating system. Most bulletin board platforms like Maximus were really a framework upon which the sysop could build custom user interface and it was the process of taking groups of ASCII files and transforming them into the proprietary Maximus screen format (Mecca files). I would keep all of my ASCII files in a sub-directory and then after each change and do a batch conversion – the command that I issued looked something like the following:

for %f in (*.*) do build.bat %f

This would loop through each of the files that matched the filespec (*.*), and for each one call build.bat (a little batch file that I had strung together to do a couple of different things, including taking backups of existing files) – %f would contain the name of the file which is the subject of each loop.

Simple commands and scripts like this made my life a lot easier, and once I graduated from running a bulletin board to performing systems administration functions on computer networks I took my scripting skills with me.

Over the years I’ve used shells like bash, csh and ksh. I’ve also used Perl quite a bit. These shells give us quite bit of functionality and their use is considered a core skill for many UNIX system administrators. As dynamic languages like Python and Ruby get more popular in sysadmin circles, the boundaries of what is possible are being expanded – but where does this leave Windows system administrators?

The good news is that Microsoft has not been sitting idle and has been building a new command line and scripting environment for windows called PowerShell. In this session at Tech.Ed I’ll introduce PowerShell, look at what role it will plays in the future of platform administration on Windows.

What is the equivalent of the script above?

get-childitem | build

Of course, that assumes that I’ve got a function or cmdlet defined called “build”, but lets just pretend I do for now eh? See you in the session!

DEV303: Concurrent Development with Branching in Team Foundation Server

In my previous post I outlined the list of sessions that I would be presenting at Tech.Ed this year. The first cab off the rank is DEV303, Concurrent Development with Branching in Team Foundation Server (CommNet VCal). The talk itself is actually derived from a talk that I gave at Code Camp Oz earlier this year.

The talk didn’t go that well at Code Camp Oz because the machine I was using didn’t really have the grunt to run TFS quickly enough for demonstrations. At Tech.Ed this shouldn’t be a problem because I’ll have access to the Dev’Garten to perform my branching operations on, as well as a couple of other backup options.

Most of the theorhetical content for the talk actually comes from the following blog posts as well as a good number of years being responsible for the build master/configuration management role within development teams.

  1. TFVC: Why use branching?
  2. TFVC: The Terminology of Branching
  3. TFVC: Concurrent Development with Branching
  4. TFVC: Reducing Source File Contention with Branching

In addition to covering the theorhetical content I’ll look at the practical/mechanical aspects of how to do branching and merging in Team Foundation Version Control.

Four Tech.Ed Presentations

This year at Tech.Ed I will be doing four presentations in addition to my duties down in the Dev’Garten. The four sessions in order are:

  1. Concurrent Development with Branching in Team Foundation Server (Wednesday 23rd, 11:45AM).
  2. PowerShell: Next Generation Command Line Scripting (Wednesday 23rd, 2:00PM)
  3. Visual Studio 2005 Team Foundation Server – Applying Version Control, Work Item Tracking and Team Build to Your Server Development Project (Thursday 24th, 11:45AM)
  4. Extending Team Foundation Server (Friday 25th, 11:45PM)

Obviously there is a pretty heavy emphasis on Team Foundation Server in my schedule with the odd one out being the PowerShell session which really sits in the infrastructure space, but because it is based on .NET technology – is really something that I am in to (Monad Mitch?).