Question

Qui gagne dans le débat « Low vs prototypage haute fidélité »? Devrait prototype zéro (P0) la première version du produit final? Ou devrait être P-0 toujours jetable? Quelle approche est la favorisation de l'industrie?

Excelent article de wikipedia: prototypage Logiciel

Était-ce utile?

La solution

Un prototype devrait toujours être un jetable - un prototype est utilisé pour prouver rapidement un concept et d'influencer la conception du produit réel. En tant que tel, beaucoup de choses qui sont importantes pour un produit réel (une architecture de pensée et la conception, la fiabilité, la sécurité, maintenabilité, etc.) tombent le long du chemin. Si vous ne prenez pas ces choses en compte lors de la construction de votre prototype, vous n'êtes pas vraiment construire un prototype plus.

Mon expérience avec des prototypes où le code directement transformé en un produit réel montre que le résultat final souffre à cause de cela - l'absence d'une véritable architecture de résultat beaucoup de code bricolé qui devait être constamment piraté ajouter nouvelles fonctionnalités. J'ai même vu un cas où la technologie originale choisie pour le développement rapide du prototype n'a pas été le meilleur choix pour le produit réel, et une réécriture complète était nécessaire pour V2.

Autres conseils

Ecrire le prototype, puis garder la refactorisation jusqu'à ce qu'il devienne le produit. La clé est de ne pas hésiter à factoriser si nécessaire.

Il est utile d'avoir quelques personnes qui travaillent là-dessus au départ. Avec trop de gens qui travaillent sur quelque chose, refactoring devient plus difficile.

Je pense que nous, les pédants, ont perdu cette bataille - prétendue « prototypes » (qui par définition doivent être réécrites à partir de zéro !!! -) sont en fait « évolué » en (souvent bancales "bêtas"), etc.

Aujourd'hui encore, je l'ai applaudi à la tentative intelligente par un de mes collègues de retrouver le Concept , même si le terme est une bataille perdue: il est la mise en place d'une manière des preuves concept de petits projets à développer (et, si le concept ne soit prouvé, transféré aux ingénieurs logiciels pour le prototypage réel, puis le développement).

L'idée est que, dans notre département, nous avons beaucoup de gens qui ne sont pas (et ne sont pas en fait supposé pour être -!) Les développeurs de logiciels, mais sont très intelligents, calée en informatique , et en contact quotidien avec la réalité « dans les tranchées » - ils sont ceux qui sont les plus susceptibles de sentir l'occasion d'une innovation potentielle qui pourrait avoir un impact réel une fois mis en œuvre en tant que « production- prêt » projet de logiciel. , Les gestionnaires de vendeurs compte, les analystes d'affaires, les gestionnaires de la technologie - de notre entreprise, ils sont tous souvent cette description correspondent

.

Mais ils ne vont pas à programmer en C ++, presque pas en Java, peut-être en Python, mais miles de « productionized » - en fait, ils sont beaucoup plus susceptibles de concocter une preuve de concept intelligent php, javascript, perl, bash, Excel + VBA, et diverses autres technologies "rapide et sale" nous ne voulons même pas rêve à propos productionizing et le soutien forevermore -)

en appelant leurs prototypes « preuves de concept », nous espérons les encourager à incarner leurs concepts audacieux sous une forme concrète (blabberings vague en langage naturel et bien agiter les mains étant moins utiles, et étranger à toute façon la culture de l'entreprise; -) et pourtant indiquer fortement que de tels projets, si la promotion d'exister entre les objectifs et les priorités des ingénieurs logiciels, ne doivent être programmées à partir de zéro - la preuve de concept sert, au mieux, comme un bon projet / spécifications croquis pour ce que les ingénieurs ont pour objectif pour, certainement pas être progressivement enrichi, mais refaits dès le départ racine -.)

Il est trop tôt pour dire à quel point cette idée fonctionne - demandez-moi en trois mois, lorsque nous évaluons les efforts du trimestre (en ce moment, nous sommes en train de fournir un plan pour eux, dans la foulée de l'évaluation dernière trimestre de entreprises et sage Ministère-entreprise -)

.

Réponse de BUNDALLAH, Hamisi

Un prototype simule généralement que quelques aspects des caractéristiques du programme final, et peut être tout à fait différent de la mise en œuvre éventuelle. Contrairement à ce que mes autres collègues ont suggéré plus haut, je ne conseillerais pas à mon patron d'opter pour le jeter modèle prototype. Je suis avec Anita à ce sujet. Étant donné les deux modèles prototypes et les conditions prévues, je conseille vivement la direction (mon patron) d'opter pour le modèle prototype évolutif. La société étant grande avec toutes les autres variables données telles que la complexité du code, la nouveauté du langage de programmation à utiliser, je ne voudrais pas utiliser jeter modèle prototype. Le jeter modèle prototype devient le point de départ à partir duquel les utilisateurs peuvent réexaminer leurs attentes et de clarifier leurs besoins. Lorsque cela a été réalisé, le modèle prototype est « jeté », et le système est développé officiellement en fonction des besoins identifiés (Crinnion, 1991). Mais cette situation, les utilisateurs ne connaissent pas toutes les exigences à la fois en raison de la complexité des facteurs donnés dans cette situation particulière. prototypage évolutif est le processus de développement d'un système informatique par un processus de raffinement progressif. Chaque amélioration du système contient une phase de développement de la spécification du système et des logiciels. Contrairement à la fois l'approche classique en cascade et le prototypage incrémental, qui a nécessité tout le monde pour obtenir tout droit la première fois cette approche permet aux participants de réfléchir sur les enseignements tirés du cycle précédent (s). Il est habituel de passer par trois ces cycles de raffinement progressif. Cependant, il y a rien qui empêche un processus d'évolution continue qui est souvent le cas dans de nombreux systèmes. Selon Davis (1992), un prototype évolutif reconnaît que nous ne comprenons pas toutes les exigences (comme nous l'avons dit plus haut que le système est complexe, l'entreprise est grande, le code sera complexe, et la langue est assez nouveau pour l'équipe de programmation). L'objectif principal lors de l'utilisation évolutionnaire Prototypage est de construire un prototype très robuste de manière structurée et d'affiner constamment. La raison est que le prototype évolutionnaire, une fois construit, forme le cœur du nouveau système, et les améliorations et les autres exigences sera construit. Cette technique permet à l'équipe de développement d'ajouter des fonctionnalités ou apporter des modifications qui ne peuvent être conçus pendant les exigences et la phase de conception. Pour qu'un système soit utile, il doit évoluer grâce à l'utilisation dans son environnement opérationnel prévu. Un produit est jamais « fait »; il est toujours mûrit comme le changement de l'environnement d'utilisation. Les développeurs essayent souvent de définir un système utilisant leur cadre le plus familier de référence - où ils sont actuellement (ou plutôt, l'état actuel du système). Ils font des hypothèses sur l'entreprise ainsi sera réalisée et la base de la technologie sur laquelle l'entreprise sera mise en œuvre. Un plan est adopté pour développer la capacité, et, tôt ou tard, quelque chose qui ressemble au système envisagé est livré. (CPS, 1997). Prototypes évolutionnistes ont un avantage sur Throwaway Prototypes en ce sens qu'ils sont des systèmes fonctionnels. Bien qu'ils ne peuvent pas avoir toutes les fonctionnalités que les utilisateurs ont prévu, ils peuvent être utilisés à titre provisoire jusqu'à ce que le système final soit livré. Dans évolutionnaire Prototypage, les développeurs peuvent se concentrer pour développer les éléments du système qu'ils comprennent au lieu de travailler sur le développement de tout un système. Pour minimiser les risques, le développeur ne met pas en œuvre des fonctionnalités mal compris. Le système partiel est envoyé aux sites clients. Comme les utilisateurs travaillent avec le système, ils détectent les possibilités de nouvelles fonctionnalités et de donner les demandes de ces fonctionnalités aux développeurs. Les développeurs prennent alors ces demandes d'amélioration ainsi que leurs propres pratiques et utiliser la configuration de gestion audio pour modifier les logiciels-exigencesspécification, mettre à jour la conception, recodage et refaites le test. (Bersoff et Davis, 1991). Cependant, les principaux problèmes de prototypage évolutif sont dus à une mauvaise gestion: Le manque d'étapes définies, le manque de réussite - toujours mettre hors ce qui serait dans le prototype actuel jusqu'à ce que le prochain, le manque d'une évaluation correcte, le manque de clarté entre un prototype et un système mis en place, le manque de l'engagement continu des utilisateurs. Ce processus nécessite un degré plus élevé d'engagement soutenu des utilisateurs pendant un laps de temps plus long que traditionnellement requis. Les utilisateurs doivent être constamment informés de ce qui se passe et être tout à fait conscients des attentes des « prototypes ».

Références

Bersoff, E., Davis, A. (1991). Impacts des modèles de cycle de vie de gestion de configuration logicielle. Comm. ACM.

Crinnion, J. (1991). Les systèmes de développement évolutionnaire, un guide pratique à l'utilisation du prototypage dans une méthodologie de systèmes structurés. Plenum Press, New York.

Davis, A. (1992). Prototypage opérationnelle: Une nouvelle approche de développement. Logiciel IEEE.

Productivité Software Consortium (SPC). (1997). Développement rapide évolutionnaire. CPS-CPS fixe 97057-CMC, la version 01.00.04.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top