I’ve made a lap around the web to bring the best in TFS, ALM, and programming links.
Document Well 2010 Plus from The Visual Studio Blog – Lots of details about the great Document Well 2010 Plus extension that is part of the Visual Studio 2010 Pro Power Tools. Every new release changes the behavior of the document well in Visual Studio and people are pretty religious about their preferred behaviors and configuration of the IDE. This extension gives you more control over the behavior of tabs in Visual Studio than you ever thought you wanted, so you can make the document well do whatever you prefer.
Tips and Tricks: Quickly Closing Documents from The Visual Studio Blog – Speaking of the behavior of tabs in Visual Studio, this post details a few tips on how to close documents in the document well. One handy shortcut is that CTRL + F4 will close the current document. I’m also a big fan of the Close All But This selection when you right-click a tab.
Visual Studio Tips and Tricks from Zain Naboulsi – This blog from Microsoft Evangelist Zain Naboulsi posts a new Visual Studio trip every day. Subscribed. Today he talks about hacking the Task List. Follow him on Twitter if that’s your thing.
Visual Studio 2010 Productivity Power Tool Extensions by ScottGu – I know this post is redundant stuff from some of the other links I’ve shared, but by cosmic law I’m required to link to anything ScottGu posts. So this link is posted to keep balance in the force. Scott runs down the list of features in both the Pro Power Tools and in the Visualization and Modeling Feature Pack.
One bug, two developers: Collaborative debugging is now a reality in Visual Studio 2010 by Habib Heydarian – The always interesting Habib Heydarian details how the new Import/Export and DataTips Import/Export features in Visual Studio 2010 help two developers collaborate when debugging the same issue. This one is a must-read.
Have I missed something great I should have posted? Email me and let me know.
The word for today is IntelliTrace. Known in the Visual Studio 2010 betas as the Historical Debugger, IntelliTrace is part of Visual Studio 2010 Ultimate. It’s basically Tivo for your debugger.
IntelliTrace iTrace Files from Ian Huff – This excellent post details what’s inside an IntelliTrace iTrace file. This post is a great overview of how IntelliTrace works and talks about how to collect IntelliTrace info without running Visual Studio. Highly recommended.
IntelliTrace – What We Collect from Ian Huff – [IntelliTrace data has not been collected] Great post explaining what is, and is not collected in IntelliTrace. The reasoning that’s used to justify why some data is collected and other is not is sound, but we should really have a UI option that will collection everything.
How Does VS2010 Historical Debugging Work? from John Robbins – Excellent in-depth explanation of how IntelliTrace works from John Robbins. The details are from Beta 1 of the feature, but it’s still worth reading. John Robbins’ blog is one of the best and you should be subscribed.
An in-depth look at the Historical Debugger in Visual Studio: part 1 – part 2 – part 3 – part 4 – part 5 from Habib Heydarian – Everything you didn’t know you wanted to know about IntelliTrace.
I’ve got big dreams for this place so let’s get to it. I’ll try to get 3-5 of posts up a week so check back so you don’t miss anything. It’s a big week for Visual Studio and Team Foundation Server, as we get lots of new toys to play with.
Announcing the first Visual Studio Pro Power Tools from Brian Harry – Brian says it best when he says these free tools “are focused on core developer productivity”. CTRL + Click to go to definition? Awesome. The coolest part is that they were all built with the same extensibility mechanisms that are available to everyone. I gotta spend more time looking into VSX.
A Scrum Process Template for TFS from Brian Harry – Microsoft has given us a Scrum Process Template for TFS. It’s about time. Looking forward to seeing how this stacks up with the excellent Scrum for Team System template from Conchango EMC. I’ll dive into this one in the next few days and give you a full breakdown.
Visual Studio 2010 Visualization and Modeling Feature Pack Released from Innovation Showcase – This feature pack, currently available to MSDN subscribers, adds a number of features that didn’t quite make the RTM of the architect tools. The big new adds include C/C++ support in layer diagrams and architectural validation, dependency graphs for web applications, dependency graphs for C/C++ projects, code generation from UML Class diagrams, and generation of UML Class diagrams from code. You can also now import class, sequence, and use case elements from XMI 2.1 files (I believe that means you can export from Enterprise Architect, Rational, and other modeling tools into the VS modeling tools – correct me if I’m wrong). Now if we could just get code generation from sequence diagrams we’d be set.
Five Years Since Free Lunches: Making Use of Multi-core Parallelism from Herb Sutter – It’s been five years since Herb Sutter told us in DDJ why “The Free Lunch is Over” and in this on-demand webinar Herb Sutter and James Reinders talk about the keys to making effective use of multi-core parallelism. While the lunch may not be free, the webinar is (as long as you sign up). If you happen to work for Apple on the iTunes for Windows team please, please, please watch this and think about the pain you’ve caused.
This week marked the release of Visual Studio 2010 Beta 2, a new version of the Microsoft development tools stack that is full of new features and capabilities for both individual developers and teams. Included in this release are new features that you'll be hearing a lot about, such as IntelliTrace (info here and here), hierarchical work management, branch visualization, test tools, virtual lab management, and gated checkin. Visual Studio 2010, whether Microsoft realizes it or not, gives them the most comprehensive Application Lifecycle Management (ALM) solution on the market today. There's a lot of good to talk about, and I'll definitely talk a lot about all of those good things over the next few months. This post, however, isn't to talk about all those awesome things. This post won't convey happiness or excitement. It actually runs the risk of being a full-on rant, so if you aren't prepared for one of those don't waste your time. Because you see, Microsoft, seemingly malcontent with delivering tools that put them as the feature leader in the ALM tools space, they decided to make a set of marketing a sales decisions that aren't simply unfortunate and misunderstood. They are terrible.
RIP Team System, We Hardly Knew Ye
The first massive fail is the unnecessary death of Team System. An identity Microsoft spent the last 5 years evangelizing has disappeared at exactly the same moment the tools deliver on the promise of the Team System name. The same tools are still around, sure, but instead of highlighting their now truly impressive, end-to-end integrated solution, Microsoft has chosen to obfuscate it behind the Visual Studio brand, a name that will always be synonymous with solving technical problems with technical solutions.
I get it, I really do. Team System wasn't a product. You couldn't go and buy "Team System". You bought individual tools that integrated with other tools. Some people saw this as a problem, and a few years ago they would have been right. I can remember the 2006 Team System roadshow events that evangelized what Team System was all about. Very few people really "got it" as they really didn't understand the concept of a single silo, single-solution toolset. A large number of the early adopters were teams simply fed up with the limitations and quirks of Visual SourceSafe and in desperate need of a better version control system. But Team System wasn't simply a version control solution, it was mean to be an ALM solution.
So Microsoft's sales narrative, reduced as simply as possible, was that you bought Visual Studio to solve technical problems and Team System to solve collaboration problems. You need a new snazzy way to create an application, you've got Visual Studio. You need a snazzy way to organize and manage the mountain of data your team creates and processes each and every day (whether it be work, related artifacts, or source), you've got Team System. That simplicity is gone with the unfortunate and unnecessary premature death of name Team System.
"The Visual Studio product line is confusing."
To justify its many changes to the SKU lineup, Microsoft leads with the reasoning that the existing product line was confusing. It's a good reason to change. There were six different Visual Studio 2008 licenses once available for purchase. Really, only five were notable since the sixth, Visual Studio Team Suite, was a combination of all the others. So you're left with VS Pro, Architect, Developer, Test, and Database editions. Despite so many versions, at least their names told you what type of user was being targeted.
The bigger problem with all these different versions was that, despite the fact each premium version had the same cost, the value received was completely out of balance. For example, I've never worked with a team that used the tools in the Architect edition. Ever. Many purchased architect licenses, but nobody found the tools compelling enough to actually use. The Database edition tools were initially immature and eventually, even though they truly provided great features and value, had such a learning curve that few teams made the leap. The Test edition tools were a little half-assed and paled in comparison with test tool offerings from other vendors. That leaves the Development edition tools to complain about. Development edition's most commonly used features were effectively met from open source offerings like NUnit, FXCop, and NCover. With Visual Studio 2010, each of these complaints has been addressed sufficiently.
The real value of the features available in the premium versions of Visual Studio 2008 were the integration points in the rest of Team System. The ability to create an automated build (in just a few minutes) that could run tests, run code analysis, provide code coverage information, detail what code and what work was included in the build, and report those results in an accessible way is gold. Yes, I know that there are tools that provide these same capabilities for free, but the time cost you'll invest making that dream a reality will likely far outweigh the cost of the Microsoft ALM tools.
But all wasn't bad with the previous SKU lineup. From a marketing perspective, Microsoft had a tool that was supposed to meet the needs of the different roles on your team. A sales person could ask a team lead, how many testers do you have? How many architects do you have? And that sales person, most likely not someone with a software development background, could easy craft an invoice to fit the team's needs.
Still, simplicity was needed and a big step forward was made to collapse the Developer and Database tools. That still left the Architect tools as the ugly stepchild of the Visual Studio family, but nobody used it anyway. So fast forward to Visual Studio 2010.
Let's Double-Down on Bad Decisions
One of the most egregious errors Microsoft has made in the last decade was the SKU lineup in Windows Vista. It was mocked, derided, and got the Vista release off on the wrong foot. There has long been this idea that Windows users were either at home or work, hence a Home edition and Business edition. There is no problem so far. If you were a Home user, you had a choice between Home Basic or one of two premium versions: Home Premium and Ultimate. The version names offer zero insight into what the actual differences are, so you are forced to open some website that has a gigantic list of inane, non-descript "features". One such "feature" is "Have fun on your PC…" which apparently isn't allowed on Vista Home Basic. I think that "feature" is code for "Games", but I could be wrong. I'm betting that a Microsoft sales person or the sales guy at Fry's can't clearly explain what the differences are either.
So the idea was a failure both in its execution and in it's naming. Windows 7 simplifies things (at least for those of us not in an "emerging market") and we now get three versions: Home Premium, Professional, and Ultimate (no idea why they couldn't simply call Home Premium just plain old Home, but whatever). So if you are running this thing at home, you can take the baseline version or the everything version and if you are at work, you can take the baseline version or the everything version. That makes sense to me.
With Visual Studio 2010, the marketing geniuses have decided to steal a page from the Windows playbook and use those same "Premium" and "Ultimate" labels. These labels are useless for a variety of reasons, and I can't imagine why it was ever thought to be a good idea considering Windows and Visual Studio are marketed at a completely different type of consumer. So the big news for those of you buying Visual Studio is that you have four versions to choose from: Professional, Premium, Ultimate, and Test Essentials. Want to know the difference between Professional and Premium? Be prepared to dive into some seriously specific details, which most Microsoft sales people understandably won't be able to adequately describe. What about Premium and Ultimate? Same story, as Ultimate isn't simply a collection of all the other versions. It has features that the others don't.
"I want to easily identify the Visual Studio product that is right for me based on my needs."
"I want to easily identify the Visual Studio product that is right for me based on my needs" is the second justification for the SKU changes. That's an admirable goal, but one that Microsoft has not only failed to meet, but has instead made things even more difficult. It takes some real talent to actually reduce the number SKUs from six to four and to simultaneously increase the number of options that teams have to consider. An incredible feat, I know, but Microsoft has done it.
So most teams, as I've mentioned, are composed of things like architects, developers, and testers. Visual Studio targets these three roles with features created to meet each role's specific needs. With Visual Studio 2008, there was a single version of Visual Studio that had premium tools for architects. With Visual Studio 2010, there's also a single version of Visual Studio with premium architect tools (Ultimate). An even trade. Developers were targeted with two versions (VS Pro and Developer), and now there are three (Pro, Premium, and Ultimate). Wait, I thought this was supposed to be simpler. It gets worse. If you are a tester, what was once one option (Test Edition) is now three (Test Essentials, VS Premium, and VS Ultimate). So for these three roles, there were four options and now there are seven, each named in such a way as to only engender confusion about what's actually being purchased.
Another reason the labels are useless is because it seemingly removes Microsoft from the ALM tools market, despite the fact the actual tools actually provide kickass ALM-centric features. You have a team of 10 developers and 6 testers? After three days of back and forth trying to demarcate the differences, you are left with an invoice that says you need three VS Pros, two VS Premiums, 4 VS Test Essentials, and 7 VS Ultimates. Clear as mud.
A Simple Solution
Nothing's going to change, as its far too late in the game, but I still want to offer Microsoft some free consulting and provide a simple solution to their problems. You want to sell the heck out of Visual Studio? Sell just four versions: Visual Studio Professional, Visual Studio Developer, Visual Studio Test, and Visual Studio Test Premium.
The gist is that you should only offer a single "premium" version of whatever it is you are selling. Make it simple. For developers you'd have VS Professional and VS Developer. VS Developer would include all of those architect and database tools, as well IntelliTrace, code analysis, profiling, and so on. Don't need those? Stick with the blood and guts Professional version. For testers, offer a Test version targeted at functional testers (those people that write tests, run tests, and report test results) and a Test Premium. Test would give you Microsoft Test and Lab Manager. Test Premium would give you MTLM plus all of the Visual Studio automated goodness.
The sad part is that within the Visual Studio Team System community, the name changes were a big secret. The "insider" Team System community was never genuinely consulted on what they thought about the name changes. That they were unwilling to actually get feedback from the boys and girls who are neck deep in the Team System tools each and every day is usually a surefire sign that the changes suck. Last thing - don't blame the teams that build these great tools for the unfortunate decisions that led to the changes we'll all grow to tolerate, because from what I understand they are as subject to them as you and I are.
I've dumped enough. I'm done. I'll try to hold my tongue from now on. Let's move past this and get to the good stuff, and there's plenty that's good. I promise that this post won't be the tenor of this blog. I love Visual Studio, Team Foundation Server, and all of the tools that make it sing. So let's get to talking about that.