web-dev-qa-db-fra.com

Quand un prototype devient-il un logiciel alpha?

Après avoir dépassé la phase des prototypes papier ou des prototypes construits dans quelque chose comme Axure, nous construisons souvent des prototypes Web rapides et sales en HTML, CSS et Javascript. Jusqu'à présent, nous avons adopté la même approche que pour tout autre prototype, en ce sens qu'ils sont destinés à être testés, utilisés pour recueillir les commentaires des utilisateurs et éventuellement rejetés.

Cependant, récemment, nous avons été sollicités à plusieurs reprises par des clients pour ajouter continuellement des fonctionnalités à ces prototypes jusqu'à ce qu'ils deviennent essentiellement un produit viable minimal. Quand la transition doit-elle généralement se faire du prototype jetable au logiciel alpha dans le processus UX?

30
gotohales

J'espère que la réponse à la question est jamais.

Un prototype est censé être un test. Construit en utilisant l'approche la plus "hacky" avec le moins de temps pour obtenir une rétroaction initiale sur la viabilité d'un concept.

L'alpha est quelque chose que vous donnez aux utilisateurs réels. Il s'agit de la version, en cas de succès, que vous espérez utiliser pour devenir la version bêta et éventuellement le produit que vous publiez. J'espère que votre alpha est construit sur une base suffisamment solide sur laquelle vous pouvez vous baser.

Un prototype hacky fournit généralement une base très médiocre. Si vous avez un prototype basé sur un cadre approprié (très rare et je me demande si vous auriez pu vous en tirer avec un prototype plus faible), alors lorsque toutes les fonctionnalités de votre MVP sont terminées et que vos développeurs estiment qu'ils ont une stabilité suffisante pour prendre en charge votre nombre X de clients alpha. Et vous avez un plan en place pour gérer les bugs des clients, etc ... alors vous pouvez commencer à tester alpha votre logiciel.

Sinon ... veuillez laisser le prototype comme prototype et construire votre alpha correctement à partir de zéro.

Deux cents d'un concepteur qui a vu plus d'un prototype devenir le code produit réel et le cauchemar résultant de l'équipe essayant de s'appuyer sur cette fondation fragile.

77
nightning

Travaillant principalement en tant qu'indépendant/indépendant sur des projets liés au site Web, je dirais que c'est la décision du développeur/concepteur s'il s'agit d'un prototype (fonctionnel) ou d'une version alpha (buggy). Un prototype n'est jamais destiné à être public alors qu'une version alpha l'est de manière robotique. La frontière entre ces deux est difficile à tracer - mais pour moi/avec les projets web, c'est le moment où j'ose dire "nous sommes en ligne".

Ou pour citer le cercle de vie du logiciel de relâchement tel qu'il peut être trouvé sur wikipedia - mais selon mes propres mots: une version alpha est une (première) version d'un logiciel - un prototype précède.

7
tillinberlin

Contrairement au soir, j'espère que la réponse à la question est toujours.

Sur les conceptions détaillées

Que donnez-vous d'autre dans votre conception livrable au développeur si ce n'est une conception complète spécifiée qui, idéalement, est la même que celle que vous avez utilisée dans vos tests utilisateur à l'aide de prototypes?

D'après mon expérience, si vous laissez n'importe quelle pierre vierge avec votre conception - c'est-à-dire n'importe quel endroit pour l'interprétation - les développeurs trouveront toutes sortes de solutions qui peuvent très bien être contre-utilisables.

Et puis, si vous utilisez le prototype A.01 dans les tests mais que vous donnez ensuite la conception A.05 aux développeurs, l'écart entre les deux n'est pas testé.

Il ne fait aucun doute que les premiers prototypes sont souvent limités aux principaux défis de conception, mais les derniers devraient, à mon avis, être aussi proches que possible de la réalité.

Prototypes codés à l'ère moderne

De nos jours, où de nombreuses conceptions impliquent un excès d'interactions (et d'animations), les prototypes fonctionnels deviennent de plus en plus importants. Personnellement, les exigences interactives de certaines conceptions signifient que leur définition dans un document statique n'a aucun sens. Je me retrouve parfois à livrer des conceptions avec un prototype interactif (un site Web réel) disant "c'est comme ça que ça devrait fonctionner" et j'épelle seulement dans le document de conception des choses que vous ne pouvez pas montrer (ou pas évidentes) sur un prototype interactif (par exemple, "Trier par "actif" signifie par l'horodatage le plus récent des messages et des réponses ").

Prototypes déployés

Ayant passé mon temps en tant que développeur, j'ai récemment abandonné complètement les wireframes et sauté directement de l'esquisse excessive aux prototypes de travail en utilisant HTML, CSS et AngularJS. Le backend est tout un bout simulant le système réel, mais le frontal, dans un certain nombre de cas au moins, peut être copié-collé sur le système réel.

Cependant, comme mentionné le soir, la vitesse est critique pour ces prototypes, donc bien que le prototype fonctionne comme prévu, son code est assez sale dans la plupart des cas (vous ne passez pas de temps à le coder correctement, vous en avez juste besoin pour fonctionner). Un travail de refactorisation supplémentaire est donc souvent nécessaire.

4
Izhaki

Je pense que cela dépend de votre méthodologie logicielle. Cela me rappelle en quelque sorte eXtreme Programming (XP), où vous commencez avec la solution la plus simple et continuez à ajouter de nouvelles fonctionnalités à travers de courts cycles de développement.

Si vous suivez une méthodologie comme celle-ci, vous pouvez effectuer la transition lorsque les principales fonctionnalités sont incluses.

Je peux être d'accord avec les réponses précédentes mais je vois que ce n'est pas toujours possible. Dans de nombreux projets clients réels, vous n'avez pas la liste complète et fermée des exigences. Dans de nombreux cas, vos clients ont une connaissance très limitée de ... beaucoup de choses. Vous avez donc une liste dynamique de fonctionnalités à implémenter qui peuvent augmenter (ou même diminuer). Résumant:

  • Prototype: une simple preuve de concept que vous pouvez montrer à votre client.
  • Alpha: toutes (ou la plupart) des fonctionnalités principales implémentées.
  • Bêta: toutes les fonctionnalités implémentées.
  • Version: approbation bêta + de votre client. Cela signifie testé avec succès par votre client.

Remarque: Si vous suivez cette méthodologie, vous testez chaque fonctionnalité que vous implémentez.

Source: http://en.wikipedia.org/wiki/Extreme_programming

2
FranMowinckel

tl; dr

OUI

Systèmes de versioning

Versions sémantiques n'est que l'une des nombreuses façons de versionner/nommer vos étapes vers le produit final. Et alpha n'est qu'une partie de l'idée Version sémantique. Dans d'autres systèmes, il n'y a rien de tel qu'une version Alpha.

Certains systèmes de numéros de version aspirent à simplement étiqueter les changements dans une interface, mais il y a beaucoup dans l'expérience humaine qui se situe en dehors de cela. Parfois, une version n'est qu'un chiffre, mais parfois ce que nous voulons vraiment, c'est un poème.

Citation: version sentimentale

(Soyez dans) Contrôle de version

De nos jours, tous les produits logiciels devraient utiliser un VCS Système de contrôle de version Depuis le tout début. Cela donne aux développeurs et aux concepteurs la possibilité d'itérer rapidement, de conserver des éléments séparés sur différentes branches et de fusionner des pièces de la variante A.1 à la variante A.23 et de présenter la différence. Tant que votre "prototype" est sous contrôle de version, il fait déjà partie du produit final.

Astuce: avec pour par exemple Git vous pouvez diviser les choses en branches ou sous-arbres orphelins pour les décomposer.

Le workflow a changé - Votre boîte à outils aussi

Avec des outils modernes comme Yeoman qui vous permettent d'utiliser rapidement des générateurs bootstrap votre Application. Nous sommes au-delà des jours de prototypes pour le front-end des sites Web. Nous commençons par ce qui est réel. Nous avons des outils comme Grunt , Gulp , Robo et d'autres exécuteurs de tâches qui nous aident à sauter l'étape de prototypage et sauter directement dans des échafaudages que nous utiliserons dans la production.

Conclusion

Si vous obtenez un no par quelqu'un, alors il vient de se retrouver avec une boîte à outils de style 1998. Les applications d'échafaudage sont ce qui se passe maintenant. La seule chose dont vous vous moquez est la base de données. Et même pour cela, vous avez Mock frameworks .

2
kaiser

Je dirais qu'un proptype a constitué des données sur chaque page, souvent les données sur différentes pages ne sont pas liées les unes aux autres. Par exemple. il montre un concept de telle manière qu'il n'est clairement pas utilisable dans la vie réelle.

Mais un alpha permet aux données d'être enregistrées et la prochaine fois qu'il démarre, il utilise les données enregistrées.

Souvent, un alpha "fera moins" que le prototype, car le prototype essaie de montrer tous les concepts, mais l'alpha a juste les pages les plus nécessaires pour permettre à quiconque de l'utiliser.

0
Ian

Prototype: Version de démonstration/test avec certaines fonctionnalités encore manquantes/incomplètes

Alpha: Toutes les fonctionnalités sont complètes

Beta: Toutes les fonctionnalités sont complètes, aucun bogue connu

(Au moins en théorie;))

0
Roman Reiner