I wasn't able to make it to Redmond for the MVP Summit this year. The bad news is that I didn't get an opportunity to see firsthand what Microsoft has up its sleeve for the next generation of Visual Studio and the associated technologies in its development stack. The good news, of course, is the same as the bad news. As anyone who is both an MVP and an author will tell you, it can be a tightrope walk to avoid violating NDAs. I have purposely not looked into what was discussed at the MVP Summit yet, so that I can safely write a few more columns before reacquiring that figurative monkey on my back.
I have, however, kept up with the discussions in various newsgroups of which I am a member. About a week before the MVP Summit, a novel idea was proposed regarding how Visual Studio vNext should be priced and sold. I wish I could claim that the idea was mine, but it wasn't. I won't disclose the source of the idea here, just in case the good folks at Microsoft came up with it as well and mentioned it at the MVP Summit. I liked the idea so much, though, that I just had to mention it here.
As many of us have had to deal with either directly or through employers or clients, Visual Studio licensing can be a quagmire. The current 2010 suite has several levels such as Express, Test, Professional, Premium, and Ultimate. Microsoft has done a better job in recent years of presenting comparison charts showing features are included with each version. However, it can be quite frustrating to see that a particular feature that you need isn't included in the version you're considering (e.g., the one within your budget), and the only option is to upgrade to the next version. You then have to decide if those one or two features are worth the thousands of dollars extra that you'll pay. Yes, you'll get all kinds of other features—but you may or may not ever use them.
Take, for example, the Windows Azure Platform. Azure is a powerful cloud computing tool that is unfolding before our eyes. Yet, you don't get Azure with Visual Studio Professional. Rather, you must upgrade to Visual Studio Premium, which is over $4,000 more expensive. Wow! Of course, Premium includes a lot of other features like Microsoft Expression Studio, Visio Premium, and so on, but why must we pay for all these as a huge bundle?
A better approach is to allow Visual Studio features to be purchased à la carte. There are a couple of different approaches Microsoft could take to enable this. They could keep the existing product versions and just allow features to be purchased and added on in a one-off manner. This would be akin to purchasing a car and adding after-market features. You would pay less for feature bundles, but individual features would still be available to those who wanted to pick and choose.
A second way to implement Visual Studio à la Carte would be to start users off with the free Visual Studio Express and let them purchase each feature they want as needed. This would be similar to how Apple's App Store allows in-app purchases. The upside would be that you wouldn't pay for features you didn't want. The downside is that it might get tedious to have to confirm the purchase of each feature as you needed it. There could certainly be a fatigue factor there.
There are some other notable factors that Microsoft would need to consider before moving to Visual Studio à la Carte. I would imagine that you'd use your Windows Marketplace credentials to enable the purchasing/downloading/installing mechanism. What about corporate accounts, though? These form the lion's share of Microsoft's Visual Studio sales. I would suggest tokens or activation codes that could be issued to employees in order to load a pre-purchased, pre-configured environment. This would allow corporations to tailor their Visual Studio environments to specific needs while still allowing special-case scenarios where individual features need to be added on to a particular employee's development machine.
Of course, the previous paragraph is the likely reason that Microsoft will never implement Visual Studio à la Carte. It could cost them billions in revenue if corporations only purchased what they actually needed, instead of overbuying "just in case." Technical support would also likely be more difficult since there could conceivably be an infinite number of possible combinations of features installed on a particular development machine. And imagine the number of automated testing scenarios that would need to be created!
Add in the fact that some features may be dependent on others, and it quickly becomes clear that creating the optimal purchasing experience for software developers would be a nightmare for Microsoft to implement and maintain; and all for less money.
I'm sure that there is some middle ground to be had here, and it is my hope that the great minds at Microsoft will find it. There are a lot of little guys out there that would appreciate it if Microsoft put some thought into potential solutions to the issue of feature lockout. I do believe that it would lead to an explosion of innovation in some of the key initiatives that Microsoft is trying to dominate (e.g., the cloud).
Jonathan Goodyear ([email protected]) is president of ASPSOFT, an Internet consulting firm in Orlando. He is Microsoft regional director for Florida, an ASP.NET MVP, a Microsoft Certified Solution Developer, and a contributing editor for DevProConnections.