Der lise Blog:
Einsichten, Ansichten, Aussichten

„Road to Senior“: Ab wann bist du Senior Developer?

Update: In unserer Reihe „Road to Senior“ haben wir 2019 erklärt, was aus unserer Sicht einen Senior Developer ausmacht. Kern dabei ist das Erzeugen von hohem Mehrwert.

Welche individuellen Stärken man dabei vorwiegend ausnutzt, kann (und soll ) von Person zu Person unterschiedlich sein -  T-Shaped fällt hier gerne als Begriff.

Mögliche Stärken haben wir dabei in drei unterschiedliche Kategorien eingeteilt, die wir weiter unten nochmal genauer erläutern. 

Welcher Typ bist du? Programmierer, Teamplayer oder eher Vermittler? Finde es hier heraus!   

-----

Für die einen ist es nur ein Buzzword, für andere ein Titel, der Kompetenz, Respekt und Wertschätzung ausdrückt: Senior Developer. Je nach Unternehmen gibt es unterschiedlich viele Hierarchien für Softwareentwickler: Junior, Intermediate oder Lead Developer. Trotz der vielen Titel gibt es kein einheitliches Verständnis, was sie bedeuten.

Selbst Entwickler tun sich häufig schwer, sich entsprechend einzuordnen. Mit diesem Blogpost starten wir unsere Social-Media-Serie „Road to Senior“, mit der wir eine Antwort auf die Frage geben möchten: „Ab wann bist du eigentlich Senior Developer?“

Dazu muss aber erst einmal geklärt werden, was die Definition eines Senior Developers ist. Häufig liegt der Fokus auf den technischen Fertigkeiten, also der Expertise in Programmiersprachen oder Frameworks. Andere beziehen sich lediglich auf die Jahre an Berufserfahrung, die der Entwickler / Programmierer vorweisen kann.

Wiederum andere sehen den Unterschied zwischen Junior und Senior eher in der Rolle im Team. Denn Senior Developer leiten unerfahrene Junior Developer an. Nicht zuletzt wird der Grad an Selbstständigkeit und Verantwortlichkeit zugrunde gelegt. Ein Senior-Entwickler wird mit Projekten betraut, während ein Junior einzelne Aufgaben bearbeitet.
 

Senior Developer erzeugen Wert

Wir glauben, dass all diese Sichtweisen ihre Daseinsberechtigung haben. Kurz gesagt, ist ein Senior Developer der, der kontinuierlich hohen Mehrwert erzeugt. Es zählt also das Ergebnis! Wo ein Entwickler den größten Mehrwert durch das Leiten und Weiterbringen seines Teams erzeugt, ist ein anderer in erster Linie ein genialer Problemlöser, der brillante Produkte entwickelt.

Trotz der unterschiedlichen Developer-Typen muss festgehalten werden: die Mischung macht‘s. Auch der genialste Programmierer muss im Team arbeiten können und seinen Kunden verstehen, um gute Ergebnisse zu liefern.

Genauso muss jeder, der sich als Senior Developer bezeichnet, tiefgreifende Programmierkenntnisse vorweisen, ganz gleich, wie gut seine sonstigen Skills sind. Senior wird man also nicht automatisch durch X Jahre Berufserfahrung, sondern durch das Erlernen von bestimmten Fertigkeiten.
 

Vom Junior-Entwickler zum Senior-Entwickler

Unsere Social-Media-Serie "Road to Senior" baut auf diesem Verständnis vom Begriff des Senior Developers auf. Alle zwei Wochen werden wir ein Statement veröffentlichen, das erklärt, was ein Junior Developer tun muss, um Senior Developer zu werden. Die Skills sind verschiedenen Rollen zugeordnet.

Diese unterschiedlichen Entwickler-Typen sind:

 

Der Programmierer:

Er hat das technische Know-how, um selbstständig Produkte von hoher Qualität anzufertigen.

Sehr gute Programmierkenntnisse sind eine notwendige Voraussetzung, um Senior Developer zu werden. Viele Blogposts betonen richtigerweise, dass gutes Programmieren nicht ausreicht, um „Senior“ zu werden. Dennoch ist Programmieren der Hard Skill, der unseren Beruf ausmacht. Und spielt damit eine große Rolle auf dem Weg zum „Senior“.

Hierbei stellt sich aber direkt die nächste Frage – Was ist gutes Programmieren? Muss ein Senior Developer auch fortgeschrittene Konzepte wie Kovarianz und Kontravarianz in Vererbungshierarchien im Schlaf erklären können?

Muss er Leitprinzipien wie DRY, KISS, YAGNI und SOLID fehlerfrei ausformulieren können?

Muss er sicherstellen, dass seine Software sämtliche Kriterien einer hexagonalen Architektur erfüllt?

Um es mit den wichtigsten Worten eines Senior Developers zu sagen: "Es kommt drauf an".
 


Wie eingangs beschrieben wird man aus unserer Sicht zum Senior, wenn man kontinuierlich großen Mehrwert erzeugt.

Wer über Jahre hinweg produktive Software schreibt, wird vermutlich früher oder später auf spezielle Themen wie z.B. Kovarianz und Kontravarianz stoßen. Daher ist davon auszugehen, dass ein Senior Developer auch komplizierte Probleme der Programmierung kennt und lösen kann.

Ebenso ist es hilfreich, sich mit Architekturmustern oder Prinzipien wie DRY, KISS, etc. auseinander zu setzen, da unwartbarer Code wohl kaum lange Mehrwert erzeugen kann.  

All diese Werkzeuge sollten aber letztendlich nicht um ihrer selbst eingesetzt werden, sondern genau dann, wenn sie echten Mehrwert liefern. Die Werkzeuge nicht nur zu beherrschen, sondern angemessen zu beurteilen, wann welches Werkzeug einzusetzen ist, um echten Mehrwert zu erzeugen - das ist die Fähigkeit, die einen Senior Developer beim Programmieren ausmacht.

Zusammenfassend kann man sagen: ein Senior Developer weiß eben, worauf es ankommt. Das mag erstmal banal klingen. An diesen Punkt zu kommen, setzt aber in der Regel mehrere Jahre an Erfahrung voraus.

Oft muss man ein Werkzeug erst einmal falsch einsetzen, um zu erfahren, wie es richtig geht. Ein typisches Beispiel ist hier das Thema der Abstraktion.

Die meisten Programmierer werden früher oder später mal zu viel und mal zu wenig Code kopieren. Die dabei gewonnene Erfahrung hilft, in der nächsten Situation zu beurteilen, welche von beiden Varianten in einem konkreten Fall angebracht ist.

 

Der Teamplayer:

Er ist eine Hilfe für andere und sorgt dafür, dass sich sein Team ständig verbessert.

Meistens ist Software zu komplex oder langlebig, um von einer einzelnen Person entwickelt zu werden.

Wer also nicht in einem Team arbeiten kann, wird nur begrenzten Mehrwert erzeugen können und damit auch womöglich nie zum Senior Developer werden. Andersherum liegt in der Tätigkeit als Teammitglied das wohl größte Potenzial, um großen Mehrwert zu erzeugen.

Schließlich hat der (Senior) Developer hier maßgeblichen Einfluss auf die Arbeit vieler, anstatt nur auf die eigene.

In Hinblick auf die Teamdynamik werden vorwiegend diejenigen als „Senior“ eingestuft, die Führungsrollen in ihrem Team einnehmen.

Das bedeutet aber nicht, dass sie Weisungsbefugnis über andere haben oder möglichst viele Entscheidungen treffen sollten. Softwareentwicklung ist zu komplex, als dass man jemanden zwingen könnte, gute Ergebnisse zu erzeugen.
 


Trifft der „Senior Developer“ Entscheidungen also gegen den Willen des Teams, werden diese nicht konsequent umgesetzt werden und im Zweifel eher kontraproduktiv sein.

Gibt es beispielsweise die Anweisung für jedes umgesetzte Feature einen automatisierten Test zu schreiben, aber die Betroffenen sehen keinen Sinn darin, resultiert das schnell in Tests, die nur zusätzlichen Aufwand und falsche Sicherheit erzeugen.

Ist das Team hingegen davon überzeugt, dass Tests hilfreich sind, dann hat es auch die Motivation, nicht nur „irgendeinen“ Test zu schreiben, um bloß Anweisungen gerecht zu werden.

Entscheidungen sollten also vom Team im Konsens getroffen werden.

Die Führungsrolle spiegelt sich dabei eher darin wider, dass sich das Team gern an dem Senior Developer orientiert, da es dessen Meinung vertraut. Das erfordert nicht nur technisches Wissen, sondern auch Empathie, Geduld und die Fähigkeit, anderen zuzuhören und sie zu ermutigen.

Ein Senior Developer ist also nicht „besser“ als andere in seinem Team, vielmehr macht er das Team besser.

 

Der Vermittler:

Er kann sich auch mit Nicht-Programmieren verständigen und weiß daher, was nötig ist, um Nutzer:innen zufriedenzustellen.

Eine gute Software löst Probleme von Menschen. Wer eine solche Software entwickeln möchte, muss ausgiebig mit besagten Menschen kommunizieren. Dieser Aspekt ist der wohl am häufigsten vernachlässigte Punkt, wenn es darum geht, sich zum Senior Developer weiterzuentwickeln.

Programmieren ist letztlich eine Tätigkeit, bei der man einem Computer genaue Instruktionen gibt, wie sich dieser zu verhalten hat.

Eine zwingende Voraussetzung dafür ist eben genau zu wissen, was das gewünschte Verhalten ist.

Da Software meistens von Menschen genutzt wird, die diese nicht selbst programmiert haben, müssen Entwickler:innen das gewünschte Verhalten durch viel Kommunikation mit allen Beteiligten ermitteln.

Wird dieser Schritt übergangen, ist die Gefahr groß, dass man eine Software entwickelt, die zwar technisch exzellent sein mag, aber keinen weiteren Nutzen liefert.

Bedürfnisse von Nutzern zu identifizieren und richtig umzusetzen ist keine selbstverständliche Fähigkeit, sondern womöglich die Hürde, an der die meisten Entwicklungen scheitern.
 


Nicht umsonst ist User Experience Design ein präsenteres Thema denn je geworden. Der Mehrwert entsteht also an dieser Stelle nicht dadurch, dass ein Senior Developer technisch gut programmiert, sondern dass er das Richtige programmiert.

Neben den Endnutzern gibt es oft auch andere Stakeholder, die Interesse an der Entwicklung einer Software haben. Beispielsweise ein Auftraggeber, für den die Wirtschaftlichkeit der Entwicklung hohe Bedeutung hat.

Dieser kann aber schlecht allein beurteilen, ob sich die (Weiter-)Entwicklung einer Software lohnt, sondern ist dabei auf Einschätzungen und Erfahrungen der umsetzenden Entwickler:innen angewiesen. Ein Senior Developer ist sich der unterschiedlichen Interessen bewusst und berücksichtigt diese.

An dieser Stelle könnte man einwenden, dass der User Experience Designer für die Nutzerorientierung der Software verantwortlich ist und ein Manager sich um die Wirtschaftlichkeit zu kümmern hat.

Das widerspricht aber der Tatsache, dass Software all diese Interessen in einer einzigen technischen Umsetzung vereint.

Wenn ein Entwickler nicht die Fähigkeit hat, einem User Experience Designer zu vermitteln, welche Möglichkeiten es zur Umsetzung von Nutzerinteressen es gibt und wie aufwändig diese sind, ist es nicht verwunderlich, dass es zu unverhältnismäßig aufwändigen oder gar unmöglichen Anforderungen kommt.

Ebenso ist es verständlich, dass ein Manager Aufwände für die Umsetzung eines Features nicht nachvollziehen kann, wenn ein Entwickler nicht im Stande ist ein schwieriges technisches Problem verständlich zu erklären. Ein Entwickler braucht also die Fähigkeit, mit anderen Rollen zu kommunizieren und zwischen diesen zu vermitteln, wenn er großen Mehrwert erzeugen und damit ein Senior Developer werden will.

Unsere Meinung ist: Zu einem gewissen Teil sollte ein Senior Developer alle diese Rollen erfüllen können, denn nur dann wird er Erfolg haben.

 

Road to Senior bei X (Twitter)

Und jetzt wünschen wir viel Spaß mit unserer Social-Media-Serie „Road to Senior“! Wir freuen uns über Feedback, Anregungen und gern auch Themenvorschläge! Und deine Bewerbung! 


Senior Developer bei der lise GmbH

Wenn du bereit bist, als Senior Developer bei der lise GmbH zu arbeiten, dann bewirb dich bei uns. Die offenen Stellen findest du auf unserer Jobseite.

Natürlich kannst du bei uns auch als Junior Developer einsteigen. Durch Trainee- und Mentoren-Programme erleichtern wir dir den Einstieg und du kannst als Young Professional bei uns durchstarten.

Traumjob finden 

 

 

Diesen Artikel weiterempfehlen

 Teilen  Teilen  Teilen  Teilen