Frage

Angenommen, Sie haben ein konkretes Projekt zur Hand haben, können sie auf Teile geteilt werden, und Sie sind nicht ganz sicher über alle Schwierigkeiten, die entstehen werden. Es ist von fundamentaler Bedeutung.

  • Wie entscheiden Sie, ob ein Teil Software-Produkt oder Ihren eigenen Code verwenden sollte? (Wenn man bedenkt, dass einige Tools sind genial, aber viel Zeit in Anspruch nehmen zu lernen)
  • Wie wählen Sie die richtige Software-Produkt?
  • Wie viel Zeit (in Prozent) sollte diese Phase das richtige Produkt der Wahl, wenn überhaupt, nehmen, und wie viel Zeit ein einzelnes Produkt zu bewerten?
  • Gibt es eine Möglichkeit zurück wird o.k Ihre Meinung zu ändern, nachdem Bemühungen in einem Produkt setzen, und fand es nicht geeignet?

Ich würde gerne alle Faustregeln über diejenigen hören.

War es hilfreich?

Lösung

Wie bei jeder Technik ist die Schwierigkeit, eine gute Lösung auf einen sehr großen Lösungsraum basierte Komponieren. Es so viele Möglichkeiten, um dies zu realisieren, da es Entwicklern.

Ich würde normalerweise einige Zeit das Verständnis des Problems verbringen und es klar und knapp wie möglich unter Angabe, vorzugsweise in schriftlicher Form. Die Problembeschreibung vollständig von allen möglichen Lösungen abstrahiert werden soll. Als nächstes würde ich normalerweise verfügbar Einschränkungen aufgelistet, die zu der Lösung (Zeit, Budget, rechtliche, politische, Leistung, Benutzerfreundlichkeit, Geschick Verfügbarkeit innerhalb Teams und so weiter).

angewandt werden muß

Dann wird die Theorie geht, dass Sie auf dem Markt für etwas suchen müssen, die das Problem und erfüllt die Beschränkungen zugleich löst. In der Praxis ist das Verfahren nicht geradlinig: Sie versuchen, Marktkategorien zu identifizieren, die nützlich sein, wahrscheinlich sind, dann erforschen sie, sehen, was verfügbar ist, und versuchen ständig, die Lücke zwischen den Zwängen und Fähigkeiten so weit wie möglich zu reduzieren, oft zurück gehen und erneuten Besuch und die Zwänge Neuverhandlung.

Ein paar allgemeine Tipps:

  1. Während die Forschung kommt immer wieder auf das ursprüngliche Problem.

  2. Es gibt immer mehr als eine Lösung ist, versucht Breite zu erweitern (die Konzentration auf sehr unterschiedliche Weise zur Lösung des Problems) des Suchraumes vor tiefer gehen.

  3. Seien Sie auf eine Reihe von Optionen klar, dass es sich lohnt, die Nachforschungen anstellen, und viel Zeit wert auf jeden von ihnen zu verbringen, bevor sie eine Entscheidung, ob weiter zu untersuchen.

  4. Es ist selten lohnt, eine optimale Lösung zu finden, vor allem dann technologischen Landschaft sehr schnell ändert sich ständig. Suchen Sie nach einer Lösung, die gut genug ist: „ The Paradox of Choice - Warum mehr ist weniger .

  5. Es ist selten wert Wende für die Nutzer um Hilfe auf die Wahl zwischen mehreren Optionen (es sei denn, sie Software-Experten sind). Wenn Sie eine Reihe von Optionen alle suchen gleichermaßen attraktiv haben das heißt, müssen Sie gehen zurück und besser zu verstehen, das ursprüngliche Problem, es ist wahrscheinlich, dass Sie eine Anforderung oder zwei verpasst haben.

  6. Einige weitere Hinweise zur dritte mit -Partei Komponenten (bezieht sich auf GUI-Komponenten, aber leicht auch auf andere Software-Bereiche anzuwenden).

  7. Und noch mehr Hinweise auf Scoping, das Komponieren und für ein Projekt der Erforschung .

Andere Tipps

Ihre Entscheidungen zu ändern, ist wie Ihr Entwurf für ein Haus zu ändern, während es bereits gebaut.

Es wird ganz davon ab, was Sie in Zeit und Geld zu diesem Zeitpunkt ausgegeben haben.

Einige Überlegungen:

0) Verstehen Sie das Problem in klaren und einfachen Worten vor Beginn. Wissen, was entscheidend ist, um es erfolgreich ist und dann diese Liste verwenden, um festzustellen, ob eine Software, Sprache oder Werkzeug wird ihm helfen, und bei was Kosten und wenn die Kosten überwiegt der Nutzen.

1) ein crammer Zeitplan verwenden. Baut sie in der Reihenfolge von dem, was Sie bauen würden, wenn Sie nur 1 Tag haben oder 1 Woche und nicht mehr daran zu arbeiten. Es ist erstaunlich, wie viel spielt keine Rolle mehr, wenn Sie 50% der Funktionen bei 100% der Qualität zu tun haben. Konzentrieren Sie sich auf Wert, Wert, Wert. Lesen Sie so etwas wie 37 Signal Buch Getting Real für mehr zu diesem Thema.

2) nicht neu erfinden das Rad. Es ist immer einfacher, etwas von Grund auf neu zu bauen scheint. Sofern Sie einen Bruchteil der Implementierung tun, und es ist wirklich einfacher, das heißt, Sie können Abstraktion vermeiden, bis Sie vergessen, was Sie bauen, sollten Sie es. Wenn Sie es schneller aufbauen können, besser, billiger und in der gleichen Menge an Zeit, tun Sie es.

3) Kennen Sie die Eigenschaften Ihrer Werkzeuge und die Vorteile irgendwelche Werkzeuge benötigen eine Lösung zu geben. Sie sollten mit oder zumindest vertraut sich bewusst sein viele der Werkzeuge gibt, die Sie kann oder kann nicht integriert werden.

4) Sprache wählen, die verwendet wird, eine Menge Probleme zu lösen. Die Chancen sind, werden Sie viele große Bibliotheken und Tools zum Erstellen Ihrer Software finden, die Ihre Zeit sparen. Wenn Sie brauchen etwas, das kann liefert, laufen, und Sie können auf den Smarts von anderen lehnen, verwenden Sie etwas etabliert, oder eine Sprache, die .NET oder Java leicht wenn es sein muss zugreifen können.

Für jedes Teil Ihrer Software als Software-Komponente / Paket erkennen:

  1. Wie entscheiden Sie, ob ein Teil Software-Produkt oder Ihren eigenen Code verwenden sollte? (Wenn man bedenkt, dass einige Werkzeuge sind fantastisch, aber viel Zeit in Anspruch nehmen zu lernen)

    • Stellen Sie sich, ob die Komponente, die Sie erwägen, ein Teil Ihres Produktes wichtigsten Kerngeschäft ist.

      • Wenn nicht, dann ist es in der Regel besser, eine bestehende Lösung zu verwenden und nicht zu viel Zeit auf sie senden.

      • Wenn es dann sicher ist, macht es kein existierendes Produkt, das besser ist als das, was Sie planen. - Es ist, sollten Lizenzen, um es statt der Entwicklung Ihres Produkts

      • Kauf.
    • Online-Suche für ähnliche Komponenten (kommerziell, Open Source und sogar Artikel / Demo-Source-Code).

      • Führen Sie einen von ihnen alle Ihre Anforderungen aus den Komponenten implementieren?
      • Wie viel kosten sie, würde es mehr kosten zu entwickeln und halten eine ähnliche Komponente?
      • Was sind die Lizenzbedingungen? - Sind sie für Ihr Produkt OK
      • ?
      • Wenn die Komponente eine Benutzerschnittstelle enthält, ist es plesent zu sehen und leicht zu bedienen?

      • Wenn Sie ja auf alle oben beantwortet dann tun, um die Komponente selbst nicht entwickeln.

      • Wenn nicht:

      • Ist die Komponente Open-Source oder in einem Artikel / Demo-Code veröffentlicht? - Wenn ja, robust es, könnten Sie den Code nehmen ein es verbessern oder es als ein Beispiel verwenden, um Sie Code zu helfen schreiben, die für Ihre Anforderungen besser geeignet ist? -. Wenn dies der Fall Ihren eigenen Code, als Teil Ihrer eigenen Komponente Verwendung Code schreiben, ist nicht von Grund auf neu entwickelt

      • Wenn Ihre Antwort auf den obigen nein, dann werden Sie Ihre eigenen entwickeln müssen (oder Sie an den falschen Stellen sind).

  2. Wie wählen Sie die richtige Software-Produkt?

    • Siehe Antworten auf die 1.
  3. Wie viel Zeit (in Prozent) sollte diese Phase das richtige Produkt der Wahl, wenn überhaupt, nehmen, und wie viel Zeit ein einzelnes Produkt zu bewerten?

    • Löschen einen ganzen Tag, für bestehende Komponenten suchen, lesen Sie über sie (Funktionen, Preise, Bewertungen) und Download + Installation von bis zu 5 von ihnen.
    • Löschen bewertet an einem anderen Tag 2-3 Produkte, Demos / Beispiele vergleichen, um Code aussehen, schreibt 2 kleine Beispiele für jedes (gleiches Beispiel verschiedene Produkte) verwendet wird.
    • Wenn Sie mehr als 3 wählen, an einem anderen Tag löschen und die andere testen.
  4. Gibt es eine Möglichkeit zurück wird o.k Ihre Meinung zu ändern, nachdem Bemühungen in einem Produkt und fand es nicht geeignet?

    setzen
    • Immer gestalten Sie Ihre Software so, dass jede Komponente austauschbar ist.

      • Dies garantiert, dass es immer „ein Weg zurück“ ist. (Verwenden Sie Schnittstellen & Adapter Designmuster, teilen viele Baugruppen, schließen Sie alle Komponenten so locker wie möglich (Ereignisse mit, Binden, wie etc.) -. Lose Kopplung
    • Auch wenn Sie etwas selbst implementieren dort stellen Sie sicher, einen Weg zurück ist -. Irgendwann möglicherweise die falsche Technologie / Design verwenden und eine Komponente mit einer neuen Sie Kauf entwickeln / ersetzen

    • Weitere Faustregeln:

    Überlegen Sie, welche anwendungsweite Technologien zu verwenden, bevor die einzelnen Komponenten berücksichtigen.

    • Schreiben in der Montage würden die längste nehmen, in C weniger, in C ++ noch weniger, in moderneren Sprachen wie C #, Java, Delphi noch weniger.

    • Welche mehrere der Selbst Komponenten hat, die für Sie relevant sind? Was tut Ihr Team Erfahrung in.

    • Wenn Sie .NET (C #) verwenden, dann könnte WPF helfen Ihnen, die Kopplung zwischen GUI und Business-Logik zu senken und eine besser aussehende GUI machen, ist es Zeit aber zu lernen, wie es zu benutzen (a 5 Tage Mindest Kurs ist sehr zu empfehlen).

  • Wie entscheiden Sie, ob ein Teil Software-Produkt oder Ihren eigenen Code verwenden sollte? (Wenn man bedenkt, dass einige Tools sind genial, aber viel Zeit in Anspruch nehmen zu lernen)

Fragen Sie sich zwei Fragen.
1) Ist es ein ausgereiftes Produkt. Wenn ja, dann
2) Wie lange würde es dauern, um die Funktionalität zu schaffen es auf eigene Faust zur Verfügung stellt. Wenn dieser Wert mal Ihr Stundensatz größer als die Kosten für das Produkt ist, dann ist das Produkt verwenden.

  • Wie wählen Sie die richtige Software-Produkt?

Fragen Sie Ihr Netzwerk von anderen Entwicklern. Haben sie verwendeten, taten sie auf Probleme stoßen. Wenden Sie sich an interweb. Erstellen Sie einen Prototyp des Produktes. Ist es gut? Irgendwelche großen Fehler?

  • Wie viel Zeit (in Prozent) sollte diese Phase das richtige Produkt der Wahl, wenn überhaupt, nehmen, und wie viel Zeit ein einzelnes Produkt zu bewerten?

Es hängt von der Größe des Projektes und die Kritikalität des Produkts für den Erfolg. Die meiste Zeit, werden Sie eine hohe Sicht auf das Produkt in einem sehr kurzen Zeit erhalten können.

Es kann nur ein paar Minuten mit ihm, bevor Sie sagen, nee - nicht bereit für die Prime Time. Wenn es vorbei, das macht, können Sie ein oder zwei Tage des Experimentierens sagen, dass es für Ihr Projekt geht aufbringen.

Wenn es ein großes Projekt mit vielen Entwicklern ist, dann möchten Sie wahrscheinlich mit ihm mehr Zeit zu tun, einen Prototyp-Anwendung verbringen sicher zu sein, es lohnt sich alle in dieser Zeit zu investieren.

  • Gibt es eine Möglichkeit zurück wird o.k Ihre Meinung zu ändern, nachdem Bemühungen in einem Produkt setzen, und fand es nicht geeignet?

Wenn Sie dies nicht herausfinden, es ist nichts falsch mit zurück. In der Tat haben Sie wahrscheinlich zu. Im Idealfall werden Sie diese früh finden. Nicht an der 11. Stunde. Auch dies ist der Zweck des Prototyping.

Es gibt bereits einige wirklich gute Antworten hier, also werde ich es nicht wiederholen, aber es gibt einen Punkt sollten Sie auf jeden Fall überlegen, und obwohl ich seine gedacht hätte offensichtlich, dass ich haben es hier gesehen erwähnt noch:
Das Personal Sie zur Verfügung haben, die Lösung, ihre Kernkompetenz, und ihr allgemeines Kompetenzniveau zu implementieren.
Wer Sie haben dies zu implementieren (vorausgesetzt, es ist ein Team, nicht nur sich selbst - aber relevant, auch wenn es nur Sie, auch ...) einen großen Einfluss auf das Ergebnis haben können. Wenn Sie nicht Programmierer erfahren, damit Sie diese entwickeln, sind Sie besser dran für einige OTS Produkt suchen, um die Arbeit für Sie tun ... Oder auch wenn Sie Programmierer, die nicht wahrscheinlich erfolgreich sind, können Sie immer noch will, um eine Lösung mit geringerem Gesamtprojektrisiko zu finden.

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