Concept: Prototypes
Un prototype est une version initiale réduite de la solution système ou d'une partie de la solution système, construite rapidement et perfectionnée au fil des itérations pour tester et évaluer l'efficacité de l'ensemble de la conception envisagée pour résoudre un problème particulier.
Relations
Description principale

Utilisation

Les prototypes sont utilisés pour réduire les risques. Ils peuvent réduire l'incertitude concernant :

  • La viabilité métier d'un produit en cours de développement
  • La stabilité ou la performance d'une technologie clé
  • L'engagement pris par rapport au projet ou le financement : élaboration d'un petit prototype de démonstration du bien-fondé du concept
  • La compréhension des exigences
  • L'apparence d'un produit, sa convivialité

Un prototype peut aider à remporter l'adhésion sur un produit en montrant aux utilisateurs, aux clients et aux responsables des éléments concrets et exécutables.

La nature et l'objectif du prototype doivent rester bien clairs durant toute son existence. Si vous n'avez pas prévu que votre prototype devienne le produit final, ne décrétez pas soudainement qu'il doit le devenir sous prétexte qu'il fonctionne. Un prototype d'exploration et de comportement prévu pour tester rapidement quelques interfaces utilisateur devient rarement un produit robuste.

Types de prototypes

Vous pouvez voir deux choses dans les prototypes : ce qu'ils explorent et comment ils évoluent (ou ce qu'il en résulte).

Pour la première approche (ce qu'ils explorent), il existe deux types principaux de prototypes :

  • Un prototype de comportement, qui explore les comportements spécifiques du système.
  • Un prototype de structure, qui explore quelques questions technologiques et architecturales.

En ce qui concerne la seconde approche (comment ils évoluent), il existe aussi deux types de prototypes :

  • Un prototype d'exploration, dont on se débarrasse lorsqu'on en a terminé, appelé aussi prototype jetable.
  • Un prototype évolutif, qui évolue petit à petit pour finalement devenir le système final.

Prototypes d'exploration

Un prototype d'exploration est conçu comme une petite "expérience" pour tester quelques suppositions clés concernant le projet, sa fonctionnalité, sa technologie ou les deux. Ce peut être quelques centaines de lignes de code uniquement, créées pour tester la performance d'un composant logiciel ou matériel important. Ce peut être un petit prototype développé pour voir si le développeur comprend une exigence technique ou de comportement particulière ; un moyen de clarifier les exigences en quelque sorte.

Les prototypes d'exploration ont tendance à être intentionnellement "jetables" et les tests associés sont généralement informels. Leur conception est également très informelle, et est généralement assurée par un ou deux développeurs tout au plus.

Prototypes évolutifs

Comme leur nom l'indique, les prototypes évolutifs évoluent d'une itération à l'itération qui suit. N'étant pas de grande qualité au départ, leur code est retravaillé au fur et à mesure que le produit évolue. Afin de limiter la quantité de travail supplémentaire, ils sont conçus de manière plus formelle et testés plus ou moins formellement, même à un stade précoce. Au fur et à mesure que le produit évolue, les tests sont formalisés, comme c'est généralement le cas pour la conception.

Prototypes de comportement

Les prototypes de comportement sont en général des prototypes d'exploration. Ils n'essaient pas de reproduire l'architecture du système à développer mais se concentrent plutôt sur son comportement tel qu'il apparaîtra aux yeux des utilisateurs (l'"habillage"). Ce type de prototype est souvent appelé prototype "vite fait". Il n'est pas construit selon les standards relatifs au projet. Par exemple, Visual Basic peut être utilisé pour le langage des prototypes, alors que le langage C++ est prévu pour le projet de développement. Les prototypes d'exploration sont temporaires, conçus sans grand effort et jetés lorsqu'ils ne servent plus.

Prototypes de structure

Les prototypes de structure sont en général des prototypes évolutifs. Ils risquent davantage d'utiliser l'infrastructure du système final (l'"ossature ") et d'évoluer pour devenir finalement le système réel. Si le prototype est conçu à l'aide du langage et des outils de "production", il présente l'avantage supplémentaire de pouvoir tester l'environnement de développement et de permettre à quelques membres du personnel de se familiariser avec les nouveaux outils et les nouvelles procédures.