Frage

Nehmen wir an, Sie in der Mitte eines langen laufenden Projekt sind (lange Lauf = mehrere Jahre) und, wie erwartet, wird es mit neuen Versionen kommen mehrere Dinge sein. Es könnte ein neues .Net Framework mit neuen Funktionen (zB Linq, Entity Framework, WPF, WF ...), ein neues Visual Studio oder V.next Ihrer Lieblings Control Library, einem neuen Mock-Framework und viel mehr Dinge . Was sind Ihre Richtlinien für diese Technologie-Updates Handhabung? Haben Sie sie sofort annehmen oder haben Sie sie bis zum Ende des Projekts ignorieren? Haben Sie unterschiedliche Richtlinien für verschiedene Dinge (Werkzeuge, Frameworks, die Unterstützung Sachen)?

War es hilfreich?

Lösung

Nach meiner Erfahrung sind diese Entscheidungen immer auf einer Fall-zu-Fall-Basis. Mehrere Faktoren berücksichtigt werden, einschließlich:

  1. Wie reif ist die neue Technologie? Hat die Organisation gerne an der Spitze mit bleeding edge neuen Technologien zu arbeiten, oder es nicht vorziehen, mit bewährten Tools und Methoden zu arbeiten?

  2. Welche Fähigkeiten haben Ihre Leute? Sind sie mit der Nutzung der neuen Technologie in Einklang oder ist mehr Training nötig? Wird eine verbesserte Produktivität schwerer wiegen zu beschleunigen die Zeit es braucht zu kommen?

  3. Welche Investitionen haben Sie in der bestehenden Technologie haben? Was ist die Kosten auf die neue Technologie zu bewegen? Wie viel Nacharbeit und Umschreiben des Codes beteiligt?

  4. Was ist die Anforderung? Ist es durch die bestehende techology unterstützt oder sind neue Werkzeuge erforderlich, um die Anforderung zu erfüllen?

  5. Was sind die Performance-Erwartungen? Hat die neue Technologie eine Leistungsverbesserung erzielen, die nicht mit der alten Technologie erfüllt werden kann?

  6. Was ist mit der technologischen Kultur? Ist die Organisation herstellerspezifische (beispielsweise ein Microsoft-Shop)? Kann Code Open Source verwendet werden?

  7. Was ist der Umfang des Projekts? Ist es ein großes Projekt, das von unterstützenden Technologien wie Frameworks und Tools, oder ist es ein kleines Projekt profitieren würden, die durch diese Dinge übermäßig belastet und kompliziert werden würde?

  8. Wie wird die neue Technologie unterstützt? Hat der Verkäufer eine gute Dokumentation? Gibt es jemanden, der Sie sprechen können, wenn Sie Probleme haben? Oder sind Sie eine Organisation, die Menschen hat, die wissen, wie Probleme zu lösen, ohne einen Support-Vertrag?

  9. Ist die Technologie komfortabel zu arbeiten? Scheint es Sinn zu machen? Ist es sauber und elegant? Sie andere Menschen, es zu mögen scheinen? Sind andere Menschen Probleme mit ihm haben?

  10. Ist die Technologie der neuesten Geschmack der Woche? Hat es sich auf dem Schlachtfeld bewiesen greifbare Ergebnisse zu produzieren, oder ist es nur eine Religion?

  11. Wie viel Zeit haben Sie die neue Technologie zu lernen und die Knicke ausbügeln? Sind die Vorteile die Kosten aufwiegen?

Als sehr kurzes Beispiel, wählte ich einen Link für mein jüngstes Projekt in SQL, weil das Projekt komplex genug war ein ORM zu rechtfertigen, L2S funktioniert gut und ist leicht, wir sind ein Microsoft-Shop, und es ist mein Gefühl, dass Entity Framework ist nicht ganz bereit für die prime Time (obwohl Microsoft sagt, dass es die go-to-Rahmen für die Zukunft sein wird).

Andere Tipps

Stick mit, was Sie mit begonnen haben.

Ein großen und lange laufendes Projekt kommt oft mit einer großen und hochkomplexen Code-Basis. Jede Änderung oder ein Upgrade auf eine neue Version einer Bibliothek können Fehler in sehr subtile und unerwartete Weise hinzuzufügen.

Außerdem: Bei großen Projekten der Werkzeuge und Bibliotheken verwendet werden, sollten in der Design-Phase getestet und bewertet wurden. Sofern Sie einen Show-Stopper oder ein Sicherheitsproblem zu finden ist es am besten nicht aktualisieren.

Denken Sie immer daran: Sie in der Mitte des Stroms nicht die Pferde wechseln. : -)

würde ich verschiedene Faktoren sagen Tonhöhe in, wie -

  1. Say eine Software steht kurz vor seinem Ende des Lebens, zum Beispiel im vergangenen April im Ruhestand Microsoft Mainstream-Supports für SQL Server 2000, und Ihr Produkt verwendet es dann sein weiser für die nächste Version von SQL Server gehen in Ihrem nächsten Release.
  2. Ein weiterer Faktor, der ins Spiel kommt, ist, wie viel Wert hat die neuen Funktionen in der neuesten Version einer Software, um Ihr Produkt bringen würde. Es kann auch der Fall sein, dass die neue Version von .NET Framework etwas hat, die keinen Wert auf Ihr Produkt hinzufügt, dann ist das keine starken Fall eines Upgrade nicht bauen.
  3. Budget ist auch ein wichtiger Faktor. Ich glaube, Sie müssen Lizenzen, um ein Upgrade auf die nächste Version zu intensivieren, wenn Sie bereits ein Teil von so etwas wie Software Assurance sind.
  4. Training für das Team ist auch ein Faktor. Wenn die neueste Version zu Ihrem Produkt hinzufügen wird dann müssen Sie Ihr Team auch trainieren.

Nun, könnte es andere Faktoren zu erzählen. Das waren die, die aus der Spitze von meinem Kopf. Ich hoffe, es hilft.

cheers

Wenn Sie über einen Rahmen-spezifisches Beispiel sprechen, das größte Stück Rat, den ich Ihnen geben werde, ist das System halten und Ihre Anwendung getrennt. Aus diesem Grund bin Muster lieben wie Model-View-Controller--. Es hält Ihren Code modular und bedeutet, dass Sie Abschnitte, ohne die App als Ganzes aktualisieren

Auf praktischer Ebene, wenn Ihr Rahmen einen Git oder SVN-Repository hat, Check-out das übliche ‚System‘ Verzeichnis aus dem Repo, dann kann man gelegentlich mit dem neuesten Schritt zu halten ‚svn update‘ nennen und größte baut.

Ich würde vorschlagen, dass das Projekt nicht so lange dauern. Entwickeln Sie die Anwendung in kleinere Stücke mit Wiederholungen alle paar Monate. Auf diese Weise, als neue Technologie kommt, können Sie die notwendigen Änderungen vornehmen und Updates implementieren, wie Sie gehen eher dann zu entscheiden haben, die gesamte Anwendung neu zu entwickeln. Wie Sie sagen, versuchen, die gesamte Anwendung zu entwickeln, wie die Dinge ändern, nur nicht funktionieren.

Als ein weiteres Plakat sagte, es ist sicherlich eine Fall-zu-Fall-Basis Sache. Was Sie und aktualisiert, wenn vor allem, wie stark oder leicht bestimmt ist, ist es die neue Version des Systems zu testen. eine umfassende automatisierte Testreihe für Ihre Anwendung, die eine Menge mit, das hilft.

Im Allgemeinen versuche ich auf die neueste stabile Version von Bibliotheken zu aktualisieren und so weiter so oft wie möglich, denn das erleichtert die Wartung. Wenn Sie nicht aktualisieren, werden Sie sich das Patchen oder arbeiten rund um Fehler in der Version der Bibliothek Sie verwenden. Wenn Sie weniger häufig aktualisieren, wird jedes Update mehr Arbeit, weil Sie mehr Veränderungen zu tun haben, und es ist schon länger, da Sie das letzte Mal das System berührt, und so erinnern Sie sich weniger über sie.

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