Beeinträchtigen engagierte Wartungsarbeiten die Karriere eines Programmierers? [geschlossen]

52

Der Großteil meiner Arbeit in den letzten drei Jahren bestand darin, ältere Systeme zu warten, die repariert oder gelegentlich überarbeitet werden mussten, bevor sie wieder verkauft wurden.

Ich verstehe die entscheidende Rolle, die engagierte Wartungsprogrammierer in Unternehmen mit einer großen Anzahl von Projekten und begrenzten Entwicklern spielen müssen.

Aber wenn ich meinen aktuellen Karrierefortschritt einschätze und meine Kollegen anschaue; Auftragnehmer und Unternehmensentwickler gleichermaßen; Ich habe das Gefühl, dass ich weit zurückbleibe, da ich in Bezug auf die Bereiche, die ich berührt habe, viel an Breite gewonnen habe, aber nicht viel Tiefe. Ich habe damit begonnen, ein Blog zu starten, an meinen eigenen kleinen GIT-Hub-Projekten zu arbeiten und mein Leben neu zu planen, damit ich nach der Arbeit regelmäßig Zeit habe, um das persönliche Codieren zu erledigen.

Ich habe das Gefühl, dass ich mich für ein Vorstellungsgespräch bei anderen Unternehmen, um der Wartung zu entfliehen, als recht jünger in der Qualifikation darstellen müsste, da ich nicht über die erforderlichen Kenntnisse verfügen würde, die eine Person mit dreijähriger Erfahrung benötigt, die sich auf einen bestimmten Sachverhalt konzentriert Weg in der Feature-Entwicklung wäre. So würde die Hälfte meiner derzeitigen Arbeitserfahrung auf lange Sicht umsonst sein.

Dies führt mich jedoch zu meinen Hauptfragen: Entschuldigung, wenn sich dies zu sehr um mein persönliches Dilemma herum anfühlt:

Beeinträchtigen bestimmte Rollen in der Wartungsprogrammierung eine frühe Karriere? Haben andere Programmierer das Recht, Rollen wie diese zu meiden? Werden Sie durch diese Tätigkeit zu ähnlichen Aufgaben gezwungen, es sei denn, Sie sind bereit, als Junior von vorne zu beginnen?

Gyurme
quelle
Ich würde denken, dass die Technologie, mit der Sie zu Beginn Ihrer Karriere arbeiten, (weit) wichtiger ist, als ob Sie Wartungsarbeiten oder Neuentwicklungen durchführen. Wenn Sie eine Neuentwicklung in einer Inhouse-Sprache oder einer älteren Sprache mit geringer Nachfrage durchgeführt haben, wäre dies wahrscheinlich viel schlimmer, als wenn Sie keine Neuentwicklung in einer Sprache mit höherer Nachfrage durchführen würden.
Stoj
6
Es baut auf jeden Fall Charakter.
quant_dev

Antworten:

70

Beeinträchtigen bestimmte Rollen in der Wartungsprogrammierung eine frühe Karriere? Haben andere Programmierer das Recht, Rollen wie diese zu meiden? Werden Sie durch diese Tätigkeit zu ähnlichen Aufgaben gezwungen, es sei denn, Sie sind bereit, als Junior von vorne zu beginnen?

Zunächst sollten Sie wissen, dass Sie eine ganze Weile als Junior gelten. Möglicherweise erhalten Sie willkürliche Beförderungen, weil Sie gut sind und dies der einzige Weg ist, um eine angemessene Vergütung zu erzielen, aber Sie werden trotzdem als Junior angesehen, wenn Sie sich Ihrem nächsten Job widmen.

Zweitens ist es mir egal, ob ich jemanden mit einer Erfahrung von 2 bis 4 Jahren anstelle, der nur für die Instandhaltung zuständig ist. Wenn Sie 10 Jahre in der Instandhaltung verbracht haben und ich für ein Greenfield-Projekt anheuere, habe ich vielleicht Fragen, aber in den ersten Jahren erwarte ich es ehrlich gesagt.

Auf der anderen Seite werde ich misstrauischer, wenn ich jemanden anstelle, der NIEMALS in der Instandhaltung gearbeitet hat. Ich habe viele Kandidaten für Jobs gehabt, die ihre ersten 4 Jahre damit verbracht haben, von einem "guten" Job zu einem anderen zu wechseln, und jeder einzelne hat nichts darüber gelernt, was wartbaren Code ausmacht. Und, machen Sie keinen Fehler, wenn ich für ein Greenfield-Projekt anheuere, an dem ich festhalten möchte, ist es mir egal, ob SIE den Code pflegen, es ist mir wichtig, dass Sie wissen, wie Sie ihn für zukünftige Entwickler pflegen können.

Diese anderen Programmierer, die solche Jobs meiden, meiden sie im Allgemeinen, weil sie weniger Spaß machen und nicht weil sie ihre Karriere behindern.

Schließlich sollten Sie wissen, dass ein sehr großer Prozentsatz (ich würde konservativ auf ungefähr 80% schätzen) von Softwareentwicklungsaufträgen mehr als 50% Wartung ist.

Also, um all das zu durchkreuzen und Ihre Frage zu beantworten: Nein, ich glaube nicht, dass es Ihre Karriere behindern wird. Es sei denn, du bleibst viel zu lange dort. Die allgemeine Faustregel lautet: "Sobald Sie das Gefühl haben, jedes Jahr dasselbe Erlebnis zu haben, ist es Zeit zu gehen." Wenn Sie das Gefühl haben, jedes Jahr ein besserer Entwickler zu sein als im letzten Jahr, geht es Ihnen gut (und das gilt für mich, 20 Jahre in meiner Karriere, genauso wie für Sie).

pdr
quelle
25
+1 Durch Wartung kann sich jemand besser entwickeln.
8
+1 Wenn Sie Wartungsarbeiten für sich selbst oder für ein anderes Projekt durchführen, müssen Sie die Konsequenzen von Entscheidungen, die zu einem früheren Zeitpunkt im Projekt getroffen wurden, schätzen und daraus lernen.
Ophidian
Ich bin der Meinung, dass Sie aus der Entwicklung eines erfolgreichen Projekts lernen, was Sie lernen können, wenn Sie Erfahrung mit der Wartung haben. Wartung kann Ihnen beibringen, was Sie nicht tun sollen, aber wie am besten von Jason Fried gesagt: Aus Fehlern zu lernen kann Ihnen sagen, was Sie beim nächsten Mal nicht tun sollen, aber das sagt Ihnen nicht, was Sie beim nächsten Mal tun sollen .
Korey Hinton
@KoreyHinton: Ich bin sicher, dass Jason Fried, ein erfolgreicher Unternehmer, glaubt, was er sagt, wenn es darum geht, Unternehmer zu sein. Ich würde behaupten, dass a) er nicht wirklich weiß, was er besser machen könnte, weil die Dinge für ihn sehr gut gelaufen sind, b) DHH und Rails zu unterstützen, war 90% des Erfolgs von 37signals und das ist ein Glücksspiel, das sich nicht auszahlt in 90% der Fälle und c) selbst Jason würde wahrscheinlich nicht behaupten, dass der Ratschlag, ein Unternehmer zu sein, zwangsläufig das Lernen bedeutet, schlecht geschriebene Software zusammenfügen zu müssen.
pdr
@pdr Du hast recht, die beiden Dinge lassen sich nicht genau übersetzen. Da ich noch ein Student bin, habe ich eher aus der Meinung als aus der Erfahrung gesprochen. Ich persönlich denke, ich bevorzuge es, neuen Code zu schreiben, anstatt den von anderen geschriebenen Code zu pflegen, aber es klingt so, als würde ich eine Menge in diesem Bereich tun.
Korey Hinton
13

In jedem Job ist die Erfahrung, die Sie sammeln, spezifisch für das, was Sie tun, was Ihre Möglichkeiten einschränkt, wenn Sie sich auf andere Jobs bewerben, die auf dieser Erfahrung basieren. Es ist nicht spezifisch für die Wartung. Ich denke, andere Fragen sind relevanter als, ob es sich um Wartung oder neue Softwareentwicklung handelt:

  • Wie verbreitet sind die spezifischen Technologien, mit denen Sie arbeiten? Wenn Sie etwas beibehalten, das veraltet ist und an anderer Stelle selten verwendet wird, sind Ihre zukünftigen Karrieremöglichkeiten begrenzt (dies würde jedoch die Entwicklung neuer Software für ein System / eine Plattform / eine Technologie einschränken, die nicht weit verbreitet ist).
  • Wie rüstet dich deine aktuelle Arbeit für die Arbeit aus, die du in Zukunft machen möchtest? Wartungsarbeiten sind wichtig und werden immer verfügbar sein. Es ist nichts Falsches daran, eine Karriere zu haben, die sich auf diese Art des Programmierens konzentriert. Es wird immer viele Möglichkeiten für Systembetreuer geben. Aber vielleicht ist es nicht das, was Sie tun möchten. Es ist besorgniserregend, wenn Ihre aktuelle Arbeit Sie nicht auf das vorbereitet, woran Sie interessiert sind.

Ich wäre jedoch nicht zu besorgt. Eine Sache, die Sie sagen, ist:

Ich habe in Bezug auf die Bereiche, die ich berührt habe, viel an Breite gewonnen, aber nicht viel Tiefe.

Betrachten Sie dies nicht als Problem, da es zu Ihrem Vorteil genutzt werden kann. Breite Erfahrung bedeutet, dass es eine Vielzahl von Dingen gibt, zu denen Sie sagen können: "Ja, das habe ich getan." Viele Jobs erfordern Erfahrung in verschiedenen Technologien und Aufgaben. Sie würden wahrscheinlich einen Vorteil gegenüber einem Entwickler haben, der sehr viel Erfahrung mit einer Technologie hat.

Darüber hinaus sind viele Jobs mit einer Mischung aus Wartung und Neuentwicklung verbunden. Wenn Sie mehr Neuentwicklungen durchführen möchten, können Sie Ihre vorhandenen Wartungserfahrungen nutzen, um in eine gemischte Rolle überzugehen, die Ihnen mehr Entwicklungserfahrung bietet.

Zusammenfassend ist Ihr Lebenslauf wahrscheinlich besser als Sie denken. Ein Großteil davon hängt davon ab, wie gut Sie die Stärken Ihrer Erfahrung analysieren und diese Stärken dann im Bewerbungs- und Interviewprozess kommunizieren.


quelle
+1 Auf die breite Erfahrung . Nach 15 Jahren Entwicklung und dem letzten Jahr in der Wartung kann ich aus eigener Erfahrung sagen, dass ich viel mehr Sprachen und Plattformen berührt habe, als ich in der Entwicklung geblieben wäre. Als freiberuflicher Mitarbeiter habe ich das beruhigende Gefühl , dass mir nicht so schnell die Arbeit ausgeht , wenn ich über eine große Bandbreite (Generalist) verfüge. Vielleicht geht dies zu Lasten der Möglichkeit, beim Spezialisieren mehr Geld zu verdienen (Spezialist), aber ich würde das Risiko eher verringern.
Lieven Keersmaekers
2

Beeinträchtigen bestimmte Rollen in der Wartungsprogrammierung eine frühe Karriere?

Meistens - JA, vorausgesetzt:

  • diese karriere bedeutet hier die kompetenz in vielen verschiedenen technischen fähigkeiten.
  • dass Sie mehr als X Jahre dort verbringen, wo X ausreicht, um Ihre Denkweisen zu "bestimmen".
  • dass du nichts beiseite tust.
  • dass "dedizierter Betreuer" (siehe EDIT, unten) bedeutet, dass Sie nicht sowohl Code zum Betreuen als auch neue Dinge codieren, sondern dass Sie fast immer Code zum Betreuen oder sogar Bearbeiten eines Projekts im Wartungsmodus verwenden - zumindest keine neuen Funktionen erforderlich Änderungen im Code, um den Fehler zu beheben.

Dies bedeutet nicht, dass dies immer der Fall ist.

Leute, die Software warten, werden selten aufgefordert (siehe EDIT, unten), Nachforschungen anzustellen, können selten neue Bibliotheken oder Datenbanken einbinden und einige Tage damit verbringen, herauszufinden, wie diese funktionieren. Es ist (normalerweise) ein fester Job, der minimale Änderungen an der vorhandenen Codebasis erfordert und somit die Art und Weise "formt", wie Sie später Probleme angehen. Ich kann eine ganze Reihe von Unternehmen nennen, die eine Richtlinie für die Pflege von Software haben, in der ausdrücklich angegeben ist, dass "weniger Änderungen im Code = besser" sind, obwohl dies schlimme Folgen haben kann.

Haben andere Programmierer das Recht, Rollen wie diese zu meiden?

Ich kenne sehr gute Betreuer, die ihre Jobs mögen und sich nicht für etwas anderes bewerben möchten , weil es dort angenehm ist, wo sie sind. Nicht jeder lernt gerne ab und zu etwas Neues. Also - vermeiden Sie es oder suchen Sie es, je nach Ihren Vorlieben.

Werden Sie durch diese Tätigkeit zu ähnlichen Aufgaben gezwungen, es sei denn, Sie sind bereit, als Junior von vorne zu beginnen?

Meistens - JA. Weil Sie bereits Erfahrung damit haben, weil Sie bereits "die Seile kennen" usw. Aber eine Verschiebung ist definitiv möglich und kann ohne Bewerbung um eine Juniorposition erfolgen. Sie haben bereits angefangen, Dinge beiseite zu legen, bleiben Sie dran! Das ist tatsächlich sehr lohnenswert und kann die 'Fähigkeitslücke' verringern, die Sie bemerkt haben.


EDIT: Dan hat (zu Recht) darauf hingewiesen, dass Wartungsarbeiten oft mit Recherche durchgeführt werden können. Das ist wahr. Ich habe die Antwort oben an zwei Stellen geändert, um dies besser anzugehen.

Solche Aufgaben KÖNNTEN sicherlich auf diese Weise erledigt werden, und wenn sie es sind - großartig! Die AFAIK-Verantwortlichen für LEGACY-Systeme haben jedoch Richtlinien oder Managementerwartungen und -fristen, die sie - wiederum häufig - dazu zwingen, das Problem mit möglichst geringen Änderungen zu lösen. Oft ist der Druck so hoch, dass Sie es vielleicht nicht wollen, auch wenn Sie dies auf diese Weise tun können. Vor allem, wenn es nicht IHR Code ist: Ohne Theorie (gemäß Ryle und Naur) riskieren Sie, mehr zu beschädigen, als Sie reparieren.

Trotzdem sollte angemerkt werden: Ich habe keine festen globalen Daten, ich spreche aus eigener Erfahrung - ich habe in einer Situation als OP gearbeitet, ich habe Leute mit 4 - 10 Jahren Erfahrung als Betreuer angeworben, ich habe mit vielen Betreuern gesprochen und ich kennen Leute, die als engagierte Betreuer arbeiten . Nicht nur Leute, die neue Dinge programmieren, sondern auch, um ein Projekt zu warten - engagierte Betreuer, deren einzige Aufgabe darin besteht, Fehler und Patches zu beheben, und nicht einmal eine neue Funktion, da es sich um ein altes Projekt handelt und es sich nur noch um den "Wartungsmodus" handelt.

LAFK sagt Reinstate Monica
quelle
@ dan1111, welche teile sind das nicht? Obwohl dies ein Duplikat ist, werde ich meine Antwort gerne verbessern.
LAFK sagt Reinstate Monica
Danke Dan. Ich werde meine Antwort etwas erweitern, um Teile hervorzuheben, von denen ich glaube, dass sie die Antwort auf Ihren Kommentar enthalten.
LAFK sagt Reinstate Monica
+1 für die zusätzliche Arbeit an der Antwort. Insbesondere das Erläutern des Umfangs Ihrer eigenen Erfahrung ist hilfreich, um die Glaubwürdigkeit der Antwort festzustellen.
"Leute, die Software warten ... können selten neue Bibliotheken oder Datenbanken einbinden und einige Tage damit verbringen, herauszufinden, wie das funktioniert." Das ist nicht wirklich meine Erfahrung. Wartungsprogrammierer müssen in der Lage sein, in etwas Unbekanntes einzutauchen und sein Wesen schnell zu verstehen (sei es ein Programm oder eine Bibliothek). Zumindest ist das der Fall, wenn Sie verschiedene Dinge pflegen; Wenn Sie jahrelang das Gleiche beibehalten, werden die damit verbundenen Nachteile nicht durch "Wartung" verursacht, sondern durch zu lange Arbeiten an derselben Sache (unabhängig davon, wo sie sich befindet) den Lebenszyklus).
user1172763
Hi @ user1172763. Ich muss sagen, Ihre Wartungsdefinition ist ziemlich außergewöhnlich. Ich glaube, der Teil, den ich für Dan hinzugefügt habe, befasst sich mit interessanteren Wartungsfällen wie Ihrem. Ich glaube jedoch nicht, dass es Standardwartung ist. Nur zur Verifizierung: Der Grund für die Abwertung ist, dass Ihre Erfahrung nicht mit meiner Antwort übereinstimmt. Dann geben Sie bitte Ihre Quellen an, wie ich meine angegeben habe, damit andere lesen und entscheiden können.
LAFK sagt Reinstate Monica
1

Ich müsste mich als ziemlich jünger in Bezug auf die Fähigkeitsstufe darstellen, da ich nicht die Tiefe des Wissensniveaus haben würde, die eine Person mit dreijähriger Erfahrung benötigt, die sich auf einen bestimmten Pfad in der Funktionsentwicklung konzentriert

Richtig. Sie können nicht sagen, dass Sie 3 Jahre Erfahrung in der Entwicklung von Systemen von Grund auf mit X, Y und Z haben. Sie müssen sagen, dass Sie 3 Jahre Erfahrung in der Wartung von Systemen von Grund auf mit X, Y und Z haben, es sei denn, Sie möchten Richtig liegen Sie in Ihrem Lebenslauf.

Ich habe das Gefühl, dass ich mich für ein Vorstellungsgespräch bei anderen Unternehmen, um der Wartung zu entfliehen, als recht jünger in der Qualifikation darstellen müsste, da ich nicht über die erforderlichen Kenntnisse verfügen würde, die eine Person mit dreijähriger Erfahrung benötigt, die sich auf einen bestimmten Sachverhalt konzentriert Weg in der Feature-Entwicklung wäre

Wenn Sie sagen wollen "Ich entwerfe und baue Systeme von Grund auf neu", dann müssten Sie sich selbst als Junior klassifizieren.

In der IT ist es durchaus üblich (und ich sage nicht, dass Sie das tun), dass die Leute davon ausgehen, dass sie, weil sie seit X Jahren arbeiten, über X Jahre Erfahrung verfügen und nach {unbestimmter Anzahl von Jahren} sollte als Senior {Widget} Entwickler angesehen werden.

Verstehen Sie mich nicht falsch, es gibt nichts Falsches an Wartungsarbeiten, jeder muss es irgendwann tun, aber was Sie bemerkt haben, ist, dass es Ihnen wahrscheinlich schwer fällt, das zu lange zu tun weg von dieser rolle in der zukunft. Dies geht oft einher mit dem "Feststecken", nicht das Erlernen neuer Technologien / Werkzeuge / Methoden.

Idealerweise möchten Sie eine Mischung aus "neuer" Systemarbeit und Legacy-Arbeit.

Positiv ist zu vermerken, dass Sie vermutlich viele verschiedene Architekturen (gut und schlecht) und unterschiedliche Ansätze gesehen haben, wie schlechte Entscheidungen dazu führen können, dass die alten Programmierer später viel härter arbeiten. Dies sind alles positive Faktoren, die hervorgehoben werden können.

Viel Glück!

ozz
quelle
0

Aus einem anderen Blickwinkel betrachtet, halte ich es für eine vermarktbare Chance, sich als Wartungsexperte zu verkaufen.

Als Eigentümer eines Softwareunternehmens, das mehrere Projekte gleichzeitig in Betrieb hat, ist eines der größten Risiken, das ich minimieren muss, das Versenden von Entwicklern und die anschließende Pflege ihres Codes.

Angenommen, Sie sind in der Lage, sich für Wartungsarbeiten zu begeistern (was wahrscheinlich der Fall ist, da Sie bereit sind, über Ihre Erfahrungen zu bloggen), wenn Sie zu mir kommen und Ihre Dienste als Wartungs-Guru anbieten - um zu garantieren, dass Sie alle verbessern Durch Umgestaltung, Optimierung und Dokumentation der verschiedenen Projekte meiner Entwickler wurde deren Code für eine langfristige Wartbarkeit überarbeitet - und Sie hatten eine Erfolgsgeschichte, die Ihre Garantie untermauerte, und ich stellte Sie blitzschnell ein.

Mein Rat wäre, dies zu versuchen. Positionieren Sie sich als Wartungsexperte und pflegen Sie Ihr Blog. Sie können auf etwas sein.

Kosta Kontos
quelle