Everyone who reads this blog is probably familiar with this concept, you are tech support for all your family, relatives and close friends. Not every computer user is fortunate enough to have a computer whiz-kid around, so they find the next best thing, and that usually means you. But soon, Windows Vista might free you from the never-ending stream of problems and questions. Guided Help is an amazing new help feature in Windows Vista that will make it so easy for users to help themselves. You can find my screencast of Guided Help here.

I got in touch with Matthew Goldberg, the development lead on the Guided Help team to find out more about Guided Help. Here is what he had to say.

My commentary are surrounded with [square brackets] in italics.

The opinions expressed by Matthew Goldberg herein are his own personal opinions and do not represent his employer’s views in any way. If you would like to sue him, you can either ask Guided Help to ‘do it automatically’ for you, or let it ‘show you step-by-step’.

Who are you? Are you related to Whoopi Goldberg?

I am Matthew Goldberg, father of two and amateur musician. I am the development lead on the Guided Help team, building a cool new technology available in Windows Vista and currently in use on some Microsoft Knowledge Base articles. While not directly related to Whoopi, family legend has it that my Aunt’s best friend’s college roommate actually went to high school with her. [Rumour has it, my cousin’s father’s brother’s son is actually me.]

When and why did you join Microsoft?

I’ve been a developer at Microsoft since 1995, when I joined all the hullabaloo during the Windows 95 launch. It was a fun time to come on board! The summer before that I was a college intern at Microsoft and it was a fabulous time, I learned a lot and met a lot of really smart people. After that summer, I figured working full time at Microsoft would just be like that summer all year round, and apart from the rainy season, so far so good.

When did you start developing Guided Help?

Guided Help has really evolved over the past several years [has it really been that long] so it is hard to pinpoint exactly when the application as it appears today was really started. We have been trying different kinds of designs, and working with different partners to help us create the full experience, including authoring the actual articles that will run using Guided Help. Along with all of that, we have been making sure that it fits in with the look and feel of Windows Vista, which also means shipping the Beta releases and gathering feedback along the way that we can use to make Guided Help even better.

What was the inspiration for Guided Help?

It is a fact of life that sometimes when you are using your computer [wouldn’t know], things don’t always work the way you expect them to. However, sometimes the steps you need to take in order to help yourself can be quite confusing. For an example of some of this “inspiration,” read some of the troubleshooters in the Microsoft Knowledge Base, such as http://support.microsoft.com/kb/903275/en-us. Not everybody has a friend who works at a computer company who can help walk them through the steps they need in order to solve their problem. Well, that’s where Guided Help comes in [Knock knock. Who’s there. Guided. Guided who? Guided Help!]. We wanted to build something into the system, that could help walk you through the confusing parts and give you that assistance you needed automatically. While we were at it, we wanted to make it fun, intuitive, and really cool-looking. [Why would you want to do that]

Which technologies powers Guided Help? What is the Active Content Wizard?

Ooh, do you really want to get me started talking shop? Well, since you asked. The Guided Help runtime is primarily written in C++ with a healthy dose of COM. We have also written a few in-house tools that we use to author and test the Guided Help articles, these tools are written in C#, Managed C++, including interop with our C++ runtime. The C++ runtime depends on technologies such as mouse and keyboard hooks (these allow the user to try clicking and typing without necessarily allowing them to get off track and click the wrong thing), a bit of ATL (Microsoft Active Template Library), and some interesting math applied to GDI+ to create some of our fancy visual effects.

You can’t talk about the technologies behind Guided Help without talking about MSAA (Microsoft Active Accessibility). The technology which allows applications to expose their user interface (UI) programmatically to make them available to accessibility aids (such as screen readers), also makes those same applications’ UI visible to Guided Help. We use the MSAA API’s to find the right UI that is needed for each step of a Guided Help article. This same technology is what makes it possible for users to interact with the UI using their voice and Microsoft Windows Speech Recognition – in fact, I am also the dev lead for Speech Recognition, working with Oliver Scholz, whom you interviewed in September.

“Active Content Wizard,” or ACW for short, was basically our working code name as we were designing and building this technology. Nowadays we still use that name to refer to the technology that powers this system, while the name “Guided Help” is more like the name of the application itself Also all of our internal interfaces are named things like IACWThis and IACWThat, and rather than having to change all that code, we just stick with the old terminology! [Legacy FTW!]

How can developers ensure their applications is Guided Help compatible, and how would they create Guided Help tutorials for their own applications?

The most important thing you can do is to make sure your application is Accessible. Thankfully, MSAA is designed in such a way that it is very common for applications to gain accessibility support for free, provided you are using commonly-used user interface elements and controls. However, if your application is build using custom-made UI, make sure you include Accessibility on your to-do list. This will not only make sure that Guided Help can work over your application, but also Windows Speech Recognition, and many other accessibility aids on which many people depend.

We haven’t yet finished building the tools and infrastructure to fully support creating your own Guided Help tutorials. It is something that we can do ourselves today, but only within the framework of Windows Vista help or Microsoft Product Support. We are also providing a limited toolset to OEM’s and Corporations who want to try their hand at it, and we will see how that goes. Obviously it would be great if everybody who wanted to could create their own – so please stay tuned to find out more. If you want to keep track of what’s going on in our team, please be sure to read the Active Content Wizard blog and stay up-to-date.

Where do you see Guided Help going in the next revision of Windows?

Before I really know the answer to that question, there is so much to learn from the current version! Once people start using Windows Vista and try out Guided Help, everyone is going to have an opinion about where we should go next. I can’t wait to hear what people have to say, and I want to make sure I get the opportunity to hear all the feedback before jumping to conclusions about what might be the most important thing to do next. Maybe readers of your interview will send you some ideas – please let me know. [Nah. They’re a silent bunch.]

Some of the ideas we have been thinking about are what the best uses for Guided Help might be. In its current form it is really designed around Helping the user out of a tricky spot – maybe something they don’t know how to do, or something that they can’t get right. In the Microsoft Product Support articles, Guided Help is being used mainly as a Fix-It tool. But we realize that there are other areas with great potential… things like Tutorials, Guided Tours, or Troubleshooters. Certain designs in the current model might work better for some uses and not for others. So we are going to have to try authoring some of these other uses, and then see what works and what doesn’t. That should be plenty to keep us busy for a while!

End interview

Guided Help is great. If you haven’t tried it out already, I every Windows Vista user out there to try it out. Just type “guided help” into the Help tool search. The technical support industry is probably going to lobby the European Commission for the very reason that makes Guided Help so cool, it’s actually useful. Thanks to Matthew for taking time out to answer these questions, and also Andrew for brainwashing him into this.