Welcome to MSDN Blogs Sign in | Join | Help

JoeN's Blog

XNA Shaman
Options, Options Everywhere

One of the things that I have been working on lately is relay looking at Visual Studio and trying to trim down it's overall size and complexity. I can't talk a lot about what I am working on but I'm sure a lot of you can relate to the problem:

Visual Studio has way too many options!

I started with a recent build of Whidbey and started counting the options that we showed in Tools.Options. This was a very stripped down build of the product and still it had over 1200 options (to be fair I counted all the font options as well as all the possible keybindings). Now we all know that VS has a lot of knobs that people can adjust but this is getting out of control!.

There are a few problems here:

  1. Too many options!. I personally think that VS has too many options but what options should we cut out?Whats frivolous to me is vital to another developer and when we have so many developers you can bet your life that someone cares about every single option (well maybe not every option, but you get the general problem).
  2. What affects what?. One of the general problems is that it's difficult to decide what options affect which windows. In general we try and make these make sense but it's sometimes hard to actually know what option you should be tweaking for what window. I think we could easily fix this by having some form of navigation directly from the window to the appropriate set of options (e.g. having some form of navigation from the TaskList in the IDE, to the direct TaskList page in Tools.Options).

Each team in VS has a different tolerance for adding options, from my experience C++ will nearly always add an option, C#'s default is to include the option but push back on it, VB typically gets rid of the option and makes a decision for the user (witness the lack of options associated with VB code formatting as a good example).

What's your take on the options in VS? Should we simply have an option for everything, provide better navigation and call it a day or should we try to reduce the number of options as much as possible?

Posted: Tuesday, January 27, 2004 11:32 AM by JoeN
Filed under:

Comments

Robert McLaws said:

I think the more options, the better. That's one of the things that makes VS.NET so powerful. You should expand the template of common options, and set up various profiles that work for team development and what not. Maybe have "Option Groups" that apply only to a specific scenario, and you can pick which scenarios apply to you, and apply the options in waves. A conflict manager would say when options from various templates conflict, and allow the end user to resolve them. Here's the kicker... in team environments, these templates would be able to be saved and replicated across the team, with the possibility of locking down certain options (tabs vs spaces, etc).

It would be really nice if teh profiles could be saved to a web service that was accessible from a .NET passport, so you sign into VS.NET, and your profile settings are automatically available, wherever you are.
# January 27, 2004 11:45 AM

Michael Collins said:

My opinion is that it's not so much how many options there are, it's that from my perspective there doesn't appear to be a lot of documentation to help me decide which options are best. With some options I have no clue what they do, and the documentation doesn't give me any better of an idea. It would be helpful if the documentation could be expanded to give me an idea of what happens if I choose the option and what happens if I don't.
# January 27, 2004 12:09 PM

Munish Gupta said:

More options are not necessarily a bad idea but need a better way to organize and present them. As already suggested here clubbing them in profiles, and ability to export/import and replicate them across your team would be really nice to have.
# January 27, 2004 12:19 PM

Scott said:

I'd like the options in VS to actually WORK.

ex: Tools - Options - Text Edit - HTML/XML - Format


I've got it set to lowercase. I've also got WebControls that contain HTML fragments (mostly of tables). If I open up the WebControl in the Visual Designer, behind the scenes VS inserts the "missing" HTML tags for me IN UPPER CASE. Hence - I don't use the Visual Designer any more
http://www.lazycoder.com/article.php?story=2003120114420866
# January 27, 2004 12:24 PM

Avner Kashtan said:

Joel Spolsky mentioned this in his excellent "User Interface Design for Programmers":
"Software has a similar archaeological record, too: it's called the Options dialog. Pull up the Tools | Options dialog box and you will see a history of arguments that the software designers had about the design of the product. Should we automatically open the last file that the user was working on? Yes! No! There is a two week debate, nobody wants to hurt anyone's feelings, the programmer puts in an #ifdef in self defense while the designers fight it out. Eventually they just decide to make it an option."

And the summary:
"Every time you provide an option, you're asking the user to make a decision".

(Nearly full text of the book can be found here. Search for Chapter 3: Choices:
http://www.joelonsoftware.com/uibook/fog0000000249.html)
# January 27, 2004 12:37 PM

Avner Kashtan said:

...and just to put my own views in:
I don't mind options. I like options. I'm a geek - I like long lists of features and options and cryptic texts. I also like playing the sort of computerized roleplaying games where you can have the specific magical sword which does 2 extra points of damage against siamese cats and would switch to that sword even though it hardly tickles anything else. I *LIKE* this sort of anal-retentive control over my environment. What I don't like, generally, about Options dialogs in programs (and VS.NET is no exception) is, as others stated, the lack of documentation on exactly what everything does.
I spent almost an hour trying to define a key-mapping in VS.NET2003 to run a Build only on the currently open project, because I tried to map it to the Build.BuildOnlyProject option, rather to the Build.BuildSelected option. I know writing documentation - even a brief one-line description - of thousands of itty-bitty options can be a wearying task for any designer, but it's what makes a program COMFORTABLE, and comfort is very important for an environment that we spend SO much time in like VS.
# January 27, 2004 12:42 PM

matt said:

So now you're giving us the option of options?! :)
# January 27, 2004 2:09 PM

Don Alvarez said:

Fighting the number of options is the wrong battle.

No matter how hard you try, {VS, Word, Outlook, etc.} will always have far more options than any single individual can keep track of.

The real challenge is to develop better tools for _managing_ options. Give me a call when you've invented intellisense for options boxes.

-Don

# January 27, 2004 4:43 PM

Chris Kinsman said:

Profiles would be nice. The two common ones I would use would be a "Normal" which is me writing code like normal and a "Presentation" which is bump everything in the IDE to 14 point font, etc. for better readability on a 20' screen.
# January 27, 2004 6:03 PM

Michael Giagnocavo said:

Second the comment on Profiles.

Joel Spolsky's right on MOST software. Word, "Grandma's Cookbook Collection", or whatever other kind of software shouldn't have excessive options. But, we're talking about VS.NET here!

Apart from VB.NET, bring on the options! I passed out when I saw C#'s new formatting options. Finally, I can everything spaced the way *I* want it, without spending time going back and adding newlines and so on.
# January 27, 2004 7:54 PM

J. Daniel Smith said:

I also think "more documentation" would be helpful; in particular "use cases". Don't just tell me an option does XXX, tell me *how* and *why* I would use it in various situations.

The idea of "profiles" sounds good - espeically if there were ways to mananage/merge personal and "team" profiles.
# January 28, 2004 7:02 AM

Ilya Ryzhenkov said:

My wish list:
1. I want Dynamic Help to be COMPLETELY off. I do know when to ask for help and look into MSDN.
2. I want complete options export/import. So when I reinstall the system or move I don't go through all things and set 'em again.
3. I want better outlining control. Always expand, always collapse, collapse to methods, etc. I would open file with ignoring regions and collapsing to definitions most of the time.
4. I have several SCC providers installed, I want to be able to choose one from within VS

There are much more, but those are important for me :)
# January 29, 2004 12:13 AM

Scott Louvau said:

This is a reply for Scott's post above:

I have seen some issues where tags which are added don't pick up the casing in the options. We're not happy with VS.NET 2003's handling of these issues, either.

In Whidbey (including the alpha), you'll find that NO tags are added to your document when you switch to Design View and back, and when you make a change only the part of the document that has changed (added or removed tags, attributes, and space) will be changed in your Html.

In addition, the changed regions have formatting rules, including casing, carefully applied, so you shouldn't see any tags popping up which aren't formatted as you expect.

Though it's not in the alpha, we also talked about Per Tag formatting options at the PDC - you'll be able to specify what type of termination you want (no end tag, self-terminated, closing tag), whether you want contents to be indented, and what you want newlines to look like on a per-tag basis, making the formatting much easier to accept.

I personally am pretty picky about the layout of my Html and the options are specific enough that I'm now happy with the designer's output and even willing to manually trigger formatting to get the Word Wrap where I want it (which I never would've touched before). =)

BTW, I'm the tester for these features. If you have any specific cases you want me to check out in the new version for you, let me know. (scottlo at microsoft).

Thanks,
-Scott
# February 3, 2004 5:32 PM

Korby Parnell said:

Ilya,
Regarding #4: your request prompted me to write a blog post on the subject of how to switch source control providers easily.

http://blogs.msdn.com/korbyp/archive/2004/02/05/68138.aspx
HTH,
Korby
# February 5, 2004 10:45 AM

nospamplease75@yahoo.com (Haacked) said:

I'd like to see a move towards "smart" and "context sensitive" options perhaps using smart tags.

For example, when working on a web project, I typically want all my aspx pages to open in code view when double clicked. Others like it to open in design mode while still others want the page to remember how it was opened last time. Ideally, when I right click the first time on any .aspx page and click "Open in code view", a smart tag would appear. I could choose to ignore it, or i could click on it and it would give me the options I described.
# February 11, 2004 3:17 PM

Mike Dimmick said:

On the subject of fonts, I want to use the same font throughout the IDE for all code windows AND for the output window - anything that's going to display monospaced text. My preference is Lucida Console 8pt; how you can ship with Courier New as the default is beyond me...

Also, I'd like to use Tahoma NOT BOLD in my database and some other windows. For some reason, VS won't allow plain Tahoma as an option.
# February 13, 2004 11:46 AM
Anonymous comments are disabled
Page view tracker