Welcome to MSDN Blogs Sign in | Join | Help

Offsite blues

It's been a few days since my last post.. my team had an offsite last Friday to go over progress and also to get an idea of what everyone was working on and where we were at.(Funny how you'd think that watching paint dry is the most boring thing in the world until you attend an offsite :) )Anyway, I was working on my presentation for the offsite last week, and refined the user experience “Guiding Principles” (that sounds like something from the Jedi code!) Every feature that we implement in the UX should follow these guiding principles:

The user experience is….

  • Intuitive
  • Responsive
  • Adaptive

By intuitive I mean that the user should not have to think about the navigation... (I'm reading Steve Krug's “Dont make me think“, a very interesting read IMHO). You should easily be able to tell where you are in the SDK, and the navigation experience as well as the getting from point A to point B should be easy and straightforward.

Responsive means that your UI doesnt hang as the SDK viewer downloads posts from your favourite blog (yes the new Longhorn SDK really integrates well with all your favourite online development resources, I'll talking more that another day). It means that at any time, you can cancel out of your current action and move on, and never have to wait to get control back from the viewer (Outlook finally got it right in the current version IMHO - between the paper clip, and waiting for it to return the UI to me so I could cancel the server request, I really felt the pain in the older versions - scars from previous versions still remain on my poor mouse as I banged it repeatedly on my desk in frustration)

I addressed Adaptive a little in my last post... the user experience should adapt... to me, my machine and my history. If I am a VB developer interested in ASP.NET, the SDK should tailor itself to me if I so decide. This should not restrict me from seeing that there are C# samples for the topic I'm looking at, or from viewing other topics... but it should optimize itself to my criteria.

So did I forget anything? Would you like to add to this list or just disagree with these three “Guiding Principles“? Let me know!

Later this week I'll post the other view of the search results pane we're playing with.

Published Monday, January 26, 2004 7:24 PM by harisekhar

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# re: Offsite blues

Monday, January 26, 2004 8:29 PM by Justin Rogers
Keep with the idea of responsive. Traditionally there have been major issues with the SDK viewer and quickly pulling up information. In general the problem I can be classified in the following user case:

Index: Find: ToString

Now in this case I'm looking for a particular ToString, so I could have typed DateTime.ToString and gotten there, but when I accidentally make the mistake of doing this today, what I get is a non-responsive UI while the search results pane is loading.

Ideally this would be a really responsive asynchronouslly loaded pane so that as parts start jumping in I can start scrolling through to look for them. Or I can realize I did the wrong darn thing and go back to type in DateTime.ToString.

I generally use the Index feature a lot over the full search engine, so this is where the major optimizations would need to be in my perspective.

In regards to Intuitive, you really need to make sure all input fields have a shortcut focus key to get there. I often find myself using my mouse to nagivate the SDK. Here is an example:

Contents - MouseClick to Index - MouseClick to LookFor (I could Alt+L to get there, but intuitively this control should always get focus by default, but instead the filter drop down gets focus sometimes, doh) - Find a Topic - Click on the Topic - Wait for the Index Results to load and the help pane to load with my help - Sync Contents so I can go look at that branch.

What this describes is a method for finding a class based on a known method name, but where you might not know the class name or namespace. The same thing happens when you do know the class, but are working with one of it's methods and you need to quickly get Contents access so you can navigate the document tree.

For me intuitive and adaptive means that the UI will notify me of hot-keys and have hot-keys for all changes to the UI I could also do with the mouse, while still adapting to basic things like auto-syncing the contents pane for me (user settable?) or allowing me to work only within specific namespaces (sub-indexed view of the entire documentation set) and the ability to have multiple help views active so I can quickly jump between them. (most often I'm doing WinForms stuff so I have one copy of the Help SDK Viewer open to WinForms contents with stuff expanded, with another copy open for something like System.IO so I don't have to worry about screwing up my Contents window too badly).

Darnit, do some user testing!

Leave a Comment

(required) 
required 
(required) 

  
Enter Code Here: Required
 
Page view tracker