De même que les
industriels commencent toujours par procéder à un
prototypage avant de construire de coûteuses usines afin de mettre en évidence les défauts qui n'avaient pas été imaginés, il est conseillé au concepteur de logiciels de réaliser une
maquette, ou un
prototype (ou les deux) pour tester la validité de sa conception, et recevoir les remarques des utilisateurs (il est en effet bien plus facile de comprendre une démonstration sur une maquette que de vérifier des spécifications écrites).
- Une maquette effectue ses entrées-sorties sur des fichiers simulés (par exemple en mémoire) afin de permettre quelques tests rapides de fonctionnalités, et de prendre l'avis des futurs utilisateurs. Il fonctionne souvent sur un système différent de celui qui sera utilisé (par exemple sur un PC pour une application destinée à un mainframe).
- Un prototype, lui, travaille sur les fichiers réels de l'entreprise ainsi que sur le réseau réel. Il est susceptible de fonctionner réellement dans le cadre d'un utilisateur. Il ne lui manque plus que les optimisations (assez souvent, la réécriture de tout ou partie du prototype en langage compilé permettant son usage intensif sans consommation excessive de ressources).
Le premier jet d'un programme étant assez souvent réécrit, le programmeur n'y perd rien de toute façon. Il évite aussi de s'enfermer ainsi dans des choix prématurés erronés qu'il lui serait difficile de remettre en cause une fois le programme écrit dans le langage final. En effet ce dernier, s'il donne une maîtrise beaucoup plus grande des détails d'exécution, est pour cette raison bien moins lisible qu'un simple langage de prototypage.
Voir aussi