Ten Reasons to Love Visual Studio 2012

I’ve been working with Visual Studio 2012 since the RC, and I’ve come to the realization that I’m sold. With any new piece of software (especially an upgrade), the importance of first impressions cannot really be overstated. With VS 2012, well, I had some issues with the UI. It was grey. The menus were in ALL CAPS. Since it was the RC, I ran into a few bugs. All of this left a bad taste in my mouth, and I thought I wasn’t a fan. But I stuck with it, never realizing just how much I was beginning to love it. It wasn’t until a recent engagement forced me to do a few days work in Visual Studio 2010 that I realized just how much more functional 2012 is. The robust use of multi-threading makes it feel more responsive. Local workspaces are a dream come true. Web Access makes managing work items and administering my team projects simple (well simpler). So I thought I would share ten of my favorite features in the Visual Studio 2012 ALM Solution. Without further ado, here they are.

10. Quick Launch

I hate menus. No really. I hate menus. I’ve never been able to memorize them, and every software UI redesign usually results in months of fumbling around trying to discover where that vital piece of functionality has disappeared to. VS 2012 is no different. I still have no idea where the option to turn on line numbers is. Fortunately, that is no longer an issue.

A keyboard shortcut, an enter strike and a spacebar thwack later and the quick launch box is my new best friend.

9. My Work

Team Explorer has been given a much needed facelift in 2012, and no where is it more evident than the “My Work” page. For my normal day-to-day workflow, the My Work page consolidates all of the functionality I need. The ability to drag a task into “In progress”, seamlessly changing the task’s state and automatically associating my next changeset with it, creating shelvesets, and the entire Code Review process are consolidated into a single, easy to use location.

8. Browser specific debugging

This is a great, often overlooked new feature. Maybe because it is web development specific. Regardless, the ability to debug your web app in any browser installed on your machine is awesome.

Oh, and then they throw in a happy little tidbit – Page Inspector. A Visual Studio integrated browser with a full suite of development tools? Rocking.

7. The Fakes Framework

Unit testing is probably the most under-utilized modern coding practice, and one of the biggest barriers to it’s industry wide adoption is the difficulty of creating unit tests for legacy code. Code that wasn’t designed with unit testing in mind is quite often labeled as “untestable” and then the issue is dropped. Enter the Fakes Framework with Shims and Stubs. Mocking isn’t anything new (although it can be incredibly difficult to get your head around in the beginning) so Stubs won’t exactly blow you away. But Shims now. Shims allow you to intercept code at runtime, and mold it to your wishes. Want to test if your code that triggers on a particular System.DateTime actually triggers? Shims allow you to intercept a Now() call and pass in a particular DateTime value. Have some overly coupled legacy code without any Interfaces to mock? Shims will allow you to intercept the method call and force it to perform as you wish. Check out this blog post by one of my colleagues for a quick introduction to this powerful new functionality.

6. Storyboarding

A picture is worth a thousand words. But a picture that non-technical stakeholders can easily manipulate which links to a work item in TFS so that developer’s can continually refer to it? Now that is priceless. Storyboarding in Visual Studio 2012 integrates with PowerPoint and can easily be linked to work items. Increased communication? Check. Increased likelihood of creating the UI your stakeholders actually wanted? Check.

5. [Useful] Web Access

Not everyone on your team needs, or wants, the Visual Studio IDE installed on their box. Stakeholders want visibility of the project status; which features have been implemented, what’s being worked on right now, and what is going to be developed next. Project Managers (or ScrumMasters & Product Owners if you’ve adopted Scrum) need to be able to create, assign and manage user stories, bugs, tasks and other work items. Enter the new and improved Web Access. The prioritized product backlog is easy to use, intuitive, and even enabled with drag and drop functionality. Widgets on the homepage allow quick access to often used work item queries. Toss in iteration planning and a slew of administrative tools, and the new Web Access is not only useful, its downright indispensable.

4. Feedback Client

Getting actionable feedback from clients and stakeholders is vital to a successful project. Unfortunately, such feedback is usually scattered across emails, phone calls, in person conversations and other various media. Not only is such communication incredibly difficult to track, it is rarely specific enough to provide actionable items to add to the backlog. Enter the new Feedback Client. Backed by complete work item integration, the Feedback Client provides an exploratory testing like UI that stakeholders can use to provide specific feedback on your project. Stakeholders can easily capture screenshots, add audio and video commentary and provide textual feedback on a specific portion of your application. The entire process is designed to guide your stakeholders to provide feedback on exactly the areas of your application you want. Add in the ability to link new work items to the results of the feedback request, and you have a powerful, fully integrated feedback tool.

3. Fully integrated Code Reviews

If unit testing is the most under-utilized modern coding practice in the industry, a formalized code review process runs a close second. The value of readable, understandable code cannot be overstated. One of the greatest pieces of advice for dealing with legacy code is to simply stop adding to it. The Visual Studio team at Microsoft recognizes this, and in Visual Studio 2012 has provided a fully integrated code review process backed by a code review work item type for maximum visibility and traceability. Comments can be added to a particular line, or the entire review. Attached to the review is the shelveset in question, so the reviewer has the power to load it in it’s entirety into their own workspace. If the shelveset is associated with a work item, the code review work item is automatically associated with that work item. Inherent in a code review policy is the fear of creating a top-down dictatorial process that the team will rebel against. But the entire code review process in Visual Studio 2012 feels organic and bottom up; facilitating communication amongst your team rather than enforcing it.

2. Local Workspaces

Seamlessly switch between working online and working offline? Yup. Never flip a read only flag again? Yup. Quickly capture and integrate source controlled files edited outside of the Visual Studio IDE? Yup. I like to think of local workspaces this way: I don’t ever have to think about local workspaces. They simply work, which allows me to simply work.

1. End-to-End Application Lifecycle Management

With the Visual Studio 2012 ALM solution (VS IDE, TFS, MTM, Web Access, Sharepoint, MS Office) Microsoft has fully embraced the concept of end-to-end ALM. Modern application development requires constant feedback, shortened cycle times and the ability to continuously deliver value to your consumers. No longer is it sufficient to develop a piece of software, and release an update every year or so. Our customers are more sophisticated, and they expect a more sophisticated product. Modern users will not deal with a bug that persists for more than a few days, or at most a week or two. If you’re not constantly adding more value to your product, odds are you’re not going to have a product much longer.

End-to-end ALM means managing not just the creation of your software, but the ideation, testing and delivering of that software. Each step in the process needs to seemlessly transition into the next. Every stage must be transparent to every other. Each cycle must be short, and be responsive to stakeholder feedback. No other product on the market begins to approach this all encompassing model. Can you piece together a custom all-encompassing solution? Sure. Will it actually work? Maybe, if you have the time, money, and personnel to dedicate to keeping all of the individual bits updated and communicating properly with the other bits. The complete solution that is Visual Studio 2012 enables your company to concentrate on constantly adding value to your product, and ultimately to thriving in the new agile software industry.