Was definiert die Rolle des "Softwareentwicklers"?


10

Ich bin ein Junior-Softwareentwickler und arbeite seit weniger als einem Jahr für ein Unternehmen.

Während ich immer dachte, ein Softwareentwickler zu sein, bedeutet, etwas Software und CODE zu entwickeln, aber meine Aufgaben liegen eher in der Verwaltungsarbeit, wie dem Einrichten von Jenkins, SQL Replication usw.

Sind diese Arten von Jobs in einer Entwicklerrolle enthalten oder entwickelt ein Entwickler nur Software? Sollte ich mit meinem Manager darüber sprechen? Ist dies eine übliche Methode für Unternehmen, um "sich entwickelnde" Fähigkeiten zu bewerten?


9
Kommt darauf an, wer dein spitzer Chef ist.
Neil

Jedes Unternehmen definiert Rollen leicht unterschiedlich. Fragen Sie Ihren Manager, welche Verantwortlichkeiten und Erwartungen die Rolle mit sich bringt.
Bernard

4
Es gibt Zeiten, in denen Tischler Holz laden, Schubkarren schieben usw. Es ist alles Teil der Arbeit. Wenn Sie ein unerfahrener Schreiner sind, machen Sie wahrscheinlich viel mehr davon als ein leitender Schreiner.
Bryan Oakley

1
Softwareentwicklung> Code schreiben. Wenn ein Softwareentwickler nicht weiß, wie er einrichtet / verwendet und / oder den Wert von (einem Tool wie) Jenkins nicht kennt, dann wäre er per Definition ein (sehr) junger Softwareentwickler. Betrachten Sie es als On-the-Job-Schulung und schätzen Sie sich glücklich, dass Sie nicht in einer Umgebung arbeiten, in der Sie Ihren eigenen CI-Server auf Ihrer eigenen VM ausführen müssen, die in Ihrer Freizeit gewartet wird, um ein Software-Qualitätsniveau aufrechtzuerhalten erwartet, aber in der Praxis entmutigt, wenn Werkzeuge wie diese in ihren (meist manuellen) "Prozessen" nicht erlaubt sind.
Michael

Antworten:


11

Klingt für mich so, als hätten sie einen Junior eingestellt, weil sie sich keinen Senior leisten konnten, anstatt weil sie tatsächlich einen Junior wollten (jemanden, in den sie investieren und den sie betreuen können, bis sie Senior werden). Ich habe ein Team geleitet, dem diese Entscheidung von Managern aufgezwungen wurde, die es nicht besser wussten.

Er hatte alle möglichen unglücklichen Jobs wie das Erstellen von Schulungsvideos für Benutzer und dergleichen, und ich fühle mich immer noch schuldig, aber ich stand unter dem Druck zu liefern und die Erwartung war, dass das Hinzufügen eines Kopfes zum Entwicklungsraum die Dinge nur beschleunigen würde .

Es ist unglücklich, weil es Sie und Ihren Chef in schwierige Positionen bringt.

Er hat wahrscheinlich keine Arbeit, die er einem Junior anvertrauen kann, und Senioren, die er möglicherweise hat, können nicht von ihrem Alltag abgelenkt werden. Der einfache Ausweg besteht darin, dem Junior viele nicht entwicklungsbezogene Aufgaben zu übertragen, mit denen er auch nicht wirklich die Zeit älterer Entwickler verschwenden möchte.

Daraus ergeben sich jedoch einige Probleme.

Erstens erfordert die Art von Devops-Jobs, die er Ihnen gibt, wirklich einen erfahrenen Entwickler. Insbesondere sollte ein Build-Server von jemandem eingerichtet werden, der die Software erstellt und weiß, wo die Schwachstellen liegen.

Zweitens wird der Junior nicht nützlicher. Nach fünf Jahren würden Sie immer noch dieselben Aufgaben ausführen, da Ihnen die eigentliche Entwicklungsarbeit immer noch nicht vertraut werden konnte.

Drittens wird der Junior (wie Sie) irgendwann feststellen, dass er seiner eigenen Karriere nicht hilft. Die Annahme, dass Junioren von geringer Qualität sind und nicht wenig Erfahrung haben (und danach suchen), ist ein schrecklicher, aber sehr häufiger Fehler in dieser Branche.

Also, ja, setzen Sie sich mit Ihrem Chef. Aber verstehen Sie die Situation, in der er sich befindet. Sehen Sie, ob Sie eine Vereinbarung treffen können, die alle Probleme löst. Sie benötigen einen Senior-Mentor und einige Ihrer aktuellen Aufgaben müssen an einen Senior weitergegeben werden. Dies wird das Projekt verlangsamen, aber auf lange Sicht wird es sich auszahlen. Das ist der Punkt, den Sie brauchen, um zu Ihrem Chef und möglicherweise zu dessen Chefs durchzukommen. Überprüfen Sie auch, ob Sie etwas finden, das Sie als Gegenleistung anbieten können, um die Kosten zu senken.

Wenn Sie nicht können, möchten Sie vielleicht woanders suchen.


Dies sind KEINE "Senior Developer" -Aufgaben. Dies (Jenkins) folgt nur den Anweisungen. Ältere Entwickler entscheiden den Weg (aus Erfahrung), Junior-Entwickler folgen dem Weg. Wenn sich ein Junior-Entwickler über die Einrichtung von Jenkins beschwert, würde ich nach einem anderen Junior-Entwickler suchen. Die Zeit, die zum Einrichten benötigt wird, ist kürzer als die Zeit, um diese Frage zu stellen und die Antworten zu lesen. (Ich weiß, weil ich Hudson / Jenkins viele Male eingerichtet habe. Und Datenbankreplikation. Sooo viele Male.) "Mach es einfach", dann wirst du wissen wie. Wenn Sie nie lernen, wie man etwas macht, und erwarten, dass Sie führen, sind Sie nichts anderes als ein PHB im Training.
Michael

@michael_n: Stimme überhaupt nicht zu. Es gibt einen Unterschied zwischen dem Einrichten von Jenkins und dem Einrichten der gesamten Build-Umgebung, so dass der Aufwand aller Entwickler verringert wird und sichere Bereitstellungen mit einem Klick usw. möglich sind. Und das ist der Unterschied zwischen dem, was ein Junior Ihnen bietet und was ein Senior Ihnen geben wird, wenn Sie aufgefordert werden, einen Build-Server einzurichten.
pdr

... und dennoch stimme ich Ihnen zu: "Es gibt einen Unterschied zwischen dem Einrichten von Jenkins und dem Einrichten der gesamten Build-Umgebung." Genau. Ich denke, es hängt davon ab, ob Sie die Frage wörtlich interpretieren (ich habe es getan). Das Installieren von Jenkins ist ein Nachmittag. Das Einrichten Ihres make / ant / maven-Builds dauert Tage und kann leicht zu Wochen werden und muss richtig durchgeführt werden. Gute Manager können Dinge auf der Grundlage von Erfahrungen aufschlüsseln und delegieren (in dieser Hinsicht war ich in der Vergangenheit ein schlechter Manager und habe mich dafür entschieden, alles selbst zu tun, nur weil es tatsächlich schneller wäre. Aber das skaliert nicht und das " Team "entwickelt sich nicht weiter.)
Michael

@ Michael_n: Sehen Sie, was Sie meinen. Ich neige dazu, geringere Erwartungen an einen Manager zu haben, denke ich. Besonders einer, der aus finanziellen Gründen einen Junior anstellt und nicht für die zukünftige Planung.
pdr

7

Ich finde den Begriff "Softwareentwickler" gleichbedeutend mit "Programmierer". Ein Softwareentwickler ist also eine Person, deren Hauptverantwortung darin besteht, Code zu schreiben. In meinem ersten Job war mein Titel "Entwickler" und meine Hauptverantwortung war das Entwerfen und Codieren von Software. Aber ich denke, dass es keine genaue Definition des Begriffs gibt. Es wird von verschiedenen Personen unterschiedlich verwendet, wodurch die Bedeutung unscharf wird.

Damit ein Entwicklungsteam jedoch effizient arbeiten kann, müssen diese Dinge eingerichtet sein: CI-Server, SQL-Replikation, Bereitstellung auf Testservern, Überwachung von Testservern, Archivierung von Builds usw. (Möglicherweise gelten nicht alle in jeder Situation.) .

Diese Aufgaben nehmen in der Anfangsphase eines Projekts viel Zeit in Anspruch, nehmen jedoch weniger Zeit in Anspruch, sobald ein gutes Setup ausgeführt wird.

Leider möchten Entwickler lieber Code erstellen als Build-Server verwalten. Daher fallen diese langweiligen Aufgaben häufig in die Hände von Junior-Entwicklern, da die Senior-Entwickler wichtigere Aufgaben haben.

Ich habe noch kein Unternehmen erlebt, das diese Aufgaben als Mittel zur Bewertung von Fähigkeiten verwendet.

Wenn Sie mit Ihrer derzeitigen Verantwortung unzufrieden sind, würde ich vorschlagen, das Problem mit Ihrem Vorgesetzten zu besprechen.


1
Es gibt einen Unterschied zwischen den Begriffen nach diesem .
Bernard

1
auch nach diesem
smp7d

2

Es hängt davon ab, ob. Es scheint, dass verschiedene Unternehmen dies unterschiedlich definieren, und für einige ist es ein Überbegriff für eine Reihe technischer Funktionen. Für manche ist es nur ein Titel. Als ich die gleiche Frage stellte, bekam ich eine ähnliche Antwort wie "Nur Entwickler haben die Möglichkeit, dies in unserer Organisation zu tun", würde ich vielleicht sagen, aber das macht es nicht unbedingt zur Entwicklung.

Die theoretische Antwort lautet, dass ein Entwickler (im Vergleich zu Codierer / Programmierer) eine Person ist, die "Probleme löst", auch wenn sie nicht mit "Codieren" zu tun haben.

Sie möchten mehr codieren, fragen Sie also Ihren Manager nach weiteren Codierungsaufgaben oder möchten Sie einige der Dinge tun, die Sie durch Codieren tun? Sie haben betriebliche Dinge erwähnt, daher könnten einige davon möglicherweise von DevOps-Frameworks (Check Chef und Puppet ) ausgeführt werden, wodurch die Funktionen effizienter werden und kurz vor der Entwicklung stehen.


2

Es ist nicht ungewöhnlich, dass von einem Entwickler einige Systemadministrationsfähigkeiten erwartet werden . Als leitender Entwickler schätze ich, dass ungefähr 5% meiner Zeit für solche Aufgaben aufgewendet werden.

Wenn Sie jedoch keine Codierung durchführen, sollten Sie wahrscheinlich mit Ihrem Manager über das Abrufen von Codierungsaufgaben sprechen. Schließlich möchten Sie Codierungserfahrung aufbauen. Sie sind auch als Programmierer wertvoller als als Systemadministrator.


1

Code ist nicht besonders nützlich, wenn er nicht ordnungsgemäß in eine Anwendung integriert wird oder nicht auf die richtigen Daten zugreift. Daher scheinen die von Ihnen aufgelisteten Aktivitäten weitgehend mit den Aktivitäten eines Entwicklers übereinzustimmen. Ich sollte hinzufügen, dass Softwareentwickler auch in Dokumentation und Tests sehr durcheinander geraten. Dies sind Aktivitäten, die bei der Herstellung von Software erforderlich sind.

Es ist großartig, wenn Ihr Unternehmen über Spezialisten verfügt, die diese Aufgaben für Sie erledigen können. Wenn nicht, sind Softwareentwickler für alles verantwortlich, bis eine Anwendung in der Produktion bereitgestellt (und möglicherweise auch) und dort unterstützt wird.


0

Es ist ziemlich üblich, dass ein Entwickler in einem kleinen bis mittleren Unternehmen einige Serveradministrator- / DBA- / allgemeine Konfigurationsaufgaben übernimmt.

Wenn diese Aufgaben jedoch zu einem Hauptteil Ihrer Aufgaben werden, können Sie sich abhängig von Ihren Karrierezielen Sorgen machen. Obwohl Sie als allgemeiner Technologe wahrscheinlich in bestimmten Unternehmen erfolgreich sein können, kann dies bei einem Wechsel zu einem neuen Unternehmen viele Probleme bei Ihrem Übergang verursachen. Wenn Sie keine traditionelle Entwicklung durchführen, müssen Sie dies in Ihrem Lebenslauf deutlich machen. Wenn Sie nach einer von Ihnen beschriebenen Zeit in einem Job einen Job in direkter Entwicklung erhalten möchten, müssen Sie möglicherweise etwas akzeptieren, für das Sie aufgrund der Jahre in der Branche "überqualifiziert" sind.

Auf der anderen Seite kann es Unternehmen geben, die Entwickler mit unterschiedlichen Fähigkeiten suchen. Angesichts des aktuellen Trends, Code in Interviews zu schreiben, müssen Sie jedoch auch über erstklassige Codierungsfähigkeiten verfügen, selbst wenn für den Job nach dem Einstieg nur wenig Code erforderlich ist.

Wenn Sie nicht in Ihrer aktuellen Position stecken bleiben möchten, würde ich auf jeden Fall versuchen, die Situation bald zu beheben.

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.