Wizard (software)

A software wizard or setup assistant or multi-step form is a user interface that leads a user through a sequence of small steps, like a dialog box to configure a program for the first time. A complex, rare, or unfamiliar task may be easier with a wizard that breaks the task into simpler pieces. But a wizard may be a barrier to deeper understanding, and a substitute for clearer design.

History
Before the 1990s, "wizard" was a common term for a technical expert, comparable to "hacker." The 1985 textbook Structure and Interpretation of Computer Programs was nicknamed the "Wizard Book" for the illustration on its cover; its first chapter says, "A computational process is indeed much like a sorcerer's idea of a spirit."

When developing the first version of its desktop publishing software, Microsoft Publisher, around 1991, Microsoft wanted to help users create well-presented documents in spite of their lack of graphic design skills. Microsoft reasoned that, no matter the tools a program offered, users would not know how best to use them. Publisher's "Page Wizards" instead provided a set of forms to produce a complete document layout, based on a professionally designed template, which could then be manipulated with the standard tools.

Wizards had been in development at Microsoft for several years before Publisher, notably for Microsoft Access, which wouldn't ship until November 1992. Wizards were intended to learn from how someone used a program and anticipate what they may want to do next, guiding them through more complex sets of tasks by structuring and sequencing them. They also served to teach the product by example. As early as 1989, Microsoft discussed using voice and talking heads as guides, but multimedia-capable hardware was not yet widespread.

The feature spread quickly to other applications. In 1992, Excel 4.0 for Mac introduced wizards for tasks like building crosstab tables; Office 95 introduced the "Answer Wizard" for querying help pages with natural language; and Windows later used wizards for tasks like adding a printer, configuring an Internet connection, or installing new applications. By 2001, wizards had become commonplace in most consumer-oriented operating systems.

On the Mac OS, starting with tools like the Setup Assistant introduced in Mac OS 8.0, similar tools began to be called "assistants" (not to be confused with the Apple Newton's "Assist" feature). The "Setup Assistant" is run when the Macintosh starts up out of the box or after a fresh installation, and a similar process also takes place on Apple iOS. The "Network Setup Assistant" is similar to the Windows "New Connection Wizard." GNOME also refers to its wizards as "assistants". Oracle Designer used wizards for designing applications and databases.

The Microsoft Manual of Style (Version 3.0) advises technical writers to refer to these assistants as "wizards" and to use lowercase letters. But as wizards became ubiquitous, the term disappeared. Apps and websites may use wizard-like guided steps to "onboard" new users or guide them through a task, but these features are often not explicitly labeled a "wizard".

Example
The following screenshots show part of the seven-step installation wizard for the operating system Kubuntu. Each step is necessary, but unrelated to the others; they are presented one at a time, so as not to overwhelm. The user can go back and forward through the steps; early steps also have an option to quit. Options may default to a choice, so that a user without an opinion can accept the designer's best judgment. Progress through the steps is shown on the left. The last screen has no options or inputs, but summarizes what was done.

Criticism
Wizards have been criticized for being ponderous, stripping questions of context, and obscuring the underlying operations. The criticism is common enough that one guide to wizard design starts by addressing the popular perception that a wizard is "just a patch for a bad interface".

Alan Cooper sees wizards as segregating new and expert users, abdicating the responsibility of designing a single coherent interface; they are "grafted on to meet the marketing department's perception of new users. Experts rarely use them, and beginners soon desire to discard these embarrassing reminders of their ignorance. But the perpetual intermediate majority is perpetually stuck with them." He compares them to training wheels that must be easily removed. A wizard "attempts to guarantee success" by treating the user as a machine who merely sets the rhythm of the steps; when every option has a default, "the user learns that he merely clicks the Next button on each screen without critically analyzing why." Wizards often don't clarify the underlying concepts, he writes; "They are giving programmers license to put raw implementation model interfaces on complex features with the bland assurance that: 'We'll make it easy with a wizard.'"