February 2010 Archives

This morning I was creating a new build definition for the Beta branch of the initial Microsoft release of the Teamprise acquired bits.  Creating a new build definition in Visual Studio 2010 is remarkably easy, but we have a fairly complex workspace template.  Our files are stored in version control in a way optimised to make it easy to get the source and build/debug in locally in Eclipse rather than for the automated Ant based build.  Because we have a lot of plug-ins, Eclipse features etc that make up our build we actually have over 30 separate entries in the workspace section of the build definition.  Is looks something like the following:

The workspace mapping template for the main branch

When developers want to run a full Ant build locally (as opposed to doing a debug session in Eclipse), we have a script file that creates the workspace for them. We actually have two workspace creation scripts, one that is for Windows machines and another shell script that is for Mac/Linux etc.  Both are just wrappers around the Team Foundation Server command line (tf).

When I originally created the main branch build definition, I did this using the often overlooked “Copy Existing Workspace…” button at the bottom of the Workspace section of the build definition and pointed to the local workspace I was using to test the Ant build once we’d moved over to Microsoft.  This was great as it saved me entering all 30-odd working folder mappings again and it is very clever, calculating a common root folder to use as the $(SourceDir) folder.

However, this morning I wanted to create a new build definition from a branch that I’d created ($/TP/Releases/Dev10-beta).  I didn’t have a local mapping that was pointing to the release branch.  I could easily create one using our workspace creation script – however I wondered if there was an easier way.  And it turns out there is, good old copy/paste!

I simply clicked on a row in the workspace section, did Ctrl-A to select all then Ctrl-C to copy all the rows.  I then went into my favorite text editor (in my case Notepad2) and pasted the results.

Editing the source folder mappings in Notepad2

I then did a simple Find/Replace to convert all $/TP/main/ entries to my release branch $/TP/Releases/Dev10-beta.  Did a Ctrl-A to select all and then a Ctrl-V to paste them back into my build definition for the release branch.

The release build definition

A nice simple way of bulk editing a complex working folder mapping template that Just Worked(tm).  Note that the copy/paste trick also works in Visual Studio 2008 as well as the Teamprise 3.3 release (and of course the beta release that I was setting up the new build definition for).

This morning I got an email from HR congratulating me on completing my three month probationary period at Microsoft.  I hadn’t realised I had a probation period (in fact I’m pretty sure I don’t, but as I passed I’m not going to rock the boat).  Getting it did make me think that I was well over-due a blog post on how things are going.

Since September 2003 I’ve been posting to my blog in every month.  I join Microsoft in November 2009 and then all goes quiet…  As you might be able to guess, things are a little busy here.  Not just with joining the company but also because I’ve had an alternative outlet for my thoughts. 

I’ve been writing a book with my friends Mickey Gousett, Brian Keller and Ajoy Krishnamoorthy.  Professional Application Lifecycle Management with Visual Studio 2010 is now complete and on the way to the printers.  With any luck it will be available from all good book stores shortly after the launch of Visual Studio 2010, but you can pre-order your copy now if you want to guarantee a copy of the first edition :-)


But enough pimping of my book – what else have I been up to for the past three months?

Joining Microsoft has been fun.  Perhaps the most surprising aspect for me was how in many ways it doesn’t feel that different (which is a credit to the people who brought us into the company).  I’ll always look back on the Teamprise days with fondness and I miss the people back in the office in Champaign, but all the developers came over to Microsoft from Teamprise at the same time so I’ve plenty of company. Unlike the rest of the Teamprise developers, I still work in the same place (my house in rural Northern Ireland).  I still talk to the same people at Microsoft - we had a very close relationship for years before a decision to make the acquisition was made.  Now at Microsoft, we’ve grown the team with some excellent people (some of the best developers and testers I have ever worked with in my career).  After joining in November and getting the announcement out the way, the rest of the time has just been a blur of late nights coding away as we strive to get the initial Microsoft release ready.  As well as getting TFS 2010 feature support we needed we’ve also had to completely re-brand the product (more on that in another post) and get our code through the various processes internally in Microsoft that have been developed over the years.  While Microsoft are experts at shipping software, they haven’t done that many plug-ins for Eclipse before so we’ve had to break new ground.  So far everyone has been very helpful and being the Eclipse project out of the Visual Studio team sure helps you get your name remembered :-)

The current plan is to ship a limited preview release in a few weeks to let people give us feedback on what we have been working on.  This will also let us have a practise run through the ship process all the way to the end so that we can figure out what we need to fix on that side ready for the RTM.

Between now and the beta release I’m going to try and post about some of the decisions that we have had to make about what we could and couldn’t get into this release along with the interesting challenges re-branding gave us.  Closer to the beta release I’ll show some of the shiny new features along with some of the improvements under the hood that we’d been working on for a while that had always been targeted for the “4.0” version of Teamprise and so never saw the light of day in the 3.X branch that is the basis of what people know and love today.

If there is anything else you want to hear about let me know.  The book is done now so looking forward to getting back to blogging.  I’ve plenty of material from the past 3 months to keep me busy for a while.

We are Hiring!

Since joining Microsoft it has been fantastic to see how committed everyone is to the technology that was acquired from Teamprise.  When Microsoft purchased the Teamprise technology, they also hired all the developers (including me) and are investing heavily not just in the 2010 release but more importantly the long-term future of heterogeneous development using Team Foundation Server.  Since joining Microsoft we’ve grown the team with some fantastic developers (both Software Development Engineers and Software Development Engineers in Test) who we poached from others parts of the company.

We are now after one more person to join our little family. We need someone to help us with our User Education work.  If you know of a technical writer that might be interested in working with us then please send them over to this job posting at Microsoft Careers (https://careers.microsoft.com/JobDetails.aspx?ss=&pg=0&so=&rw=2&jid=10007&jlang=EN). This role is based in Raleigh, North Carolina, USA

I promise you, it is a very exciting time to be joining our team.  I am looking forward to showing you a bit more of what we have been working on soon!


Creative Commons License
This blog is licensed under a Creative Commons License.