Wie können Sie in Ihrer Karriere vorankommen, wenn Ihr Arbeitgeber veraltete Tools und Technologien verwendet?

Ich bin kürzlich in ein Unternehmen eingetreten, um als Ingenieur/Entwicklung für die Software- und IT-Lösungen zu arbeiten, die sie haben. Während meiner Interviews haben sie mir alles so präsentiert, dass es ziemlich schick und trendy aussah. Nach einigen Wochen hier habe ich jedoch verstanden, dass es genau das Gegenteil ist:

  • Sie verwenden Technologien, die völlig veraltet sind (10+) Jahre.
  • Sie machen kaum CI / CD
  • Die verwendeten Tools arbeiten so langsam und sind wirklich veraltet. Außerdem verwenden sie es auf eine verkorkste Art und Weise.
  • Sie verwenden Sprachen und Frameworks, die völlig alt und leistungsschwach sind. Ich bezweifle, dass irgendein potenzieller Arbeitgeber an diesen Technologien interessiert ist.
  • Darüber hinaus haben sie solche schlechten Praktiken, was das Organisieren von Dateien von Softwareprojekten, das Packen der Dateien usw. betrifft.
    • Sie haben keine Softwarepakete, daher ist der gesamte Quellcode ein einziges Projekt. Dadurch entsteht überall ein Engpass
    • Sie vermischen Software mit der Infrastruktur auf eine Weise, mit der es so schmerzhaft ist, damit zu arbeiten und sie gegebenenfalls zu entkoppeln.

Außerdem scheint der Trend nicht aufzuhören. Sie scheinen sich dessen bewusst zu sein und haben im Hintergrund einige Pläne, es zu verbessern, aber nichts wird Wirklichkeit.

Ich habe seit meinem Eintritt in das Unternehmen aktiv und passiv darüber kommuniziert. Sie glauben, dass das meiste in der To-Do-Phase liegt. Es ist jedoch seit Ewigkeiten in ihrem To-do und das Ganze ist völlig festgefahren. Ich kann sehen, dass sie vor langer Zeit einige Probleme eingereicht haben und wirklich nichts passiert ist, um all die technischen Schulden zu beheben.

Ich frage mich, ob ich in dieser Firma bleiben könnte und nichts gegen die technischen Schulden tun könnte. Oder kämpfen Sie weiter, um es zu reduzieren. Es wäre viel besser für meine Zukunftsaussichten, wenn ich zeigen könnte, dass ich an modernen Sachen gearbeitet habe, im Gegensatz zu veralteten Technologien.

Was kann ich tun, um mein Unternehmen dazu zu ermutigen, sich seiner eigenen Aufgabe zu widmen und das Produkt zu bereinigen?

Was meinen Sie mit Ihrem „Karrierefortschritt“ ? Jedes Unternehmen hat Legacy-Software und diese pflegen zu können, gehört ebenso zu Ihrer „Karriere“ als Entwickler wie die Fähigkeit, neuere Software-Trends zu nutzen.
Haben Sie mit Ihrem Vorgesetzten über Ihre Bedenken gesprochen? Vielleicht erkennen sie den Fehler nicht, den sie machen, und Sie können der Held sein, der ihnen den Fehler ihres Weges zeigt.
@IDrinkandIKnowThings Basierend auf der Situation würde ich OP sogar raten, das Ergebnis dieses Meetings zu berücksichtigen, um festzustellen, ob sie gehen müssen. Der Wechsel von einem neuen Stack zu einem alten Stack ist nicht der Weg, um Arbeitszufriedenheit in der IT zu erlangen, lol.
@Dan Ich glaube, OP wurde geködert und gewechselt, um sich seiner derzeitigen Firma anzuschließen, speziell mit dem Vorwand, er würde an Spitzentechnologie arbeiten. Sonst wäre er nicht beigetreten.
Hallo @Worker, ich habe deinen Beitrag bearbeitet, um eine bestimmte Frage hervorzuheben und ihn etwas kürzer zu machen. Wenn ich Ihre ursprüngliche Absicht durcheinandergebracht habe, können Sie meine Änderungen gerne rückgängig machen oder überarbeiten. Und willkommen am Arbeitsplatz!
@Worker: Sie listen eine Reihe von Änderungen auf, von denen Sie glauben, dass sie vorhanden sein sollten. Sie geben jedoch keine konkreten Gründe an, warum sie aufgenommen werden müssen. Welche spezifischen Arten von Problemen haben Sie, die Ihre Änderungen beheben würden, und wie groß wäre die Verbesserung, wenn Sie diese Änderungen einbeziehen würden? Wenn Sie keine Antworten auf diese Fragen haben, sind Ihre Empfehlungen ziemlich bedeutungslos. Vor allem, da Sie keine Erfolgsbilanz haben, in der Sie Ihre Glaubwürdigkeit so weit aufgebaut haben, dass die Leute dazu neigen, Ihrer Meinung mehr zu vertrauen als ihrer eigenen.
Der Grund für das Unternehmen ist Effizienz. Dh sie erledigen mehr Dinge in kürzerer Zeit. dh billiger, da weniger Leute und weniger Zeit benötigt werden, um die Dinge zu erledigen.

Antworten (7)

Wenn Sie gehen müssen, gehen Sie.

Aber solange du dort bist, wähle die gewinnbaren Schlachten. Widersprechen Sie der Technologie nicht nur, weil sie „alt“ ist, sondern versuchen Sie, sich auf die schrittweise Verbesserung des Prozesses zu konzentrieren . Mit uralten Werkzeugen kann man großartige Arbeit leisten, wenn man sie klug einsetzt. Und ehrlich gesagt ist es ziemlich üblich, mit den neuesten Tools schreckliche Arbeit zu leisten, sie aber sorglos zu verwenden – insbesondere wenn etablierte Lösungen blindlings herausgerissen werden, ohne wirklich zu verstehen, was sie dem Unternehmen bieten.

Wenn Sie eine Technologie ersetzen möchten, konzentrieren Sie sich speziell darauf, welchen Wert eine neuere Lösung für das Unternehmen bringen kann. Finden Sie Wege, es in die bestehende Infrastruktur einzufügen, und implementieren Sie alte Schnittstellen neu, sodass eine neue Lösung ein Drop-in-Ersatz im gesamten Ökosystem sein kann. Das kann bedeuten, etwas zunächst nicht einmal zu einem Bruchteil seines potenziellen Vorteils zu nutzen, aber es bedeutet, die Tür zu Möglichkeiten zu öffnen.

Denken Sie daran, dass Sie eingestellt werden, um Probleme zu lösen, nicht um sie zu schaffen. Wenn die Probleme, die sie lösen müssen , nicht diejenigen sind, die Sie lösen können oder an denen Sie nicht interessiert sind, ist es an der Zeit, weiterzumachen und einen Ort zu finden, an dem die Probleme, die sie gelöst haben möchten, und die Probleme, die Sie lösen möchten, besser übereinstimmen .

Ich habe mehr getan, indem ich mit (Assembler, JCL und Fortran 77) auf einem 20 Jahre alten Mainframe gearbeitet habe, als ich jemals für möglich gehalten hätte. Es gibt Dinge, die Sie mit diesen Systemen tun können, die in den neuesten Versionen von Java, C++ und C# unmöglich sind. Dies ändert nichts an der Tatsache, dass ich zusätzlich zu diesen Legacy-Sprachen immer noch Tools in anderen Sprachen erstelle. Durch meine Einführung in diese Legacy-Sprachen bin ich ein besserer Ingenieur geworden.

Ich denke, wenn Sie sich festgefahren fühlen und das Unternehmen Sie nicht erfüllt, ist Ihre einzige Wahl, den Job zu wechseln. Vielleicht sogar mit einer Herabstufung der Vergünstigungen usw., aber mit Karrierepotenzialen

Es hört sich so an, als wäre der OP weniger besorgt über die Ereignisse an seinem neuen Arbeitsplatz, als dass er möglicherweise bedauert, seinen letzten verlassen zu haben.
Wenn der OP schnell kündigt und einen anderen Job findet, kann er die Risse in seinem Lebenslauf glätten. Ich persönlich würde den aktuellen Job bei einer Bewerbung nicht erwähnen.
Als jemand, der nur wenige Monate in verschiedenen Jobs als .NET-Entwickler die Karriereleiter erklommen hat, kann ich Ihnen sagen, dass die Nachfrage nach Ihren Fähigkeiten dazu führen wird, dass sie alle Karrierelücken übersehen. Ich hatte nie irgendwelche Probleme außer ein paar Fragen darüber, warum ich für kurze Zeit gearbeitet hatte. Meine Fähigkeiten waren großartig und das war es, was sie brauchten. Ich habe einige schreckliche Jobs gemacht und sie deshalb verlassen. Ich erklärte, dass ich in einigen Fällen zum Programmieren eingestellt wurde und doch als Tester endete, der Dinge manuell anklickte. Wer würde das nicht? Sobald Sie qualifiziert sind, können Sie als Senior/Lead Dev eingestellt werden und dann neue Technologien implementieren.

Ich war dort. Dies ist häufiger als Sie denken.

Die oberste Priorität eines Unternehmens ist es, einen Gewinn für seine Eigentümer (Aktionäre usw.) zu erzielen. Wenn die aktuelle Technologie die geschäftlichen Anforderungen erfüllt, warum sollten sie dann in etwas Trendiges und Neues investieren?

Ich selbst habe 1994 als COBOL (ugh) Programmierer in der IT angefangen. Die Firma, für die ich arbeitete, war eine sehr erfolgreiche Maklerfirma. Der Code wurde in COBOL68 geschrieben und einige der Quellen waren fast 25 Jahre alt. Es war uralt, aber funktionierte. Wir wurden gebeten, die Version von COBOL zu aktualisieren und die für das Jahr 2000 erforderlichen Änderungen vorzunehmen.

Der Wechsel in eine modernere Umgebung geschah aufgrund geschäftlichen Drucks – nicht, weil ich (als Entwickler, der sich mit C, C++ usw. auskannte) die neuesten Tools verwenden wollte.

Was also in der Zwischenzeit tun? Für mich bestand mein erstes VB6-Projekt darin, eine Keypunch-Maschine durch eine Desktop-Anwendung zu ersetzen, die Kartenbilder (ASCII-Text) erzeugen konnte, die Y2K-kompatibel waren. Ich kann scherzen, dass ich eine Y2K-konforme Kartenstanzmaschine (1999!) Entwickelt habe.

Der größere Punkt dabei ist, dass ich in der Lage war, etwas „Neues“ (das war vor .NET und moderneren Sachen) zu verwenden, um eine Geschäftsanforderung zu lösen. Ihre beste Option besteht darin, festzustellen, wie Sie dem Unternehmen helfen können, seine Ziele zu erreichen, indem Sie die neuere Technologie verwenden. Sprechen Sie in geschäftlichen Begriffen.

Das ist das Ding. Also ... wenn Sie zu dieser Zeit intensiv C/C++ verwendet hätten, anstatt das Punch-Ding ... nun ... ich wäre besser gewesen.

In meiner vorherigen Firma war definitiv nicht alles großartig (hej, deshalb bin ich ausgezogen!), aber wir haben modernste Technologien und Tools verwendet, und das vermisse ich. Ich erwarte nicht, ständig modernste Technologien einzusetzen. Aber die hier ist wirklich veraltet.

Für mich klingt es so, als würden Sie Ihren früheren Job vermissen. Sind Sie sicher, dass es nicht wirklich darum geht, dass Sie es bereuen, aufgehört zu haben und das zu verpassen, woran Sie gearbeitet haben?

Was kann ich einem potenziellen Arbeitgeber sagen? Ich habe die letzten 2 Jahre damit verbracht, veraltete Sachen zu reparieren? Oder hat grundlegende Einrichtung von modernen Sachen?

Es ist schwer zu bestimmen, wofür Sie eingestellt wurden? Wurden Sie eingestellt, um Legacy-Software zu reparieren oder als allgemeiner Full-Stack-Entwickler? Wenn Sie speziell eingestellt wurden, um veraltete Software zu reparieren, würde ich das Beste versuchen. Ansonsten erzählst du deinem nächsten Job dasselbe: Du warst Full-Stack-Entwickler und was du getan hast, um sie in Modernisierung und aktuelle Trends zu pushen.

So sehr die Entwicklerwelt Sie zum Nachdenken anregt, es wird nicht erwartet, dass Sie in jede Organisation gehen und zu einer Art Code-Ninja werden, der herumläuft, Dinge repariert und eine große Veränderung bewirkt, und jetzt suchen Sie nach neuen Jobs. Ihr letzter Job hatte ein Umfeld, in dem neue Trends verwendet wurden, nicht dass Sie irgendetwas anderes damit zu tun hatten, als dort zu arbeiten, das neue Umfeld scheint selbstgefällig zu sein, aber zu verstehen, dass es neuere Trends und Möglichkeiten gibt, das zu tun, was sie sind. Wenn Sie eine einzige Sache erreichen können, wie z. B. das Pushen von Unit-Tests, wäre das im Gegensatz zu dem, was ich oben beschrieben habe, eine große Leistung. Unternehmen suchen Teamplayer und Menschen, die sich einbringen und ebenso viel einbringen wie neue Ideen verbreiten können. Sie sind daran interessiert, Geld zu verdienen, nicht Leute, die hereinkommen und alles ändern und es ihnen dann überlassen, es herauszufinden.

Ich wurde nicht eingestellt, um alles zu reparieren, sondern als allgemeiner Entwickler. Verpassen Sie auch nicht meinen früheren Job. Es war nur gut, dass wir immer wieder neue Technologien verwendet, alles richtig eingerichtet haben usw.

Sie würden nicht die technischen, sondern die Soft Skills betonen. Wie Sie ein ständiger Fürsprecher waren. Vielleicht Workshops oder Präsentationen zu neuen Tools für die Mitarbeiter (oder das Management) durchführen. Mit Kosten-Nutzen-Analyse.

Und wenn das Unternehmen ein Budget hat, trainieren. Oder wenn sie Zeit für Ermittlungsarbeit geben, untersuchen Sie.

Soft Skills. Verfahren. Protokolle. Wenn das Management in Ihrer Nähe ist. Dies würden Sie potentiellen neuen Arbeitgebern/Kunden hervorheben.

Die Sache ist die ... wenn ich einem potenziellen Arbeitgeber sage: "Ich habe einen Workshop für meine Kollegen über Technologie X gemacht und wie sie ihren Arbeitsablauf verbessern würde", wäre das Gewicht nicht vergleichbar mit "Ich habe täglich an einem großen Projekt gearbeitet Technology X seit zwei Jahren, sodass ich mich jetzt sehr sicher damit fühle". Auch bei der Ausbildung bin ich mir nicht sicher. Warum sollte ich vom Unternehmen eine Schulung zu Technologie X erhalten, wenn sie die Verwendung nicht planen? Aber ja ich verstehe was du meinst. Ich dachte auch so über die Ausbildung, das Unterrichten meiner Colleges usw. usw.

Vielleicht haben sie Sie deshalb eingestellt – indem sie den schickeren/neueren Sachen zeigten, die sie einschätzen wollten, wo Sie mit Technologien stehen, und jetzt möchten, dass Sie den aktuellen, täglichen Produktionsstapel verbessern.

Es kommt aber darauf an und das ist reine Spekulation meinerseits. Warum erwähnen Sie dies nicht Ihrem Vorgesetzten und versuchen, einen Plan auszuarbeiten (falls es noch keinen gibt – fragen Sie danach!)?

Nun, ich bin ziemlich zuversichtlich, dass sie mich eingestellt haben, weil ich in Bezug auf das Wissen über verschiedene Technologien, Tools und das Verständnis des Szenarios usw. weit über dem Rest des Teams liege. Ich habe an unzähligen Orten gearbeitet und kann viel auf den Tisch bringen . Ich habe es dem Manager schon gesagt. Der Plan ist "wir werden es tun", aber ich habe gesehen, dass sie sich vieler Probleme bewusst sind und es seit langer Zeit geplant haben, aber nichts ist passiert, passiert und hat geplant, dass es passiert. Wie ich im ursprünglichen Beitrag erwähnt habe.

Nicht jeder ist bereit, Tech-Schulden anzugehen, und viele werden schreiend davonlaufen wollen, aber zu einem gewissen Grad hat jede Codebasis ein gewisses Maß an Tech-Schulden. Ich sehe dies als eine Gelegenheit, die neue Architektur und Prozesse von Grund auf zu definieren.

Da Sie sowohl auf der technischen als auch auf der nicht-technischen Seite gearbeitet haben, ist Ihr Argument, dass alles "veraltet" ist, nicht stark. Es klingt wie Schimpfen und nicht durch Zahlen untermauert. Gibt es einen guten Business Case für die Aufteilung der Codebasis in mehrere Repositories? Oder verursacht es nur mehr Wartung, weil keine kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) vorhanden ist? Wie viel schneller könnten Sie Kunden bereitstellen, wenn Sie CI/CD hätten? Wie können Fehler im Build- und Deployment-Prozess minimiert werden?

Wenn Sie beispielsweise kein oder ein schlechtes CI/CD haben, führen Sie einen Proof-of-Concept durch und messen Sie die potenziellen Gewinne. Präsentieren Sie das Ihrem Vorgesetzten oder demjenigen, der entscheidet, woran Sie arbeiten sollen, und machen Sie es zu Ihrem Projekt. Sie können sich sogar dafür einsetzen, an Konferenzen für DevOps/SRE teilzunehmen und von anderen zu lernen.

Ich hasse es, zu materialistisch zu sein, aber meiner Erfahrung nach, wenn es nicht Ihre Firma ist, führt das Aufwenden einer enormen Menge an persönlicher Zeit und Mühe, um sie auf den neuesten Stand zu bringen, zu schwerem mentalem Burnout und ist es nicht wert.
Ich meine, Sie sind frei, den Weg zu gehen, der zu Ihnen passt. Ich persönlich nehme das Problem gerne selbst in die Hand. Ein Unternehmen zu haben, das Initiative respektiert, ist hier jedoch wirklich entscheidend, oder Ihr Projekt wird beendet, bevor es überhaupt begonnen hat.
@Strader Ich habe das gleiche Gefühl ...