Hello world, my name is Tim--though I also respond to TimSull, Timmy, and Timmaaayyy--I'm a developer on the Visual Studio IDE team...welcome to my blog.  I work on a number of different features of VS including Help Integration, Community Integration, Commands and Menus, Side-by-Side Versioning, and Import/Export Settings. My plan for this blog is mostly to talk about some of the cool stuff we're doing for the Whidbey release and to provide a forum for developers out there to give us feedback about our plans.  I'll try to go through my features one by one and tell what I can about our plans.  If people respond and want to know more about a particular area, I'll go into the gory details.  I must say, given that I'm still new to the whole blogging fad, I'm a bit skeptical that anybody is actually going to read my blog.  But what the heck, I'll just throw this one out there and see what happens.


IDE Help and Community Integration for Whidbey:

Help and Community are getting a lot of attention in Whidbey. We've received an enormous amount of feedback from customers expressing their disdain for the Help that shipped in VS 2002 and 2003.  Developers consistently complain that the help interface makes it too hard to find the help content they're looking for.  And they complain that when they finally do find 'the right topic' it's often lacking in some fundamental way.  We're trying to address these problems in a few different ways.

Improved content:

This isn't actually something that my team works on, but it's obviously really important, so I want to mention it. The editors that are responsible for writing the docs have heard your feedback and are working hard to improve the quality of the help content. For instance, C++ developers have made it clear that they don't like seeing API reference that says only 'The FooBarEx() api takes parameters int x and void *y and returns 0 if successful', with no further discussion. If documentation barely says anything more than the SDK header file, it's obviously ...umm... lacking. VB developers have told us they don't want docs that seem to be written for or by C++ developers . For the VB developers , higher level content and task based help are clearly the way to go. And virtually every developer we've ever talked to, regardless of their language of choice, has requested more and better quality code samples in topics.  All the people that are working on the help content are aware of this feedback and are working to address it in the Whidbey release.  Unfortunately, due to the sheer number of help topics in MSDN and a few scheduling and organizational issues, I can pretty much guarantee that a number of help topics will still be sub-par when we ship Whidbey. But hopefully the most important topics will have been rev'd and will be much improved.  If you've got a rant about the help content, or if you have particular topics you'd like to see fixed in Whidbey, let me know and I'll make sure the documentation teams hear your feedback.  Also, make sure to use the 'send feedback' links whenever you find an MSDN topic that's not to your liking; those bits of feedback are all read by actual people and they result in bug entries that someone will be responsible for fixing.

Improved access to content:

In VS 2002 & 2003 you have 5 ways of getting help:

  • F1 -- Completely hit or miss, sometimes it works remarkably well, sometimes it shows the Dynamic Help window which is always trying to give you help on the 'Code and Text Editor', which is never what you're looking for.
  • Table of Contents -- I don't know anyone who has successfully found a specific topic they were looking for by navigating down the TOC tree.  The TOC is most useful for finding topics that are similar or related to the current topic, using the 'Sync Contents' button on the Web toolbar.
  • Index -- If you already know the API or class name you're looking for then the Index works well, otherwise you're out of luck since this window is virtually useless for finding conceptual topics.
  • Search -- 500 results in nearly random order, choose the topic you want based on its Title and Location--unfortunately the titles are really tough to differentiate since there are lots of duplicates and similarly named topics.
  • Forgo the integrated help experience and search using the web -- Has mixed results depending on your search engine of choice, forces you to leave the IDE, which implies a mental context-switch and usually a loss in productivity.

In Whidbey we're making improvements to F1 and Search and we're adding some completely new interfaces to access help content.

  • F1 -- Better metadata on help topics will make F1 work more consistently even if you're not in the context of a project, or if you're writing code in native C++ where we usually don't have fully namespaced keywords to lookup. Better disambiguation UI will show topics that are more targeted to your selection; you won't see the same topics all the time.  You'll also have the option of going online for F1.  This will have 2 beneficial effects: First, you'll get the very newest help topics. And second, if you're not satisfied with your F1 results, you'll be able to let MS know so we can try to fix whatever bug is causing F1 to be broken.
  • Search -- Filtering will be more easily adjustable than it was in VS2002 and 2003, and will do a better job of filtering away many of the topics you'll never have an interest in. (Topics on DirectX, the Speech SDK, Commerce Server 2002, etc. might be great, but not when they show up at the top of the search results list when you're trying to learn about a TreeView control for C#.) Also, the search results will show a dynamically generated abstract based on the text of the topic to go along with the Title and Location. We hope this will make it much easier to tell if a topic will be worthwhile before you click on it and wait for the fancy script and graphics to render in the web browser window.
  • How do I... -- This is an entirely new view into the help system. It's a hierarchical organization of common tasks a developer is likely to encounter. Each developer segment (VB, C#, Web, etc.) will have its own hierarchy containing roughly 200-400 tasks. Each task will contain carefully reviewed editorial text along with sample code that can be copied and pasted into the VS editor. The documentation teams have been collecting user feedback to help determine which tasks to include in the hierarchies. If you have ideas for tasks you'd like to see in a How do I... page, let me know and I'll pass them along to the right people.  You can think of How Do I... as a hand-picked, carefully designed subset of the Table of Contents. Check out these screen shots from live builds: How Do I... hierarchy page, WinForms Controls category page.
  • Help Favorites -- previous versions of VS and MSDN contained an integrated favorites tool window, but it was just the IE favorites window, not help-specific favorites. Our initial surveys and focus groups have indicated that developers think help-specific favorites will be really useful.  People have also shown a lot of interest in the ability to save favorite search queries so they can easily go back to interesting sets of search results.

Inclusion of online content:

There are numerous things that online help can provide above and beyond what you already get with local help:

  • Smaller install size: MSDN is on the order of 2 GB when installed locally, online help has the ability to forgo that use of hard disk space.
  • Newest content: if content gets updated, the only way to get that with local help is to acquire and install one of the MSDN Quarterly updates (very heavyweight process).  With online help, you get the newest content automatically.
  • Ability to provide feedback to MS: Online help makes it easy to tell MS that a particular help topic is insufficient.

Inclusion of Community content:

Going online to access MSDN content has its benefits, but the biggest win in searching online is really the ability to access living content.  If you look at some of the fantastic work that Community-based web sites like .Net247, CodeProject, ASP.Net, and others have done, it's clear that static content published to the web can never be as rich as content that is provided by members of the developer community.  Don't get me wrong, MSDN's API reference is obviously important.  But if you open that content up to be annotated and extended by people in the community, then it becomes a much more powerful resource.  It's really a complementary relationship: MSDN content provides breadth of coverage while the Community fills in depth in the areas that are most important to developers in the real world.  Community content also helps address the need for more code snippets.  If I need help using a DataGrid control, I definitely prefer to look for code snippets at .Net 247's DataGrid page than at MSDN's static DataGrid class topic.  MSDN's code snippet looks very comprehensive, but .Net 247's page provides so much more variety, and it's directly linked to a forum where I can ask questions about the code and interact with the code authors or other forum members.  The experience at the Community-based site is much richer because the content is far more dynamic and because I can interact instead of just reading.

So how does this apply to VS?  In Whidbey we have partnered with a number of Community sites that will allow MS to aggregate and search their content from the VS client.  This means that when you search for DataGrid from Visual Studio Whidbey, you'll see a list of local help MSDN topics, a list of MSDN online topics, and a list of links to pages on CodeWise web sites.  So developers will have simple, direct access to the newest and most popular code samples and technical articles in the community.  You'll see living content alongside the comprehensive static content from MSDN.

In our focus groups, we've found that many of the more savvy developers out there currently do a 2-stage search for help content.  First they search in local help or MSDN Online, and then they search Google.  The goal of integrating community content into the VS client is two-fold: First, we want to help our not-so-savvy customers get access to all the great community content out there.  Second, we want to make finding help content a seamless experience where you only have to learn and use one UI, and you never have to leave the IDE.  The main outstanding question is: Will the quality of integrated VS search results be comparable or better than the search results from today's 2-stage search.  Because of our highly customized filtering and scoping, we think that they will, and when you combine that with having a single search entry point and a unified search results interface, our solution should be a big productivity win.

But what does it all mean (to you)?

When I look at the full list of changes we're making to improve Help in Whidbey I think they'll add up to a big productivity win for our customers.  But I'd love to hear what the developers out there think of our plans.  Are you psyched about what we're bringing to the table in Whidbey?  Do you wish we were focusing our efforts in different places?  Let us know what you think!