Redesigning the New Project Dialog

Pratik

Last week, we released Visual Studio 2019 version 16.1 Preview 2. If you have the latest update – awesome and thank you. If not, you can download it from the link above. Or, if you already have the Preview, just click the notification bell inside Visual Studio to update. This post discusses one of the most visible interface changes we’ve made in Visual Studio 2019 – the New Project Dialog.

Motivation

In Visual Studio 2019, one of our main objectives was to help you (both new and experienced developers) get to your code faster. You can read more about this journey in the blog post that discussed the new start window. One of the most common ways to start coding in Visual Studio is to create a new project.

The dialog hadn’t changed much since 2010, and the interaction model between folders and items has been in place since Visual Studio .NET back in 2002. We hadn’t put much time into the New Project Dialog because we believed it largely served its purpose. Until recently, we didn’t have the telemetry in place to be able to analyze how this dialog was used. Our initial hypothesis was that most of you interacted with the dialog rarely. And instead you spend much more time modifying projects you had previously created. After a bit of user research and analysis, we found that the latter holds true. But we were quite mistaken about the former. Many of you use the dialog to create new projects to try out new things or add on functionality to existing solutions a lot more often than we thought.

User research

We then dove deeper into the data, particularly looking at the usage patterns from new users of Visual Studio. We found that there was a surprisingly large drop-off in usage after launching Visual Studio to opening a project to start coding. That led us to the hypothesis that the New Project Dialog might be somehow inhibiting success with the tool. So, we expanded our user research and gathered that this dialog was presenting you with too many concepts, choices, and decisions. The process of getting started with your code wasn’t straightforward enough. The hierarchy of the nodes wasn’t consistent. When you installed several workloads you would see too many languages and technologies presented at the top level. Further down into the second and third level of nodes, the taxonomy became quite unmanageable with differences in naming conventions of categories.

When we asked participants in our usability studies to search for code scaffolding to get started with certain types of projects. We saw them click around through the top level nodes, and not click through the hierarchy. Sometimes they completely ignored the structure on the left and focused just on the default list of templates in front of them. What surprised us was that even for experienced developers, some of the options weren’t intuitive. Most couldn’t pinpoint the link to ‘Open Visual Studio Installer’ when the templates they were looking for weren’t available. They glazed over the search box without interacting with it. They seemed to completely ignore the recent templates list. And when they finally selected a template, they lacked confidence in their choice.

In addition, we learned that most of you think about your app type first but there are some who think about languages first when finding templates to start coding. It became clear that this mixed structure wasn’t intuitive for either use case. The barrier to the first actions within Visual Studio was too high. And this was a problem that small UI tweaks weren’t going to solve.

Design principles

During the design and development of Visual Studio 2019, we looked at usage across different areas of the project creation process and honed down on a core design goal –

“Get to code quickly with the minimum necessary scaffolding and help developers configure their application with the right settings”

Remove unnecessary choices

There were several options in the dialog box that we sought to remove as a way of simplifying the set of decisions you had to make. We first cleared out the rarely used toggles to sort templates and change icon size. The checkbox to create a git repository provided little value when creating a project. Our research told us that the right step for git init was either before project creation when you create the local folder or after project creation when you know you want to move ahead with the project. You can now do this in one click through the ‘Add to Source Control’ button in the bottom right of the status bar.

The last option to go was the ability to view and download online extension templates through the dialog. You can also do this through the Manage Extensions dialog in the Extensions menu. So, we eliminated the duplicate behavior to reduce cognitive load while looking for templates. After all that, our design looked something like this:

Search-first

But through design studies we found that this still wouldn’t lead to success. The node structure was still too convoluted to be understandable in early usage. We initially wanted to flatten the tree so that there was less digging and clicking to do. But we soon realized that with the overabundance of supported project types, it was an exercise in futility coming up with a single taxonomy that supported every single template. So, we decided to fundamentally shift the way users could discover templates. The search box had low usage in the old dialog box because its position made it a secondary function. But search is a prominent discoverability mechanism across the industry. So, we wanted to improve the way Visual Studio utilized search to help find what you need.

Our early studies saw participants gravitating towards the search box when we changed its position. But there was still a slight hesitation before typing something in – “what do I search for?”. This led to the realization that search cannot be a catch all, and there needs to be a little more guidance. We took the values we knew from the old dialog’s node structure and saw that they roughly fell into three categories – ‘languages’, ‘platforms’, and the more vague ‘project types’. So we introduced filters and tags as secondary mechanisms to support search. Browsing through the tags in the template list will help you discover the different capabilities of Visual Studio based on the tool-sets installed in your instance. Setting filters will allow you to narrow down the list to your preferred choices when starting with a new project.

One decision at a time

We also broke up the process into two separate screens. There is a single decision point on the first screen – select a template. And all the interface elements direct you to make that choice. The second screen is all about providing details about the project type you’ve selected. You can modify the values here or move through the project configuration screen without changing anything since all the recommended defaults are set for you. Some of the more complex project templates then open a third screen which has custom options specific to that project type.

Looking at the template list itself, we made a point to sort this list by our most recommended project templates for the workloads you have installed. So, the template that you should select if you aren’t exactly sure what to do would be the one placed higher in the list. We found that most of you don’t use more than 10 different types of templates, so we’ve made the recent templates list even more prominent than it was in Visual Studio 2017, so that you can get to your most common templates without having to search for them.

Looking forward

This is the first iteration of a new design paradigm we’re trying to adopt for Visual Studio. We’ve been measuring adoption and engagement since the launch of Visual Studio 2019 earlier this month and we’re happy to see a significant increase in success rate through the get to code journey. But at the same time, we acknowledge that the evolution of the experience isn’t over just yet. We’re continuing to listen to your feedback and learning from you to ensure success. We’re on the path to make improvements to search and filtering as they are now the key functionality to finding the right templates. In addition, we recently built in the ability to add tags to your own custom templates. If you’re a template author, find out more on how to update your templates in this blog post. We released this functionality as the result of your direct feedback, and we thank you for it. But we are looking to do better and could use more of your help. Please continue to share your feedback through the Visual Studio Developer Community.

119 comments

Comments are closed. Login to edit/delete your existing comments

  • Hrust Damian

    There was a bug with my installation and reinstalling 2019 fixed a lot of problems with the new dialog. 

    As as the article said, it is fairly similar. The problem people face might be the same as I faced. I could not create API project, second screen was missing. Reinstalling VS fixed it. Not bad dialog, now that it works. 

    • Chuck Ryan

      The problem with the dialog is in the basic flaws of a search only design. With the old design I could add a new project in a few as 2 clicks and type the name, with this design I have to either select the search box and think about what search term to use or select the 3 filter options and try to find the pea under the shell where they decided to hide it. I definitely feel sorry for anyone new to Visual Studio trying to find a project template in that mess. But the biggest reason we have to fight this idiocy is the comment stating “This is the first iteration of a new design paradigm we’re trying to adopt for Visual Studio”, can you imagine those dialogs all through this bloated IDE? 

  • ᴀxᴇʟ sᴀɴɴᴇʀ

    Wow! This dialog just doesn’t work. Was really looking for seeing new features of vs2019, but this made it impossible.
    I guess my point isn’t unique. At work this dialog is never in use, my team and i check out code from git and work mostly just by the solution files. But when ever a new vs comes out i use the project template dialog to browse new features, platforms, apis etc. and thats very much gone now. I guess some of the reason people don’t like the new dialog was that the old dialog didn’t just serve as a list and a button to generate a template but it served as a picture to show what and which features where installed.

  • Soft Works

    Pratik – I don’t have the slightest doubt that you’ve been well aware during all this discussion, that there’s a rather simple way to switch back to the normal ‘New Project’ dialog.
    But besides ignoring and not responding to any of the concerns here, you also preferred to keep quiet about the option to switch back to the old dialog and instead force users to suffer from your “great innovation”.
    After reading your 1,2,3,4,5,6,7,8,9-reply a few hours ago, I found that this level of ignorance would deserve an adequate response. And here it is:
    Classic ‘New Project’ Dialog Extension
    https://marketplace.visualstudio.com/items?itemName=softworkz.SwitchProjectDialog
    Brings back the classic ‘New Project’ Dialog for Visual Studio 2019

    • André Ziegler

      fantastic , you’re my hero. It is so better compare to the new shitty dialog which freezes during project generation with blackscreen. As expected the old dialog is responsive and so easier to use.
      Please also create an extension to bring notification icon back to top, I always overlook this tiny thing at buttom of VS2019.

    • Yann Duran

      Good on you!
      But if you’re relying on code for the old dialog box, they might remove that, the way it appears they’ve done for the old Start Page (which was still there, just “hidden”).

    • Pratik NadagoudaMicrosoft employee

      Thanks we’re definitely hearing the feedback. And I apologize if it feels as if you aren’t being heard. At the same time the team has been gathering general sentiment through surveys and customer conversations and we have actually seen higher satisfaction ratings for the new dialog as compared to the old dialog in Visual Studio 2017. So we want to keep on improving it. In addition, features that we want to build going forward would have been limited by the technology backing the old dialog (it was more than 15 years old) and that’s unfortunately why we’re not officially maintaining it or supporting the ability to revert back to it. Some of the features we’ve implemented since GA (a big thank you to those who have engaged with us through suggestion tickets) are:

      – Allowing custom tags for third party project templates

      – Remembering filters you had used in previous invocations of the dialog box

      – Fuzzy search, improving ranking relevancy and highlighting in the search algorithm

      – Resizing, minimizing, and maximizing the dialog box

      – Keyboard accelerators and shortcuts for faster access

      – Improved performance and reducing crashes of the dialog box

      – Pinning recently used templates in the list

      – Showing filter values within the comboboxes for language, platform, and project type

      – Visually indicating newly installed templates through a ‘new’ tag

      Thanks for your patience and stay tuned for more updates on our roadmap – https://docs.microsoft.com/en-us/visualstudio/productinfo/vs-roadmap.

  • David Walker

    Lost my comment…
    “One of the most common ways to start coding in Visual Studio is to create a new project.”
    True but misleading.  We aren’t frequently going to “create a new project”.  Much more often, we are going to work on an existing project.  The UI should be geared toward that. 
    If there was a “drop-off in usage after launching Visual Studio to opening a project to start coding”, you could add a “Getting started” button to the page that otherwise contains the projects you HAVE been working on.  Don’t break things for experienced developers.

    • Chuck Ryan

      I highly doubt their drop-off is due to the New Project Dialog, unless they were shown the new New Project Dialog, as my own experience with developers new to C# and VS points to the blank slate they are presented with AFTER the new project, for example a WinForm project, has been generated. Perhaps if they stopped bloating the IDE with add-ons that most developers will never use, or go back to a basic/advanced/expert mode option, with actual tutorials built in to at least the basic mode, then the new developer might spend more time in the IDE and less trying to find a book that teaches them how to use it.

    • Pratik NadagoudaMicrosoft employee

      I hope that we haven’t broken the way you get back to your recent projects that you’ve been working on. You can use the keyboard accelerator ‘Alt+F,W’ to directly open the start window from within the IDE that has your recently opened projects list!

      • Chuck Ryan

        Why would you open a modal window when you can just ‘Alt + F,J’ to see it in the IDE?

  • Daniel Betz

    So, how do I filter for .NET Core? Oh that’s right, I cannot. But instead, I can select IoT. Which results in… nothing, because there are no such project templates. Why is the filter option even there? If you must have it, at least make it grayed-out.

  • Richard Je

    Where should I start. To be honest, we create new projects quite often, for specific reasons within the company. This new dialog is useless. It doesn’t show my options. And for most things I could search for it, but the old way was showing me the state in one shot. (Selected language, project type, template), now you need to scroll like crazy to see whats there, if it scrolls at all, since many times it goes into “Freeze mode”. And this is only ONE step back with new VS2019. But there are many more backsteps that were introduced in this “improved” version.I am out, we are moving to Rider IDE.

  • Enrico Fichtner

    Wow!! I’m totally impressed from what our (common) voice can do!! 🙂 The ‘old’ ‘New -> Project’ dialog is back – thanks to you guys (ok, I wrote my 2ct as well about this crippled ‘Redesigning the New Project Dialog’). And thanks to the MS-Team for listening (although it took quite while…)!!
     

    • Matt Downing

      I have the latest version VS 16.1.6: it is not back – still new rubbish dialog.  What version are you looking at?

  • 历 杨

    Because of this bad dialog experience, I tried to open VS2019 4 times and then returned to VS2017.

  • Matt Downing

    So much negativity – do look at the positives.  For example, the people who designed this dialog are demonstrably not good at their jobs, and yet they are still employed by one of the largest companies in the world.  Doesn’t that give you hope?  If they can be this bad and still get paid, employment should be straight-forward for those of us with a basic understanding of UIs, users etc.