• entries
70
185
• views
53400

# Introductory Interfaces, Mastery Interfaces

465 views

"Blender sucks! That UI is absolutely braindead"
"You just haven't
gotten it yet. Once you do, you'll appreciate a lot of the thought that went into it."
"Bullshit! Blender sucks, man!"

While half participating in yet another debate of the above sort, I remembered a comment from OK/Cancel about the concept of "mastery interfaces," UIs that facilitate expert actions but confound and befuddle the beginner. Such as the piano. One party (identities protected because of the strong negative reaction that one participant in particular tends to draw) was arguing that Wings 3D had a usable interface while the other was arguing that he had experienced much frustration with it. While I lacked (and will continue to lack for the forseeable future, as I have no use for pro-grade modelers, not being an artist myself) experience with Wings 3D, I eventually had to concede that both parties could be right. So I stepped up and said so.

You can imagine the sort of incredulity that garnered. "Let me explain." An interface can be well-suited to persons already familiar with a set of conventions peculiar to a system or activity, but horrible for a beginner. Such interfaces are called mastery interfaces, and they allow a near-seamless transferrence of concept to reality/execution, be it playing the piano, modeling a complex subdivision mesh or otherwise. The problem is that applications are typically tightly bound to their user interfaces, such that mastery interfaces force an application to be viable for master use only. Worse, the prevalence of mastery interfaces in certain domains makes the learning curve steeper than it needs to be.

This is why we need introductory interfaces. Introductory interfaces, as the name suggests, are tuned to the beginner and provide a gentle transition into the arcana of a given subject domain. To many people, MilkShape 3D is a modeler with an introductory interface. Introductory interfaces complement mastery interfaces by eliminating the burden of "broad appeal," enabling a product to target a certain category of user.

But is it possible for an application to present both introductory and mastery interfaces? I say yes. The key, in my estimation, is to accept that certain functionality is master-grade only, and thus does not need to be exposed via the introductory interface. In fact, there is already a class of applications that does this (albeit with variable results, due to other factors): Linux GUI utilities. Typically built as front-ends to command-line tools, the better ones only expose core or most frequently used functionality in their UI, understanding that masters will drop down to the console anyway.

In fact, it can be argued that the CLI is the mastery complement to the introductory GUI, generally speaking. Certain operations (I/O redirection, for instance) will never be elegantly expressed in GUIs, so why bother? Expose core, single-step functionality in the GUI and leave the masters to manually express themselves via the CLI.

Returning to 3D modelers - particularly Blender and Wings 3D, since they're open source - the installation process' user profile setup (we assume that robust software is aware of the fact that multiple users may exist on a single system, and it consequently stores profile data separately for each user) queries for a "usage level" which determines which interface is first presented. As the introductory user becomes familiar, or if s/he searches the help for a certain functionality or appears to be hunting around the menus, the application can then mention the existence of the mastery UI and provide instructions on how to enable it. For the first several sessions there will be a fairly obvious "revert to introductory interface" menu option or such, after which "full mastery mode" is entered and the user is assumed to know what s/he is doing. No more prompting and/or assistants.

I know a lot of people would like to see mastery interfaces for Windows and other Microsoft products!

That's an interesting idea. The idea of an evolving interface depending on user experience level is certainly within the realm of possibility, but i've not seen it put into practice. I would quite like to see such an introductory UI for Blender though [grin].

One thing you should know: Wings3D actually has an 'expert mode,' which, when enabled, unlocks a whole load more UI elements - like the ability to pick the axis you move things along from arbitrary geometry, magnets, and the like. It's disabled by default.

Hrm, I can certainly see how having an introductory interface would be appropriate for some applications. However, some application really shouldn't require an introductory mode since their cost inheritly would suggest that you should have experiance in the field (Maya, 3D Studio Max). I mean, it stands to reason that if you are going to be using one of these more expensive tools, then you have probably either taken classes on modelling, and hence will have been introduced to the interface and had some times to familiarize yourself with it, or you will have been in the field long enough to know what you want, and it's just a matter of getting familiar with the new "syntax" that the interface presents.

On the other hand, tools like IDE's could benefit from having an introductory mode and then a mastery mode. Weather this is a good thing, well, depends. But it would be one less obstacle in the way of aspiring developers (of any kind). Perhaps the best idea I've seen were explanitory tooltips for error messages, they would pop up when errors were found, and later you could move your mouse over the error and it would give you that same tool tip (along with a link to help). This was great for initially learning the interface, along with recognizing common mistakes that had been made. Imagine such a tool for say Visual Studio, where when you get an "undefined symbol 'xyz'" it would inform you that it can't find the implementation of said function, and that you might need to link to a library or ensure that you have defined the function.

Personally though, I've never had any trouble getting used to any interface that I've used. Maya, 3D Studio Max, various text editors, IDE's, compilers, pretty much anything and it only takes me a few minutes to recognize the common features and from there extrapolate how to get from A to B. Maybe this is just experience though. On the other hand, if people would just take the time to explore their interface, they would probably find it a bit easier to get where they want to go. An interface is like a picture, if you don't bother to explore it you won't see the little details, and it will not be familiar to you when it comes time for the art history exam.

Quote:
 Re: comment by Washu Hrm, I can certainly see how having an introductory interface would be appropriate for some applications. However, some application really shouldn't require an introductory mode since their cost inheritly would suggest that you should have experiance in the field (Maya, 3D Studio Max). I mean, it stands to reason that if you are going to be using one of these more expensive tools, then you have probably either taken classes on modelling, and hence will have been introduced to the interface and had some times to familiarize yourself with it, or you will have been in the field long enough to know what you want, and it's just a matter of getting familiar with the new "syntax" that the interface presents.
While true, the proliferation of open source alternatives is lowering the cost barrier to entry, which means that there will be people using products intended to compete (and we can debate endlessly about whether or not they actually do compete) who will not necessarily have made the investment in training tools.

As for IDEs, I think you're right, and I think it could be done quite easily. One of the biggest shortcomings I see is people not realizing that the Output window provides diagnostic information, and that the error codes of compiler/linker output is a search term in the related documentation, usually to a page that lists common causes and resolutions to the error. Simply leveraging tooltips to point this out could improve usability for beginners massively.

You're also right about attention to detail, but as developers/manufacturers/producers we have to cater to the characteristics of our audience. There is also the argument that if a significant portion of the audience exhibits a behavior, then it is legitimate. *shrug*

Quote:
 While true, the proliferation of open source alternatives is lowering the cost barrier to entry, which means that there will be people using products intended to compete (and we can debate endlessly about whether or not they actually do compete) who will not necessarily have made the investment in training tools.

Yes, low end tools, like blender and Wings 3D, are on the market, and I can see those tools providing an introductory interface to get the user familiar with the processes before presenting them with a master interface. However, my comment was primarily directed at the kinds of software you will find in the production environment, which would be Maya or 3D Studio Max. The kinds of people hired for those positions presumably have years of experiance, and thus the tools shouldn't require an introductory interface (although, that doesn't mean they couldn't incorporate one, as many modelling schools will use one or the other, or lightwave).
It's the same, imo, as for Visual Studio Enterprise Architect. If you are going to dish out the money for this product, or the MSDN subscription, then you should have the knowledge and skills to use it aready. While others, like VS Standard/Express and tools like #dev should certainly have introductory interfaces to get you up and running. That is to say: The cost of the tool typically determines your experties level. If you are a beginner, you're not going to dish out thousands of dollars for a piece of software.
Quote:
 As for IDEs, I think you're right, and I think it could be done quite easily. One of the biggest shortcomings I see is people not realizing that the Output window provides diagnostic information, and that the error codes of compiler/linker output is a search term in the related documentation, usually to a page that lists common causes and resolutions to the error. Simply leveraging tooltips to point this out could improve usability for beginners massively.

I know, and it wouldn't even be that hard to do. I could probably whip up an example for VS2k3 in a weekend. So why hasn't it been done? We do know that Microsoft does do usability studies. Heck, they have many whitepapers on the subject. So, it's not to say that they don't know how to make an interface newbie friendly. However, I do think that at a certain point, they assume that the tools are for experienced users, and hence the ability to figure out the interface intuitively is assumed (which for me is the case). But now they are introducing products, like Visual Studio Express Edition, which are targetted at the hobbyist developer, but yet the interface still isn't particularily friendly torwards newbies. Perhaps when you launch your express edition client the first time, if it would present you with a tutorial of the user interface... much like windows does.
Quote:
 You're also right about attention to detail, but as developers/manufacturers/producers we have to cater to the characteristics of our audience. There is also the argument that if a significant portion of the audience exhibits a behavior, then it is legitimate. *shrug*

Just because many professional programmers think:
for(int i = 0; i < 10; ++i) {
if(i == 5) break;
}
cout<<i<<endl;

is correct doesn't make it correct. Just because a significant portion of the population exhibits a particular behavior doesn't mean that you can't introduce newfangled tidbits into the system. Who knows, the majority may adopt it, or it might become the minority as fresh blood enters the field. Personally, I feel that anytime the majority feels that something is right, someone should start questioning why. Typically you will find that either the majority has blinded themselves to all other possibilities simply because humans like stability, or you will find that there is no logical reason for a particular practice.

## Create an account

Register a new account