Was sind die Vorteile der Entwicklung mit veralteten Technologien? [geschlossen]


28

Ein kleiner Hintergrund :

Ich arbeite in einer großen Firma, benutze Windows XP und codiere Winforms in VB6 / VB.Net und einige WebForms in VB.Net (95% Wartungscode). Ich habe einen 19 "-Bildschirm im Format 4: 3. Eine modernere Version von Windows ist nicht in Kürze erhältlich.

Als ich in das Unternehmen eintrat, wurde mir nichts davon erzählt. Ich war irregeführt zu glauben, dass ich mit viel aktuelleren Technologien und Frameworks arbeiten würde.

Ich habe viel aktuellere Erfahrungen aus früheren Jobs, sowohl mit moderneren Frameworks als auch mit anderen Programmiersprachen, und wenn ich Entwicklerfreunde aus anderen Unternehmen aufspüre, höre ich nur, wie sie das neueste ASP MVC-Framework verwenden, oder Vagrant / Ruby on Rails / etc und ich bekomme die grünen Augen!

Ich könnte mich ziemlich schnell mit einem anderen Job abfinden, aber ich habe das Gefühl, dass ich diesem noch eine Chance geben sollte.

Die frage :

Ich versuche mich davon zu überzeugen, dass mein jetziger Job nicht so schlecht ist. Was sind die Vorteile dieser Art von Rolle? Hat die Arbeit mit veralteten Technologien Vorteile? Vielleicht einige Techniken, die ich mit moderneren Techniken nicht lernen würde? Oder ist dies die Art von Ort, an dem Karrieren sterben und ich raus sollte, solange ich noch meine Seele habe?


1
Möglicherweise möchten Sie den Text Ihrer Frage umformulieren, um die persönliche Vorgeschichte sauber von der Kernfrage zu trennen.
DougM

2
Sie können so tun, als würden Sie Raketen bauen oder an der Flugsicherung arbeiten. Diese Felder verwenden im Allgemeinen wirklich alte Technologie, da zu diesem Zeitpunkt alle Fehler entweder behoben oder bekannt sind. Aber selbst Raketen- oder Flugsicherungsingenieure würden VB6 nicht mit einer 10-Fuß-Stange berühren. :)
DXM

3
Berufssicherheit? ....
Robert Harvey

2
Ich habe vor über einem Jahrzehnt in Delphi programmiert. Ich habe es genossen, es war eine gute Sprache, besser als VB yardy yardy, aber es schien nicht so, wie es schien. Ich sprang. Aber bis zum heutigen Tag sprudeln Delphi-Jobs und sie zahlen gutes Geld! Verdammt noch mal.
MrWhite

11
Obwohl ich die Tatsache bewundere, dass Sie versuchen, das Beste aus einer schlechten Situation zu machen, versuchen Sie bitte nicht, sich davon zu überzeugen, dass Ihr derzeitiger Job nicht so schlecht ist. Aus Erfahrung: bei einem Job , zu lange mit veralteter Technik kann leicht in ein Loch , das ist wirklich schwer , sie zu graben , der Beschäftigung weisen. Versuchen Sie zumindest, wenn möglich mit modernerer Technik zu spielen.
Evicatos

Antworten:


26

Ich höre nur, wie sie das neueste ASP-MVC-Framework oder Vagrant / Ruby on Rails / usw. verwenden und bekomme die grünen Augen!

Ah, aber dort spielen sie mit ihren Spielsachen und dort erledigen Sie echte Arbeit mit einem Werkzeug, das die Arbeit erledigt, um eine Lösung zu finden.

Das sollten Sie bedenken - Software ist zu oft eine Amateurangelegenheit, bei der die Leute von einer coolen neuen Technologie zur nächsten wechseln. Dann gibt es andere, die es als eine viel professionellere Karriere betrachten, bei der die Werkzeuge weniger eine Rolle spielen als das Produkt oder die Lösung, die Sie erstellen.

Es gibt Orte, an denen alte Technologien durch neue ersetzt werden müssen, aber im Allgemeinen handelt es sich nur um Upgrades, nicht um Großhandelsersatz. VB6 wird beispielsweise auf VB.NET aktualisiert, Visual Studio 2002 wird auf Visual Studio 2012 aktualisiert. Jeder, der eine vollständige Umschreibung vornimmt, stellt fest, dass die neuen Tools nicht ganz so fantastisch sind. (weshalb Joel unter anderem sagt, das Umschreiben sei immer die falsche Antwort)

Konzentrieren Sie sich also darauf, Dinge zu erreichen und zu aktualisieren, wo Sie können, langsam und sorgfältig, wo es Sinn macht - nicht, weil Sie mit den neuesten Spielsachen spielen möchten (die sowieso bald weggeworfen werden, und das absolut Letzte, was Sie wollen, ist, eine zu warten System geschrieben von Leuten, die in der coolen Technologie des letzten Jahres codiert haben )


1
VB6 wurde nicht mehr auf VB.NET aktualisiert als DOS auf Windows NT. FWIW.
DougM

21

In der Tat hat ein Unternehmen mehrere Vorteile, wenn es an veralteten Technologien festhält:

  1. Legacy-Sachen funktionieren manchmal nicht mit neuen Sachen

    Möglicherweise hat ein Unternehmen viel Geld in Systeme investiert, die mit neueren Sprachen oder Betriebssystemen einfach nicht funktionieren. Ein klassisches Beispiel sind viele Intranet-Web-Apps, die nur mit IE6 und IE6 kompatibel sind. Die Entscheidung, bei Windows XP + IE6 zu bleiben und ein funktionierendes System wegzuwerfen und Geld in das neue zu investieren, ist nicht offensichtlich.

  2. Um der Veränderung willen ist es keine kluge Wahl, sich zu ändern

    Beispiel: Viele Banken verwalten weiterhin Anwendungen, die ursprünglich in COBOL geschrieben wurden. Warum sollte sich ein Unternehmen entscheiden, das Zeug in einer anderen Sprache umzuschreiben, da die Kosten für das Umschreiben eines großen unternehmenskritischen Systems sowie das Risiko, dass es falsch läuft, eine Reihe neuer Fehler verursachen? (Einer der Gründe ist unten beschrieben)

  3. Lizenzen sind teuer

    Nehmen wir an, ein Unternehmen verfügt über einige hundert Desktops, die Windows XP verwenden. Sie möchten auf Windows 8 umsteigen. Was kostet eine einzelne Lizenz für Windows 8 Enterprise? Was ist, wenn wir diese Kosten mit der Anzahl der Maschinen multiplizieren?

    Für Server wird es noch schlimmer. Eine einzelne Lizenz für Oracle oder Microsoft SQL Server kostet zwischen 30.000 und 40.000 US-Dollar. Wenn ein Unternehmen beispielsweise über fünfzig Datenbankserver verfügt, wird sie selbst mit Volumenlizenzen schnell sehr teuer.

    In meinem Unternehmen stecken wir in Visual Studio 2010 fest. Wir leiden unter den zahlreichen Fehlern, und wir wissen, dass sie niemals behoben werden, da Microsoft diese Version aufgegeben hat. 13.000 US-Dollar (vorausgesetzt, wir benötigen die Ultimate-Version aufgrund der einzigartigen Funktionen, die in anderen Versionen nicht verfügbar sind) sind zu hoch, um ein Update auf Visual Studio 2013 durchzuführen.

Allerdings gibt es auch wichtige Nachteile.

  1. Vermächtnisse ziehen keine neuen Talente an

    Dies ist eines der Probleme der Unternehmen, die COBOL-Apps warten: Es fällt ihnen schwer, kostengünstige Entwickler zu finden. Auch das Arbeiten an Großrechnern und das Schreiben von COBOL-Code ist für Kreative nicht attraktiv.

    Diese Systeme und Sprachen sind zwar eine gute Wahl für Backbone-Systeme, die solide bleiben müssen, eignen sich jedoch nicht für Produkte, die ständige Innovationen erfordern.

  2. Alt bedeutet nicht sicher

    Da das Umschreiben eines Produkts in einer neuen Sprache zu neuen Fehlern führen kann, kann es auch gefährlich sein, alte Systeme, die nicht mehr unterstützt werden, beizubehalten. Stellen Sie sich vor, in Windows 98 wird ein Fehler gefunden, der das gesamte System gefährden könnte: Würde Microsoft ein Update veröffentlichen, um diesen Fehler zu beheben?

  3. Vermächtnis ist viral

    Inkompatibilität zwischen älteren und neueren Systemen bedeutet, dass Sie häufig kein Upgrade durchführen können, wenn Sie sich an ein altes Produkt, eine alte Sprache oder eine alte Infrastruktur halten. Eine alte Intranet-App, die nur in IE6 funktioniert, führt auf allen Desktops zu Windows XP. Dies bedeutet, dass Sie nicht auf eine neue Active Directory-Version migrieren können. Dies bedeutet, dass Sie keine neuen Apps verwenden können, für die die neueste Active Directory-Version erforderlich ist bald.

  4. Produktivität

    Neue Versionen von Produkten bringen neue Funktionen mit sich, die manchmal die Produktivität steigern. Eine Aufgabe, die mit Visual Basic 6.0 eine Stunde in Anspruch nehmen würde, könnte mit Visual Studio 2013 in weniger als einer Stunde erledigt werden, da Visual Studio 2013 und .NET Framework 4.5 verbesserte Intellisense-, Entity Framework- und Tausende anderer Funktionen bieten, die den Code reduzieren Erhöhen Sie die Geschwindigkeit beim Schreiben von Code und verringern Sie das Risiko, dass Fehler auftreten.

    Wenn das Beispiel nicht klar genug ist, ist hier ein anderes. In Windows 3.1 haben Systemadministratoren jeden Computer einzeln von Hand eingerichtet (es sei denn, mir ist keine Automatisierung bekannt). Heute würden sie PXE und Windows Assessment and Deployment Kit verwenden, um innerhalb weniger Minuten ein neues Betriebssystem und eine neue Software über Tausende von Computern automatisch bereitzustellen.

    Die Verwendung älterer Versionen kann einfach unerschwinglich werden. Für einige Benutzer, die gerne mit Windows 95 arbeiten, ist dies möglicherweise nicht offensichtlich, für Entwickler, Systemadministratoren, Designer, Wissenschaftler und andere Personen, die stark auf die Leistungsfähigkeit von Hardware und Anwendungen angewiesen sind, ist dies jedoch viel offensichtlicher.


Verwenden Sie Linux und Eclipse oder MonoDevelop. Lizenzkosten: $ 0.
Demi

7

Die Entwicklung mit veralteten Technologien hat einige Vorteile. Es ist jedoch eine persönliche Entscheidung zwischen Ihnen und ihnen, ob diese die Kosten überwiegen, die Ihnen entstehen, wenn Sie die Erfahrung mit dem Austausch von Technologien verlieren oder nicht.

Ich kann mir drei Vorteile der Arbeit mit veralteter, ersetzter Technologie vorstellen:

  1. Vertrautheit mit der älteren Technologie

    Die einzigen alten Technologien, die noch verwendet werden, sind diejenigen, die irgendwo billiger zu warten sind als zu ersetzen. Die Möglichkeit, Berufserfahrungen mit solch älteren Technologien aufzulisten, kann Ihnen an und für sich dabei helfen, einen anderen Arbeitsplatz im selben Bereich zu finden. Und je mehr Entwickler sich weiterentwickeln, desto höher wird die Prämie, die Sie für die Arbeit an solchen Produkten verlangen können.

  2. Eine Gelegenheit, etwas Neues zu lernen

    Sie sind kein wirklicher Programmierer, wenn Sie nur in Sprachen programmieren können, die Ihnen jemand anderes beigebracht hat. Um Ihre Techniken und Modelle an ältere Technologien anpassen zu können, sind genau dieselben Fähigkeiten erforderlich, die Sie für die Anpassung an neue Technologien benötigen.

  3. Tieferes Verständnis dafür, warum sie ersetzt wurden

    Es ist schwer zu erklären, warum VB.NET oder C # VB6 überlegen sind, wenn Sie mit der Technologie selbst nicht vertraut sind. Und wenn Sie mit letzterem nicht ganz vertraut sind, können Sie besser nachvollziehen, warum die Ersetzungen so geschrieben wurden, wie sie waren.


Alles in allem gibt es absolut keinen Grund, warum ein Unternehmen die Wartung einer Anwendung fortsetzen sollte, die mit einer Technologie geschrieben wurde, die so veraltet ist.

Wenn es allein gelassen werden kann, bis die Laufzeit aufgrund eines undokumentierten Fehlers ausfällt, ist das eine Sache - aber jede Stunde, die ein Entwickler für alte Technologien ohne Übergangsplan ausgibt, ist eine technische Verschuldung, die das Unternehmen irgendwann bezahlen muss.


9
Ich bin nicht einverstanden mit "Es gibt absolut keinen Grund, warum ein Unternehmen die Wartung einer Anwendung fortsetzen sollte, die mit einer Technologie geschrieben wurde, die so veraltet ist." Wenn es dem Unternehmen mehr Geld einbringt, als es zu warten kostet, sollten sie es warten. Sie sollten versuchen, es durch eine modernere Lösung zu ersetzen, aber während es Geld verdient und nicht einfach ersetzt werden kann, sollte es beibehalten werden.
Stephen

Manchmal stimmt das, aber wenn die Software Geld "verdient", anstatt Geld zu "sparen", tut jemand seinen Kunden trotzdem einen schlechten Dienst.
DougM

Software kann Geld für den Kunden sparen und es für das Unternehmen machen, das sie entwickelt. Nicht alles ist eine Inhouse-Anwendung. Heck, Software kann auch Geld für den Kunden verdienen. Schau dir Visual Studio an. Es verdient Geld sowohl für den Verkäufer (Microsoft) als auch für den Käufer (Softwarehäuser).
Stephen

Ja, deshalb habe ich es so gesagt. Und um es noch einmal zu wiederholen: Wenn Sie Software verkaufen, die auf einer zehn Jahre toten Plattform basiert, tun Sie Ihren Kunden einen schlechten Dienst.
DougM

1
Ich würde nicht zustimmen. Als Entwickler möchte ich immer die neueste Technologie verwenden. Aus der Sicht eines Benutzers können sie jedoch großen Nutzen aus einem alten VB6-Programm ziehen, das gewartet wird. Es mag nicht wirtschaftlich oder praktisch sein, es von Grund auf neu zu entwickeln, aber es kann sich lohnen, es zu warten (dies gilt insbesondere für Spezialsoftware, die nur einen sehr kleinen Nischenmarkt hat).
Stephen

6

Irgendwann muss sich das Unternehmen Sorgen um das Ende der Lebensdauer von VB6 machen, aber leider hat VB.NET noch etwas Luft.

Gibt es einen ähnlichen Grund, warum Sie an einem einzelnen kleinen Monitor arbeiten müssen? Das hört sich eher nach einem billigen Unternehmen an, als nach gut getesteten Technologien. Es ist nicht so, als würden ein paar 21-Zoll-Monitore Fehler verursachen.

Um Ihre Fähigkeiten zu verbessern und dafür bezahlt zu werden, empfehle ich Ihnen, sich Ihr Build-, Test- und Bereitstellungs-Setup anzusehen. Dies kann eine Gelegenheit sein, einige neuere Technologien einzuführen, indem Sie Rake, Powershell und / oder Nant für die Erstellung und Bereitstellung verwenden. Wenn Sie keine Komponententests haben, fügen Sie diese hinzu.

Wenn sich das Unternehmen nicht im Technologiebereich befindet, ist es letztendlich immer zweitrangig. Für sie ist es absolut sinnvoll, Stabilität zu gewährleisten, um ihre Kerngeschäfte zu schützen.

Ich werde es vermeiden, Karriere-Ratschläge zu geben, ich bin sicher, dass andere die Grundlagen abgedeckt haben.



3

Es gibt mehrere Vorteile:

1) Es werden viele Ressourcen für die Technologien zur Verfügung stehen, solange diese nicht undurchsichtig sind und nicht weit verbreitet sind.

2) Hoffentlich sind andere im Unternehmen mit den Technologien vertraut, da sie sich nicht geändert haben.

3) Wenn es nicht viele neue Entwicklungen gibt, können Sie daran arbeiten, alten Code zu überarbeiten, um sauberer oder schneller zu werden. Beachten Sie, dass die Art des Shops, in dem diese alte Technologie aufbewahrt wird, wahrscheinlich gegen das Ändern von Code ist, der "funktioniert", ungeachtet dessen, wie abscheulich er sein mag.


5
Wenn der Code funktioniert, sollte er nicht geändert werden, wenn Sie ihn vermeiden können. Jedes Mal, wenn ein Entwickler eine Änderung vornimmt, besteht die Möglichkeit, neue Fehler einzuführen - und neue Fehler heben den Nutzen der Verwendung von altem Code weitgehend auf.
DougM

Veränderungen sind offensichtlich keine gute Idee. Sobald die Software jedoch einen bestimmten Reifegrad erreicht, wird häufig darauf geachtet, langsamere Teile der Anwendung zu optimieren.
Robbie Dee

3

Ich werde mich auf die Kehrseite dieser Frage konzentrieren, dh die Nachteile des Einsatzes neuer Technologien, da die Vorteile veralteter Technologien in anderen Antworten ausreichend behandelt wurden.

Wir haben immer noch eine große Visual Studio 6-Codebasis und es sieht nicht so aus, als würde sie in Kürze ersetzt.

Wir treiben jedoch neue Technologien voran, wo wir für neue Entwicklungen sorgen können.

Wie Sie bereits angedeutet haben, ist es möglich, VB.NET zu schreiben, das mit COM eine sehr gute Schnittstelle zu altem VB6-Code bietet.

Der Einsatz von Spitzentechnologien macht zweifellos Spaß, da sie häufig erhebliche Produktivitätsvorteile bringen. Die Kehrseite ist jedoch, dass Sie auf einen Fehler stoßen können, der Sie Tage / Wochen zurückbringt. Es wird aus einem Grund Blutungsschärfe genannt!

Selbst wenn das Unternehmen das Geld für die Aktualisierung der Software aufbringen sollte, kann dies (wie ich aus eigener Erfahrung heraus festgestellt habe) ein Problem sein, je nachdem, welchen Weg das Unternehmen wählt:

Software-Port

Die Software wird neu geschrieben, muss aber genauso aussehen wie die alte Software, um die Benutzer nicht zu verärgern. Die Freude an der Arbeit mit neuer Technologie wird durch die Tatsache außer Kraft gesetzt, dass Sie keinen der neuen GUI-Assistenten verwenden können.

Visual Studio-Update

Sie können die neuen Funktionen nicht richtig nutzen, da Sie viel Zeit damit verbringen, Fehler im Code auszubügeln, die in der einen, aber nicht in der anderen Studioversion gut funktionieren.

Funktionale Migration

Sie migrieren die Software unter Beibehaltung der Kernfunktionalität. Dies ermöglicht aus Entwicklersicht die größtmögliche Freiheit. Es können jedoch Fehler auftreten, die das Unternehmen dazu veranlassen, den Wert einer solchen Übung in Frage zu stellen, sofern nicht auch neue Funktionen mit Mehrwert enthalten sind.

Nirvana ist für die meisten Entwickler ein qualitativ hochwertiges Training für moderne Technologien, eine Gelegenheit, das Gelernte zu üben und dann ein Projekt auf der grünen Wiese, bei dem Sie Ihre Zähne schneiden können.

Was Sie tun sollten, hängt weitgehend von der Art der Person ab, die Sie sind. Neophile werden immer mit dem Neuen arbeiten wollen, während die Ludditen alte Technologie für das Beste halten. Die meisten von uns sind irgendwo dazwischen. Sie müssen herausfinden, wo Sie sich wohl fühlen. Wenn Sie der Meinung sind, dass Sie mit dem Status quo gut leben können, nehmen Sie ansonsten die Münze und halten Sie ein halbes Auge für eine geeignetere Position.


1

Dies ist möglicherweise nicht genau das, was Sie fragen, aber ich habe einige Vorschläge:

Ich denke, der größte Vorteil ist, was Sie Ihrem Arbeitgeber in Bezug auf Fachwissen bieten können, wenn er schließlich erkennt, dass er migrieren muss. XP wird in diesem Jahr eingestellt. Ich stelle mir vor, Ihre IT-Abteilung erwägt bereits eine Migrationsstrategie. (Wenn nicht, machen Sie Ihren Lebenslauf fertig, denn die Firma wird nicht lange auf sich warten lassen.)

Vor diesem Hintergrund ist es möglicherweise ratsam, eine Liste mit Vorteilen für die Migration der primären Software-Toolsets in Verbindung mit der Betriebssystem- / Plattformmigration zu erstellen. Informieren Sie Ihre technisch nicht versierte Managementkette über den ROI in Bezug auf neue Technologien. Ihre Manager werden sich nicht um Whiz-Bang-Frameworks und Tech-Toys kümmern, aber sie sollten sehr an Ihren langfristigen Prognosen zu den Vergleichskosten der laufenden Wartungskosten, der zukünftigen Entwicklung usw. interessiert sein.

In diesem Sinne können Sie die Gelegenheit nutzen, um die Zufriedenheit Ihrer Kunden (der Mitarbeiter, die Ihre Software verwenden) zu ermitteln. Welche Verbesserungen würden sie gerne sehen? Welche Käfer machen sie verrückt? Welche Funktionen würden ihre Effizienz erheblich verbessern? Wenn Sie Ihren Arbeitgebern zeigen können, dass sich eine neue Investition in Technologie nachweislich auf deren Endergebnis auswirkt, können Sie sich den Titel des Technical Migration Manager verdienen.

Und das würde auf jedem Lebenslauf gut aussehen.

UPDATE: Sieht so aus, als wären Sie in Ihrer Branche nicht allein: " 95% der Geldautomaten der Welt verwenden XP ". Versteht mich nicht falsch: XP ist großartig - ich war schon immer ein Fan. Die Realität ist jedoch, dass XP nach dem Ende der Sicherheitspatches und -updates für eine Bank kein tragfähiges Produkt sein wird. Ihre Aufgabe ist es (im Interesse der Kunden Ihrer Bank), Ihre Manager freundlich, aber beharrlich darüber zu informieren, dass sie am Ende weitaus mehr bezahlen werden (in Form von erweiterten Servicevereinbarungen oder zur Abwehr von Angriffen), um die XP nach Ablauf des Pensionierungsdatums aufrechtzuerhalten. Wie der Link von @ RobbieDee zeigte: Sie haben bis zum 14. Juli 2015 Zeit. Das ist gerade genug Zeit (wenn Sie jetzt anfangen), um ein Ersatzsystem zu entwerfen, zu implementieren und bereitzustellen.

(Aber versuchen Sie NICHT, diese Idee an denjenigen zu verkaufen, der gerade die unternehmensweite XP-Installation abgemeldet hat. Er ist nicht Ihr Verbündeter. Mit einem solchen Urteil sind seine Tage in dieser Rolle gezählt. Arbeiten Sie ruhig um ihn herum, bis klügere Köpfe setzen sich durch.)



Hallo, danke für die Antwort. Das ist ganz einfach nicht traurig, das Unternehmen (eine Bank) hat kürzlich (Ende 2013) einen PC-Refresh durchgeführt, bei dem viel Geld ausgegeben wurde, um jeden Computer in der Kette durch ein neues Kit von Dell zu ersetzen. Anschließend bezahlten sie IBM-Mitarbeiter damit, alle diese Maschinen zu löschen und XP zu installieren! Ich denke, wenn sie auf ein moderneres Betriebssystem upgraden wollten, war das eine goldene Gelegenheit. Normalerweise wäre deine Antwort ein solider Rat, also +1
prisoner24601

@RobbieDee -das gibt user114764 gerade genug Zeit.
kmote
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.