Internet Explorer 8 using Restart APIs to full potential

Thu, March 19, 2009, 11:49 AM under Windows
I have been playing with internal bits of Internet Explorer 8 for a while and it is pretty cool. Today the final version has shipped and you can download IE8 from the Microsoft site. To see the many cool enhancements I'd encourage you to watch the short videos (or at least just the Overview) on the dedicated IE8 videos page.

One of the things I like doing to new apps is crashing them. When a windows app crashes, I fully expect it to restart and restore the state it had before it died. I ranted in detail on that front in an older post of mine 2 years ago.

Internet Explorer 8 finally delivers on my request. This is what I see after I crash it and it restarts:

Love it!

Zoom Ctrl + mouse wheel

Sun, March 15, 2009, 07:21 PM under UserInterfaceDesign
Almost all modern UIs support zooming in and out; it is useful for focusing on a specific area (e.g. seeing the detail better) and for managing scale (e.g. seeing the big picture without scrolling).

It has become the standard to offer the zooming function via holding down the Ctrl key and scrolling the mouse wheel. Try it now in your internet browser (IE, firefox etc), in any office application (Word, Excel, PowerPoint) including reading or composing email in Outlook, in windows explorer to see more/less files, in Visual Studio 2010 editor and so on and so forth.

If you take one thing away from this blog post as an end user it is to try Ctrl + mouse wheel. As a developer, offer this feature for your users. I recommend a range of 10% to 2000%.

Beyond the standard keyboard shortcut though, there seems to be no standard for displaying a UI zoom control. Below are some screenshots of zoom controls to prove the point.

Word/Excel/PowerPoint, in the status bar:

IE7, in status bar:

FireFox, hidden in a submenu:

Outlook, hidden in a dialog off a ribbon button:

Windows Photo Gallery:

Class Designer, on a toolbar:


Our team wanted to add a zoom control for a new VS2010 debugger toolwindow. Even within Visual Studio there are various zoom controls. You can see one of them in the screenshots above from the Class Designer (introduced in VS2005). Here is another example introduced in VS2008 for the WPF designer (aka "Cider")

Rather than introduce yet another control that was convenient for us to implement, we decided to follow Cider's example (and also suggested to the UX team to standardize on this for Visual Studio). What I like about this control is that it is quick to use (less mouse travel to get to it than other approaches, and just click and drag instead of combobox clunkiness), I like the way it reports the zoom state at the top e.g. "70%", "x2" and, finally, I love the button at the bottom that toggles between the "fit to screen" and "100%" states. Those of you that used it will have also noticed the aesthetically pleasing fade in/out as you hover on/away from it :-)

Now, even with all these benefits there is a drawback which is acceptable in the WPF designer, but not so acceptable in a smaller surface area (like the typical debugger toolwindow): the control can overlay with the content of the window and, even in the faded out state, it can be annoying for some users. For that reason, we added a toolbar button that simply toggles the visibility of the zoom control. So now you can have your cake and eat it too.

It is amazing to me how smaller obvious features such as adding zoom support, take more time to think over than what one might expect… If you have used zooming in an application that you believe is better than what's described above, please share!

Perspective on Program Manager

Tue, March 10, 2009, 11:21 AM under Career
Apologies if you were expecting me to share my own insights (beyond what I already did last year).

Instead I encourage you to read Joel's take (slightly biased towards junior PMs, towards consumer product PM and towards the early stages of the project lifecycle).