Frage

Wer hat in der "Low vs High fidelity prototyping" Debatte zu gewinnen? Sollte Prototyp-Null (P0) die erste Version des Endprodukts sein? Oder sollte P-0 immer ein Wegwerf sein? Welche Vorgehensweise ist die Industrie Favorisierung?

Sehr Guter Artikel aus Wikipedia: Software-Prototyping

War es hilfreich?

Lösung

Ein Prototyp sollte immer ein Wegwerf sein - ein Prototyp verwendet wird, um schnell ein Konzept unter Beweis stellen und das Design des realen Produktes beeinflussen. Als solche eine Menge Dinge, die für ein reales Produkt wichtig sind (eine durchdachte Architektur und Design, Zuverlässigkeit, Sicherheit, Wartbarkeit, etc.) auf der Strecke bleiben. Wenn Sie diese Dinge berücksichtigen tun, wenn Ihr Prototyp bauen, sind Sie nicht wirklich einen Prototyp bauen mehr.

Meine Erfahrungen mit Prototypen, wo der Code direkt in ein tatsächliches Produkt entwickelte sich zeigt, dass das End-Ergebnis, weil es leidet - das Fehlen einer realen Architektur führte in vielen gepflasterten-zusammen-Code, der ständig gehackt werden musste hinzufügen Neue Eigenschaften. Ich habe einen Fall sogar die Original-Technologie für die schnelle Entwicklung des Prototyps gewählt gesehen nicht die beste Wahl für das eigentliche Produkt war, und eine komplette Re-write war für V2 notwendig.

Andere Tipps

Sie den Prototypen, dann halten Sie es Refactoring, bis sie das Produkt wird. Der Schlüssel ist, nicht Refactoring zu zögern, wenn nötig.

Es hilft nur wenige Menschen auf es zunächst zu arbeiten haben. Mit zu vielen Menschen auf etwas arbeiten, wird Refactoring schwieriger.

Ich denke, wir, die Pedanten, diese besondere Schlacht verloren haben - angeblich „Prototypen“ (die definitionsgemäß sollte von Grund auf neu geschrieben werden !!! -) sind in der Tat „entwickelt“ werden in (oft unausgegoren "Betas"), etc.

Auch heute habe ich auf der smart Versuch eines Kollegen von mir applaudiert das zurückzuerobern Konzept , auch wenn der Begriff eine verlorene Schlacht ist: Er ist ein Weg für Beweise einrichten der Begriff kleine Projekte entwickelt werden (und, wenn das Konzept bewährt hat bekommen, um Software-Ingenieure für reale Prototypen übertragen, dann Entwicklung).

Die Idee ist, dass in unserer Abteilung, wir haben viele Menschen, die es nicht sind (und sind nicht in der Tat sollte sein! -) Software-Entwickler, aber ist sehr intelligent, computerbewandert und im täglichen Kontakt mit der Realität „in den Gräben“ - sie sind diejenigen, die am ehesten die Chance für einige potentielle Innovation riechen, die einmal echte Wirkung als „produktions- umgesetzt haben könnte ready“Software-Projekt. Verkäufer, Account Manager, Business-Analysten, IT-Manager - in unserem Unternehmen, sie alle oft passen diese Beschreibung

.

Aber sie sind nicht in C ++, so gut wie gar in Java, vielleicht in Python programmieren, gehen aber Meilen entfernt von „productionized“ - in der Tat sind sie viel eher einen Smart Proof of Concept in PHP zu schüren, Javascript, perl, bash, Excel + VBA und diverse andere "quick and dirty" Technologien, die wir wollen nicht einmal zu Traum über productionizing und Unterstützung für immer und ewig! -)

So durch ihre Prototypen „Proof of Concepts“ zu nennen, hoffen wir, sie zu ermutigen, ihre gewagte Konzepte in konkreter Form (vagee natürliche Sprache blabberings und viele Wellen von Händen der Unternehmenskultur sind am wenigsten nützlich und fremd zu verkörpern sowieso; -) und noch scharf zeigen, dass solche Projekte, wenn gefördert unter den Software-Ingenieuren die Ziele und Prioritäten existieren, haben DO von Grund auf neu programmiert werden - der Proof-of-concept dient allenfalls als guten Entwurf / Skizze spec für das, was die Ingenieure für wollen, auf jeden Fall schrittweise angereichert, um nicht zu werden, sondern von der Wurzel bis nochmals gemacht -).

Es ist früh zu sagen, wie gut diese Idee funktioniert - fragen Sie mich in drei Monaten, wenn wir Quartal Bemühungen (jetzt bewerten, wir nur einen Plan für sie, auf den Fersen des Auswertens Bereitstellung letzten Quartal Abteilungs- und Firmenweise Unternehmen! -)

.

Antwort von BUNDALLAH, Hamisi

Ein Prototyp simuliert typischerweise nur einige Aspekte des Merkmals des endgültigen Programms und kann von der eventuellen Umsetzung völlig unterschiedlich sein. Im Gegensatz zu dem, was meine anderen Kollegen oben vorgeschlagen haben, würde ich meinen Chef nicht raten, für das wegzuwerfen Prototyp-Modell zu entscheiden. Ich bin mit Anita zu diesem Thema. Angesichts die zwei Prototypen und die Umstände zur Verfügung gestellt, würde ich stark das Management (mein Chef) beraten für das evolutionäre Prototyp-Modell zu entscheiden. Das Unternehmen ist groß und mit allen anderen Variablen wie die Komplexität des Codes angegeben, verwendet die Neuheit der Programmiersprache wird, würde ich nicht Prototypmodell wegzuwerfen verwenden. Das wegzuwerfen Prototyp-Modell wird zum Ausgangspunkt, von dem Benutzer kann ihre Erwartungen erneut prüfen und ihre Anforderungen klären. Wenn dies erreicht ist, wird der Prototyp-Modell ‚weggeworfen‘, und das System formal auf der Grundlage der identifizierten Anforderungen entwickelt (Crinnion, 1991). Aber mit dieser Situation können die Anwender wissen nicht alle Anforderungen auf einmal aufgrund der Komplexität der in dieser besonderen Situation gegeben Faktoren. Evolutionary Prototyping ist der Prozess, ein Computersystem durch einen Prozess der schrittweisen Verfeinerung der Entwicklung. Jede Verfeinerung des Systems enthält eine Systemspezifikation und Softwareentwicklungsphase. Im Gegensatz zu den beiden traditionellen Wasserfall Ansatz und inkrementelle Prototyping, die jeder benötigt alles gleich beim ersten Mal bekommen dieser Ansatz die Teilnehmer auf die Lehren aus dem vorherigen Zyklus (en) gelernt reflektieren können. Es ist üblich, drei solche Zyklen der schrittweisen Verfeinerung zu gehen. Allerdings gibt es nichts, einen Prozess der kontinuierlichen Entwicklung zu stoppen, die oft der Fall in vielen Systemen ist. Laut Davis (1992), ein evolutionäres Prototyping erkennt an, dass wir alle Anforderungen nicht verstehen (wie wir oben gesagt haben, dass das System komplex ist, ist das Unternehmen groß ist, wird der Code komplex sein, und die Sprache ist ziemlich neu in das Programmierteam). Das Hauptziel bei der Evolutionary Prototyping ist einen sehr robusten Prototypen in einer strukturierten Art und Weise zu bauen und es ständig zu verfeinern. Der Grund dafür ist, dass der evolutionäre Prototyp, wenn gebaut, um das Herz des neuen Systems bildet, und die Verbesserungen und weitere Anforderungen gebaut werden. Diese Technik ermöglicht es das Entwicklungsteam Funktionen hinzufügen oder Änderungen vornehmen, die nicht in den Anforderungen und Designphase konzipiert werden könnten. Für ein System, um nützlich zu sein, muss es durch den Einsatz in seiner vorgesehenen Betriebsumgebung entwickeln. Ein Produkt wird nie „fertig“; es reift immer als die Nutzungsumgebung ändern. Entwickler oft versuchen, ein System mit ihren bekanntesten Referenzrahmen zu definieren -, wo sie sind zur Zeit (oder besser gesagt, der aktuelle Systemstatus). Sie machen Annahmen über die Art und Weise Geschäfte getätigt werden und die Technologiebasis, auf das das Unternehmen umgesetzt werden. Ein Plan wird erlassen, um die Fähigkeit zu entwickeln, und früher oder später, etwas das in Betracht gezogen System ähnelt geliefert. (SPC, 1997). Evolutionäre Prototypen haben einen Vorteil gegenüber Throwaway Prototypen, dass sie Funktionssysteme. Obwohl sie nicht alle Funktionen, die Benutzer geplant haben können, können sie auf Interimsbasis verwendet werden, bis das endgültige System geliefert wird. In Evolutionary Prototyping können Entwickler selbst konzentrieren Teile des Systems zu entwickeln, die sie auf die Entwicklung eines ganzen Systems, anstatt zu arbeiten verstehen. Um das Risiko zu minimieren, wird der Entwickler nicht schlecht verstanden Funktionen implementieren. Das Teilsystem ist an Kundenstandorten gesendet. Da die Nutzer mit dem System arbeiten, erkennen sie Möglichkeiten für neue Funktionen und geben Anfragen für diese Funktionen für Entwickler. Entwickler dann diese Erweiterungsanforderungen zusammen mit ihrer eigenen und verwenden Sound-Konfiguration-Management-Praktiken, die Software-Anforderungen sich ändernSpezifikation, aktualisieren Sie das Design, Recode und erneut testen. (Bersoff und Davis, 1991). die Hauptprobleme mit evolutionärem Prototyping jedoch aufgrund schlechter Managements sind: Mangel an definierten Meilensteinen, den Mangel an Leistung - immer aufzuzuschieben, was im gegenwärtigen Prototyp bis zum nächsten sein würde, den Mangel an sachgemäßer Beurteilung, Unklarheit zwischen einem Prototyp und ein implementiertes System, Mangel an fortgesetztem Engagement von den Benutzern. Dieser Prozess erfordert ein höheres Maß an nachhaltigem Engagement von den Benutzern für einen längeren Zeitraum als traditionell erforderlich. Benutzer müssen ständig darüber informiert werden, was los ist, und seine ganz bewusst die Erwartungen der ‚Prototypen‘.

Referenzen

Bersoff, E., Davis, A. (1991). Auswirkungen von Life Cycle Modelle aus Software Configuration Management. Comm. ACM.

Crinnion, J. (1991). Evolutionary System Development, ein praktischer Leitfaden für den Einsatz von Prototypen im Rahmen einer strukturierten Systeme Methodik. Plenum Press, New York.

Davis, A. (1992). Operational Prototyping: Ein neuer Entwicklungsansatz. IEEE Software.

Software Productivity Consortium (SPC). (1997). Evolutionary Rapid Development. SPC dokumentiert SPC-97057-CMC, Version 01.00.04.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top