As you probably know from my blog that dogfooding (using the product ourselves) is a very important part of our development cycle. We like to use the product early and often and make sure we understand what it’s going to be like for our customers.
This have been a pretty big undertaking for TFS. If you’ve watched my blog over the years, you’ve seen the journey from just a couple of dozen people up to well over 3,000 people. Along the way we’ve made a lot of product improvements from what we’ve learned – particularly with respect to performance and scale.
Mid last year we expanded TFS usage to all of DevDiv on the TFS 2008 SP1 product. It was a pretty painful process and caused some significant disturbances. We did not anticipate the effect of the number of merges of hundreds of thousands of changes every day. That’s a whole ‘nother subject so I’ll just leave it at that. We spent the second half of last year working hard to get TFS performing well under the load of the entire division and by Jan/Feb we were finally successful.
However, the experience made the division a bit skiddish about taking risks with the dogfood server. If it goes down or slows down, it affects over 3,000 people. Around that time, we were also starting to plan for our dogfooding efforts for TFS 2010 and it became clear to me that asking the division (that needs 24×7 reliability) to make multiple upgrades to early pre-release bits just wasn’t going to work. We needed a server that we could update about once a month with the latest TFS build that we could use and learn from without affecting the entire division.
Hence was born the “VSTS Pioneer Server”. We decided to set up a new server for early dogfooding and to restrict the usage to a much smaller number of people (and people who are really motivated to trying the latest and mostly greatest TFS bits). Because we needed to still participate in the broader DevDiv workflow, we need a bidirectional mirroring system to connect the Pioneer server with the Main DevDiv server. The clear choice was to build this on top of the TFS Migration & Synchronization Toolkit.
Early this year we started that effort and along the way made some pretty substantial improvements to the toolkit. In July the effort finally completed and we rolled out the new VSTS Pioneer server. We’ve now got about 500 people using it (most of them from the VSTS teams).
Grant Holliday, former Team System MVP turned Team System team member runs the server, manages feedback, deploys new builds, etc. He’s started a blog series to talk about his experiences. You can read some great stories here:
Over time we’ll increase usage of TFS 2010 and eventually roll it out to the entire division. It’s already been a great experience and helped us identify some hard to find issues. Check out Grant’s blog to learn more.