Was macht einen großartigen Softwareentwickler aus?

Monitore auf dem man eine IDE sieht

Was macht einen großartigen Softwareentwickler aus? Es geht nicht nur darum, funktionstüchtigen Code zu schreiben. Es gibt eine Reihe von Eigenschaften, die ich bei den besten Entwicklern beobachten konnte. Doch was macht einen großartigen Softwareentwickler aus?

Ich schreibe in der männlichen Form, also der Softwareentwickler und nicht die Softwareentwicklerin. Das dient lediglich zur Vereinfachung von dem Lesefluss. Großartige Softwareentwickler sind Frauen wie Männer gleichermaßen.

Pragmatiker und Perfektionist.

Die Eigenschaft, die richtige Balance zwischen Pragmatismus und Perfektionismus zu finden. Es kommen Zeiten an denen es richtig ist, schnell einen dreckigen Hack zu schreiben. An anderen Tagen kommt die seltene Spezies der besten Entwickler auf meisterhafte Lösungen, die sowohl elegant und robust zugleich ist. Der gute Entwickler hat die Weisheit, welche dieser Optionen gerade angemessen ist. Anderen Softwareentwicklern fehlt das Auge zum Detail und wollen hauptsächlich Code, der läuft und vergessen dabei so manche Ausnahmefälle. Der Perfektionist beißt sich an seinen eigenen Code fest, findet unentwegt Dinge die besser sein können und wird nie fertig.

Großartige Softwareentwickler können jeden Bug fixen.

Mittelmäßige Programmierer verstecken sich vor dem Debuggen, selbst dann, wenn es ihr eigener Code ist. Großartige Coder empfinden Bugs als Herausforderung. Je schwieriger desto besser — sie sind diejenigen, die gerufen werden, wenn sonst niemand weiter weiß. Sie sind so sehr mit der Codebasis und dem Framework vertraut, dass sie einen angeblich unmögliche zu reparierenden Bug finden und eliminieren. Selbst dann, wenn der Fehler außerhalb ihres Codes liegt.

Gesunde Skepsis macht einen großartigen Softwareentwickler aus.

Der Wald und Wiesen-Entwickler wird am Ende des Tages eine Lösung geschrieben haben und nach Hause fahren. Die Herausragenden vertrauen ihren eigenen Code nicht, bis er ausgiebig getestet wurde. Das gilt auch für die Datenanalyse und Systemadministration. Ein durchschnittlicher Programmierer könnte eine harmlos aussehende Diskrepanz sehen und ignorieren. Wenn der Top Coder so etwas sieht, wird er vermuten, dass es ein Hinweis auf ein größeres Problem sein könnte. Er wird um die Ecke denken und dabei subtile Fehler entdecken.

Die besten Entwickler produzieren weniger Code.

Es geht nicht darum, welchen Code sie schreiben. Es geht um den Code, die sie nicht schreiben müssen. Jede Zeile ist ein potentieller Bug und jede Zeile muss gewartet werden. Die Besten der Besten haben die Fähigkeit, die Codebasis schrumpfen zu lassen, ohne dabei Features zu verlieren.

Alles außer Code.

Wenn man versucht mit ihnen über die “Beste Programmiersprache” zu diskutieren lächeln sie nur oder sind gelangweilt. Der großartige Entwickler wird keine einzelne Sprache verehren. Für sie ist die Sprache ein Werkzeug das ihnen hilft ein Problem zu lösen. Um einen Nagel in die Wand zu schlagen nimmt man am besten einen Hammer. 
Sie sind mehr als einfache Codemonkeys.

  • Gute Softwareentwickler machen sich Gedanken über die Architektur und sorgen dafür, dass diese eingehalten wird.
  • Sie können mit Managern und Kunden kommunizieren und vermitteln.
  • Sie verstehen, welches Problem der Kunde hat und zeigt ihnen die beste technische Lösung.

Jemand kann ein exzellenter Hacker, Programmierer, Coder… sein, aber es ist nicht das Selbe wie ein Softwareentwickler. Man beauftragt keinen Maurer, um ein Haus zu entwerfen.

Er kann zuhören.

Diese Eigenschaft ist äußerst praktisch als Softwareentwickler und auch in allen anderen Bereichen des Lebens. Wirkliches einfühlendes Zuhören löst bereits in der Planung etliche Probleme. Er hört zu, versteht und reflektiert das Gesagte. Dabei wird dem Auftraggeber oftmals ein Konzeptfehler vor Augen geführt, dass er ohne weiteres Nachhaken proaktiv korrigiert.

Diese Eigenschaften sind gewiss nicht alle, die es braucht, um zu den Besten zu gehören. Die Frage, was macht einen guten Softwareentwickler aus, sind wir nunmehr ein Stück näher gekommen.

Der großartige Softwareentwickler baut unentwegt Dinge

Es liegt in ihrer Natur. Wie ein Biber stets Dämme baut, Bienen ununterbrochen Nektar sammeln oder Hunde den Postboten jagen. Der großartige Softwareentwickler programmiert während der Arbeitszeit und hört zuhause damit nicht auf. Für ihn ist es ganz natürlich so. Niemand zwingt ihn das zu tun und er stellt es nicht in Frage. Es ist eine intrinsische Motivation und braucht keine Bestätigung von außen. Diese Art von Besessenheit teilen sich alle Ausnahmetalente. Michael Jordan hatte dieses Verlangen für Basketball. Warren Buffet ist unglaublich reich und geht trotzdem jeden Tag zur Arbeit. John Mayer spielt jeden Tag seine Gitarre. Die besten 1% der Softwareentwickler bauen täglich neue Software.

Er vermittelt sein Wissen

Wissen wird gerne geteilt

Die technischen Fähigkeiten besitzen die besten Entwickler seit langem. Sie sind in der Lage, ihr Wissen an andere zu vermitteln. Sie stellen sich die Frage, wie sie anderen Helfen können, bessere Entwickler zu werden. Seine Fähigkeiten inspirieren andere ein ebenso guter Entwickler zu werden. Bei Problemen ist er die erste Person, die man um Hilfe bittet. Er ist dabei stets Freundlich und Hilfsbereit. Es macht ihm Freude, andere wachsen zu sehen.

Er hört nie auf zu lernen

Die Welt der Software und Technologie ist extrem schnelllebig. Ein jeder Entwickler muss stets Schritt halten, ansonsten landet er auf dem Abstellgleis. Wenn der großartige Softwareentwickler nicht weiter weiß, dann weiß er sich zu helfen. Er verbringt keine Stunden oder Tage damit im dunkeln zu stochern. Er hat keinen falschen Stolz der ihn davon abhält, jemanden um Hilfe zu bitten. Die Phase der Arroganz hat er bereits hinter sich gelassen. Er bespricht das Problem, hört dem anderen aufmerksam zu und findet schnell und effektiv eine Lösung. Dieses so erlangte Wissen teilt er dann mit seinen Kollegen.

Er hat das Produkt und die Nutzer im Hinterkopf

Am Ende des Tages möchte eine Software benutzt werden. Sie soll einen Nutzen für den Anwender sein. Sie soll das Leben des Nutzers verbessern. In welcher Form auch immer. Wenn der großartige Softwareentwickler Beschwerden von Nutzern hört, dann nimmt er diese ernst. Ihm ist bewusst, dass jede Software Fehler hat und wird versuchen, das Problem zu lösen.

Die Besten der Besten können ihre Auftraggeber davon überzeugen, sinnlose Features zu verändern. Durch effektive Teamarbeit trägt er zu einer Produktverbesserung bei. Als Ergebnis entsteht eine Lösung, die weit besser ist, als alle vorherigen Alternativen. Durch sein Einfühlungsvermögen und aufmerksames Zuhören gelingt es ihm, die wahren Bedürfnisse der Nutzer zu finden. Dadurch ist er bei Meetings zum Produktdesign immer ein willkommener Gast.

Was macht einen großartigen Softwareentwickler nicht aus? Das Alter. Ich habe Entwickler kennen gelernt, die unnormal gut waren und zwar mit Anfang 20. Andere wiederum haben auch nach 20 Jahren Berufserfahrung das Niveau eines Anfängers.

Wenn du dich in dieser Beschreibung wieder findest, dann ist es vielleicht Zeit für eine Gehaltserhöhung. Den wertvollsten Tipp für die Verhandlung findest du hier: Die besten Argumente für die Gehaltsverhandlung

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.