# Assistant (logiciel)

En informatique, un assistant logiciel (en anglais Wizard = « sorcier » ou « magicien ») est un programme qui permet d'automatiser certaines tâches, comme l'installation ou le paramétrage.
Il se matérialise par une série de boîtes de dialogue guidant l'utilisateur et proposant des choix (répertoire d'installation, personnalisation, etc.).
La plupart des systèmes d'exploitation proposent une aide utilisateur basée sur ce principe, par exemple Mac OS X (Setup Assistant). Dans l'environnement GNOME/Linux, on trouve le terme « druids ». De nombreux sites web, par exemple pour gérer des demandes de réservation, font appel à ce type d'interface, ainsi que des outils comme Oracle Designer par exemple. Le concept a été intensément utilisé dès les premières versions de Microsoft Windows.

## Histoire

Avant les années 1990, "wizard" était un terme courant pour désigner un expert technique, un peu comme "hacker".
Lorsqu'elle a développé la première version de son logiciel de publication assistée par ordinateur, Microsoft Publisher, vers 1991, Microsoft souhaitait permettre aux utilisateurs n'ayant aucune compétence en matière de conception graphique de créer des documents de qualité. Publisher s'adressait à des non-professionnels et Microsoft pensait que, quels que soient les outils dont disposait le programme, les utilisateurs ne sauraient pas quoi en faire. Les "assistants de page" de Publisher fournissaient plutôt un ensemble de formulaires permettant de produire une mise en page complète d'un document, basée sur un modèle conçu par des professionnels, qui pouvait ensuite être manipulé avec les outils standard.
Les assistants étaient en cours de développement chez Microsoft depuis plusieurs années avant Publisher, notamment pour Microsoft Access, qui ne sera pas commercialisé avant novembre 1992. Les assistants étaient destinés à apprendre de la façon dont une personne utilisait un programme et à anticiper ce qu'elle pourrait vouloir faire ensuite, en la guidant dans des ensembles de tâches plus complexes en les structurant et en les séquençant. Ils servaient également à enseigner le produit par l'exemple. Dès 1989, Microsoft a envisagé d'utiliser des voix et des têtes parlantes comme guides, mais le matériel compatible avec le multimédia n'était pas encore très répandu.
Cette fonctionnalité s'est rapidement étendue à d'autres applications. En 1992, Excel 4.0 pour Mac a introduit des assistants pour des tâches telles que la création de tableaux croisés, et Windows a ensuite utilisé des assistants pour des tâches telles que la configuration de l'imprimante ou d'Internet. En 2001, les assistants étaient devenus monnaie courante dans la plupart des systèmes d'exploitation grand public, bien qu'ils ne portent pas toujours le nom d'"assistant".
Sur le système d'exploitation Mac, à partir d'outils tels que l'assistant de configuration introduit dans Mac OS 8.0, des outils similaires étaient (et sont toujours) appelés "assistants" (à ne pas confondre avec la fonction "Assist" de l'Apple Newton). L'"assistant d'installation" est lancé lorsque le Macintosh sort de la boîte ou après une nouvelle installation, et un processus similaire a également lieu sur Apple iOS. En dehors de la première installation, d'autres assistants comme l'"Assistant de configuration réseau" sont similaires à l'"Assistant de nouvelle connexion" de Windows. GNOME fait également référence à ses assistants en tant qu'"assistants".
Aujourd'hui, une expérience de type assistant est souvent utilisée pour "embarquer" les utilisateurs la première fois qu'ils ouvrent une application. De nombreuses applications Web, par exemple les sites de réservation en ligne, utilisent le paradigme de l'assistant pour mener à bien de longs processus interactifs. Oracle Designer utilise également les assistants de manière intensive. Le Microsoft Manual of Style for Technical Publications (version 3.0) conseille vivement aux rédacteurs techniques de désigner ces assistants par le terme "assistants" et d'utiliser des lettres minuscules.

## Différents types d'assistants

Il existe des assistants logiciels de différents types:
* assistant d'installation
* assistant de configuration
* assistant de connexion internet
* assistant de migration