Was macht einen guten Developer aus?

Was macht einen guten Developer aus?

Viele Developer sehen sich selbst als gute Developer. In einigen Fällen stimmt das. Das Problem ist aber, dass „guter Developer“ für verschiedene Menschen verschiedene Dinge bedeutet. Was macht also einen guten Programmierer aus und welche Eigenschaften sollte er haben?

Laut einer Studie der Evans Data Corporation gibt es weltweit 21 Millionen arbeitende Developer. Das ist eine riesige Summe an Leuten. Wie viele davon können jedoch auch als „gute Developer“ durchgehen? Schwer zu sagen, hier gibt es keine verlässlichen Daten zu diesem Thema. Ist es überhaupt möglich, solche Daten zu erheben? Dies ist eine Frage für Wissenschaftler – wir können nur davon ausgehen, dass ein guter Programmierer bestimmte Eigenschaften haben muss. Wir haben uns der Herausforderung gestellt und herausgefunden, was sie sind. Es ist offensichtlich, dass ein guter Entwickler über Programmierkenntnisse und neueste Technologien verfügen sollte. Aber was noch?

(Weiter-)Entwicklung im Fokus

Umfangreiches Wissen und Programmierkenntnisse sind eine Sache, aber ein Entwickler sollte sich auf die eigene Weiterentwicklung konzentrieren. Wie aus den Statistiken von Stack Overflow hervorgeht, verfügen über 76% der professionellen Programmierer über eine Universitätsausbildung. Für alle Developer, die das Prädikat „gut“ anstreben, ist die Ausbildung nur der erste Schritt. 91,1% der professionellen Entwickler verbessern ihr Wissen regelmäßig. 46,6% von ihnen besuchen Kurse, die entweder vom Arbeitgeber selbst oder anderweitig organisiert werden. 44,1% absolvieren Online-Kurse und über 25% trainieren ihre Programmierkenntnisse bei Hackathons und Coding-Contests, während über 16% Zertifikate erwerben.

Viele Menschen beenden ihre Ausbildung, sobald sie mit der Universität oder der Schule fertig sind, aber einem guten Developer ist das nicht genug. Das Sprichwort „man lernt nicht für die Schule, man lernt für das Leben“ kennt man ja. Die Wahl der Wege wie sich eine Developer weiterbildet, liegt weitestgehend beim Developer selbst. Ein guter Developer bildet sich im selben Takt, mit dem sich die Welt der IT ändert – immer am Ball bleiben! Robert C. Martin schreibt in The Clean Coder, dass Programmierer ihren Arbeitgebern die Wochenstunden widmen und +50% der Stunden zum Lesen, Lernen und Üben verwenden sollten. Martin warnt Programmierer ebenfalls davor, dass sie nicht aufhören dürfen, neue Sprachen zu lernen, wenn sie an der Spitze bleiben wollen. Ein guter Entwickler überprüft regelmäßig das Niveau seiner Kenntnisse und Fähigkeiten.

Die Gewichtung der Zeit

Ein Profi weiß seine Zeit zu schätzen. Ein guter Programmierer kann es sich nicht leisten, seine Zeit zu verschwenden, und deshalb wird auch die der anderen respektiert. In der Praxis kommt es auf ein kluges und effizientes Zeitmanagement an - sorgfältige Planung der Aufgaben und minimaler Ressourceneinsatz. Zum Beispiel ist es viel effizienter, einen Kunden direkt anzurufen, als endlose E-Mails hin und her zu schicken. Es sei auch zu vermeiden, die wichtigsten und zeitaufwändigsten Aufgaben auf den letzten Drücker zu erledigen.

Es gibt verschiedene Tricks und Techniken zum Einteilen der Zeit, bekannt ist bei den Entwicklern Scrum (Aufteilung der Arbeit in kleinere Phasen: geplant, in Bearbeitung, verifiziert, dringend, abgeschlossen), es gibt aber auch andere Dinge wie etwa die Pomodoro-Technik (Timer auf 25 Minuten und während dieser Zeit nur eine bestimmte Aufgabe), oder die 5S-Methode (fünf Regeln für einen ordnungsgemäß organisierten Arbeitsplatz).

Ein guter Developer verschwendet keine Zeit. Man sollte in der Lage sein, für jedes Projekt eine Dauer abzuschätzen und eine gründliche Planung der Teilaufgaben vorzunehmen. Viel herumgetrödelt wird nicht. Wenn man Code sieht, der nicht passt, sofort ändern – früher oder später gehört es sowieso gemacht. Aber gleichzeitig weiß auch ein guter Developer wann man mit dem Druck aufhören soll – keine zusätzlichen Aufgaben übernehmen, wenn man weiß, dass dies die Qualität der Arbeit mindert. So ein Programmierer vermeidet Eile, weil er sich bewusst ist, dass stressiges Schnell-Schnell der natürliche Feind von qualitativ hochwertiger Arbeit ist. Stattdessen wird man sich eher auf die Pflege eines sauberen Codes konzentrieren, der einen reibungslosen Ausbau ermöglicht. Ruhig bleiben, auch wenn sich die Frist immer näher kommt. In vielen Fällen kann ein solcher Ansatz ein Projekt retten, das auseinanderzufallen droht.

Dokumentation: gründlich

Viele kennen es wahrscheinlich – das Erstellen einer guten Dokumentationen ist eine der schlimmsten Aufgaben für Developer ist. Das Problem: niemand mag es, die Dokumentation schreiben zu müssen. Aber es mag auch niemand, eine schlecht geschriebene Dokumentation lesen zu müssen – sofern man sie überhaupt lesen kann. Ein guter Entwickler betrachtet die Vorbereitung der Dokumentation nicht als notwendiges Übel. Man ist sich bewusst, dass die Arbeit an einem Projekt reibungslos verläuft, solange alle Dokumente gründlich erstellt wurden. Ein guter Programmierer hat die Angewohnheit, die Arbeit überall dort zu erleichtern, wo es möglich ist. Dies gilt auch für die Dokumentation. Ist die Dokumentation gründlich, fehlerfrei, konsistent und transparent, so wird es einfach, alle benötigten Informationen zu finden. Erstens vereinfacht eine ordnungsgemäße Dokumentation die Arbeit aller Beteiligten bei einem Projekt. Zweitens wird es in Zukunft viel einfacher, neue Funktionen einfach zu implementieren (um sie dann anschließend wieder zu dokumentieren).

Also falls es noch nicht deutlich genug war: Dokumentation gehört gemacht und sie gehört vernünftig gemacht.

Fragen stellen

Der bekannte Satz von Sokrates „Oida ouden eidos!“ bedeutet so viel wie „Ich weiß, dass ich nichts weiß.“

Das gilt eigentlich für jeden von uns – auch für Software Developer. Ein guter Entwickler gibt auch offen zu, wenn er etwas nicht weiß. Im Gegensatz zu vielen anderen, die ja scheinbar sowieso alles wissen und in Wahrheit schnell online nachgoogeln, wenn gerade keiner herschaut.

Das ist aber keine long-term Strategie. Programmieren ist ein wissensbasierter Job, und niemand weiß alles. Ein guter Developer hat keine Angst, Fragen an diejenigen zu stellen, die klüger sind. Er wird sie einladen, ein bestimmtes Problem gemeinsam zu lösen und dabei neue Erfahrungen sammeln. Ein guter Coder sucht nach Hinweisen und Lösungen aus verschiedenen Quellen wie auch auf devjobs.at :-) Das Akzeptieren unserer Grenzen ist der erste Schritt in Richtung Größe, auch bei der Programmierung.

Testen, testen, testen

Ein guter Programmierer pfuscht nicht beim Testen des Codes. Nein, es wird sorgfältig bei jedem Arbeitsschritt wiederholt getestet. Dies ist ein vernünftiger Ansatz, denn dadurch kann später mühsames und zeitaufwändiges Suchen nach Fehlern vermieden werden. Um dieses Problem zu lösen, setzen sich neue Techniken zum Erstellen von Software durch, wie etwas test-driven-development (TDD). Ein guter Programmierer weiß, dass sorgfältiges TDD besser ist, als Zeit zu verschwenden, den gesamten Code zu debuggen. Je mehr Tests ausgeführt werden, desto bessere Ergebnisse werden erzielt.

Einige Experten geben sogar an, dass Programmierer, die TDD nicht verwenden, bis zum Jahr 2024 arbeitslos sein werden. Das mag vielleicht eine Übertreibung sein, aber Tatsache ist, dass Tests notwendig sind. TDD ist nur ein Beispiel für viele andere Verfahren, welche professionellen Entwicklern zur Verfügung stehen. Developer machen bei ihrer Arbeit nicht nur die Tests, sondern achten natürlich auch auf ihre Qualität – weitaus wichtiger als Quantität.

Sicher gibt es zu diesem Thema noch viel mehr zu sagen. Der Zweck dieses Artikels ist es, ein paar Denkanstöße zu geben und ein Problem zu signalisieren. Schauen wir uns alle mal um. Vielleicht sitzt ein guter Programmierer bei dir im Büro? Lass dich von diesem Artikel inspirieren, der beste Developer zu werden, der du sein kannst! Oder bist du vielleicht schon einer?