(See this summary on the VSTS Pioneer dogfood server and all the other posts.)
One of the major goals of the Pioneer Team Foundation Server is to upgrade it to early builds so that we can get some “bake time” with them and feel confident with what we’re releasing to customers. Since we spun up the server, we’ve done two successful upgrades and we’re already planning the next one:
The process of testing the upgrades on a copy of our database is just as important as running the upgrade itself. With our interesting dogfood topology of a dedicated SQL server, NLB/multiple application tiers, a dedicated MOSS server, virtual machines and use of virtual DNS names, we find some interesting bugs that we’re able to fix before things are locked down for shipping.
There’s no whitepaper on “How to Dogfood” at Microsoft, so our process for deploying perpetual upgrades is something that just kind of happened. Here’s basically what we do:
Depending on where we are in the cycle and the amount of churn in the code base, we might add another iteration or skip one. What’s most interesting about this process, is that it’s driven by the end date. Based on the product schedule, we know when our windows of opportunity are for upgrading and we work back from then.
Tips for upgrading
Here are some tips to consider when planning your own upgrades:
Upgrade logistics
I’ve been involved with at least 5 major upgrades this year and here are some things I’ve learnt from running them:
Planning your own upgrade
Brian Keller has a great post on how to Get ready to “go live” with Team Foundation Server 2010 beta 2! He includes two useful documents:
I’m also going to share with you a copy of the generic deployment plan template that I’ve been using for the Pioneer upgrades.
Deployment Plan Template(.XLSX)
Planning, testing and upgrading to these new releases has been a fun experience and it’s a bonus when everything goes smoothly. It’s great to see our experiences influence the product and make it the best release yet.