Everything you want to know about Visual Studio ALM and Farming
Brian Harry is a Microsoft Technical Fellow working as the Product Unit Manager for Team Foundation Server. Learn more about Brian.
More videos »
We're getting ready to release a ton of new TFS Power Toy news in the next few days and as I've been preparing for it, I've found myself reflecting on what Power Toys are about. I don't pretend to be pontificating any official Microsoft policy here but I wanted to share a few thoughts.
Some Background (skip if you don't care)
We (the TFS team) came up with the idea of doing "Power Toys" in the last 6 months of shipping TFS. Historically, the end of the product cycle in DevDiv is a grind. It's months of testing, gathering customer feedback, triaging and fixing bugs. By the time we get past out final Beta, the product has all of the features that it's going to and we're just refining the quality, tuning the performance, etc. We may do a DCR or two if there is a huge amount of customer demand - the Work Item Tracking "friendly name" and improved Sharepoint setup experience are (I think) the only two we did at the end.
During this time, it's easy to see all of the things we wish we could do. Holes in the product we wish we could fill, compelling new features we could deliver. With TFS being a V1 product, this desire is especially strong. But, it's the wrong time. It's time to ship what we've already built.
We found ourselves asking - If not now when? I posted a blog entry (way back then :)) asking what you want. Did you want a big release with lots of new value? A small release to fine tune what we have? Etc. Most of the feedback I got tended to be on the shorter more tactical side. On the other hand, there are some major advances we want to make too. And there's the issue of coordinating our schedule with the rest of DevDiv. It makes for a very complicated problem to solve.
As we were mulling over the great stuff we thought we could do and trying to figure out when we could do it, we asked the unthinkable - what if we just build it and put it on the web and let people download it? We're in a bit of a different situation than most products out there. We (TFS) are sold primarily as a subscription - not as a one time purchase with separate one time upgrade decisions. So, we thought, why not? We could build features and make them available immediately. You can't use them if you don't already have a TFS license and since you're on subscription, we're not taking away from our "upgrade" revenue.
That covers the revenue side of it but that's only a small part. There are a lot of other issues, including: release process (testing, Beta testing, etc), marketing, support, localization, documentation, setup & servicing, etc. If we are going to release value off-cycle and frequently, we have to find a way to substantially reduce the "cost" of doing a release. This drives a lot of our policies around Power Toys.
What is a TFS Power Toy?
We use the term "Power Toy" loosely. It is a "brand" we use for a series of tools/add-ons that are released off-cycle from the "normal" DevDiv release process. The primary characteristics include:
TFS Power Toys are not "Toys". Despite the self-deprecating name, we take Power Toys very seriously. We use them internally in our production environment and we expect that customers will too. As a result we work hard to ensure that any feature is valuable, its user experience is good and quality is high.
Over the past several months, I've started to hear customers express concern about deploying TFS Power Toys into their production environments. I'd like to try to address these concerns and help people feel better about it. This blog post is one step towards that goal. Another step I'm considering is changing the name. I fear the name "Power Toys" is misleading. As I said, these are not toys. They are useful and solid tools. I'm VERY interested in hearing opinions on the idea of renaming them.
The Role of Servicing
Servicing is the process (Hot Fixes - aka QFEs and GDRs, Service Packs, etc) by which we update officially shipped bits. As I said above, Power Toys generally do not change shipped bits. However, there is some interplay here. As you've seen from some of my posts on SP1, we are now starting to add small features in our service packs. My plan is to add carefully chosen features to service packs that can later be leveraged by Power Toys to deliver value. This allows us to constrain the volume of work that has to fit in the tightly managed servicing schedule but still deliver substantial value as early and often as possible.
Time will tell what happens to the TFS Power Toys. For now it's a bit of an experiement. If you, our customers, find them valuable and they help you get your job done, we'll continue to do them. Over time, I expect many (but probably not all) Power Toy features to get integrated into a future "full release" of the product. I hope the feedback we get from releasing them early allows us to produce an even better feature by the time we incorporate it into an official release.
I appologize for the length but I had a lot to say (and a lot more that I could have, but didn't). Please let me know what you think. Does this make sense? Are Power Toys useful to you? Is there something we should do differently?