This part is essentially all about ‘Why?’. We’re going to spend a bit more time on the menus we saw in Part 1 and also take a brief look at some of the Toolbars that are displayed with an out the box install.
Why? – Project context menu
As we saw in Part 1, the out the box count for this menu is 28. This rises to 49 once you add Source Control and some productivity add ins.
Image: Visual Studio 2010 C# Class Library Project context menu.
- Why is Run Code Analysis grouped with Build and separated from Calculate Code Metrics? These are both about quality. They should be together.
- Why are Service References not incorporated into the shiny new Add Reference screen, allowing us to get rid of the Add Service Reference menu?
- Why is there no contextual filtering? Would I really want to add a Windows Form to a class library? So often that it deserves prime real estate?
- Why is Unload Project not next to Set as StartUp Project?
- Why is Add Solution to Source Control using an icon that looks like it will add a folder: ?
- Why is Open Folder in Windows Explorer using this totally unrelated icon: ?
- Why are Add Ins and third party software allowed to simply add menu items anywhere they like?
- Why do items that are used once, twice, never, all available with items which we use day in and day out?
Once the project has been added to Source Control, we have the following menus, which are the same as the those for a file. This is a critical part of the menu as these menus are probably the most used by any developer. They are also the single most frustrating set of menus available. Try as I may, I always battle to find the right menu item I need in this list. By ‘battle’ I mean that it stakes me several seconds to resolve. This is too long. I’ve even done many a paired check in where we have both stared for a while and asked’ Where is the Check In menu?’
Image: Source Control menus
- Why are the Check In and Check Out icons so similar?
- Why is it Check Out for Edit… and not just Check Out?
- Why does View Pending Changes not have … in its name like the others do?
- Why do the others have … in their names?
- Why does View Pending Changes use this icon: ? Seriously, what is it meant to be?
- Why does the View History icon use a green arrow in it: ? The Get actions use green arrows, so green must mean we are getting code onto our machines.
Why? – Toolbars
For this series I’ve chosen the C# development settings. After opening a new Class Library application, Visual Studio presents the following:
Image: Default toolbars.
Believe it or not, that’s just three toolbars, Standard, Test Tools and Text Editor, which give us around 60 buttons. With the Ultimate version of Visual Studio you can add a few more, 34 actually, lets call it 32 as I seem to have some BizTalk toolbars in there.
Image: A toolbar for every day in the month, and more.
- Why do we get those three toolbars as standard?
- Why do we not get the Build toolbar by default?
- Why are some icons identical ?
- Why do we have two ways of doing the same thing via the mouse ?
- Why are we given buttons that we will use very infrequently, e.g. Extension Manager ?
- I think I’m going to stop asking Why. 32 toolbars, almost 60 buttons out the box! I wonder if the Visual Studio team get statistics like the Office team with regards to how often features are used. I worry myself now that I might be missing features lost to me in those toolbars.
Let’s not forget that Visual Studio is a very powerful and complex product. Having all these toolbars is not a terribly bad thing, however it does remind me of how Office went from this mess to what is now a very slick ribbon based UI. Would that really work for Visual Studio? I’m not sure, but we’ll get to that in Part 4.
Given the sheer scale of what people can and want to do with Visual Studio, UI real estate is a very sacred and precious commodity. As it stands today, the menus and toolbars in Visual Studio are being treated as second, perhaps even third class citizens. As software developers we encounter extreme levels of frustration, complexity and challenges in our daily routine; we need and deserve more than what we have today.
Surely this screenshot has UX experts watering at the mouth!
Image: All toolbars selected
It’s now time to move from ‘Why?’ to ‘How!’.
- In Part 3 we will look at what you can do today to get around this problem ‘efficiently’.
- In Part 4 we will bring in a blank canvas and propose some simple and some radical solutions that the next version of Visual Studio can adopt to reduce the complexity of its UI and increase the day to day productivity of developers.