Was einen guten Entwickler ausmacht!
Seit längerem hatte ich nicht die Gelegenheit, einen neuen Beitrag zu verfassen. Heute ist es mir endlich mal wieder gelungen. Das Thema dreht sich dieses Mal nicht direkt um die Entwicklung von Software, sondern um die Eigenschaften eines Entwicklers.
Denn: was macht eigentlich einen guten Entwickler aus? Diese Frage stellt sich wohl jeder einmal. Produktivität? Abstraktionen auf hoher Ebene? Viel Ahnung vom Fach? Eigeninitiative? Kreativität? Selbstständigkeit? Kommunikionsfreude? Planung bis ins letzte Detail?
Man könnte sagen: von jedem etwas. Leider kann jede dieser Eigenschaften auch negativ auffallen bspw. durch Overengineering oder durch zu hohe Produktivität (hacken). Ich weiß, das hört sich jetzt am Anfang etwas komisch an – hat aber alles seine Richtigkeit.
Wenn ein Entwickler auf einer zu hohen Ebene Abstrahiert, kann es passieren, dass die Produktivität leidet (er verstrickt sich in Themen, die eigentlich total irrelevant sind, wodurch er mehr Zeit benötigt) – aus Sicht eines Unternehmers ist dieser Punkt durchaus schlecht. Auch wenn der Ersteller hierbei denkt, dass man diese Komponente immer und immer wieder verwenden kann.
Was häufig vergessen wird ist die Dokumentation bestimmter Komponenten. Ehrlich, man muss nicht alles dokumentieren – aber es gibt durchaus Projekte oder auch Bestandteile, die beschrieben werden müssen.
In der Uni lernt man gerne, dass Datenbanken immer nach bestimmten Konformen angelegt werden müssen. In der Realität wird man dann eines besseren belehrt. Denn nicht alle „Tricks“, die man lernt, sind sinnvoll. Das hat dann entweder mit Performance zu tun, oder einfach nur mit der Tatsache, dass gewisse Themen, die man lernt, nicht mehr den aktuellen Standards entsprechen.
Viele Entwickler Planen gerne (auch ich). Das bedeutet für Fachleute: UML Diagramme, Ablauf Diagramme und vieles mehr. Doch eigentlich sind derartige Themen überflüssig – ein grobes Konzept auf Papier reicht aus, um bestimmte Komponenten zu erstellen. In einem späteren Schritt können Ablauf als auch UML Diagramme erstellt werden, um es anderen Entwicklern nahe zu bringen, wie das Ganze funktioniert.
Selbstständigkeit ist gut für die Kollegen denkt man zunächst – aber auch dieser Punkt hat seinen Nachteil. Durch Rücksprache oder auch erhöhte Kommunikation können Denkfehler umgangen werden. Wodurch wir schon zum nächsten Punkt kommen: die Kommunikation.
Besprechungen sind ein Muss – das weiß jeder. Denn ohne Kommunikation ist das Unternehmen und auch die Mitarbeiter nichts wert.
Durch zu viel Rücksprache wird auch Zeit verschwendet, die nicht sein müsste.
Man sieht also, dass jeder Punkt Vor- als auch Nachteile hat. Was meiner Meinung nach einen guten Entwickler ausmacht ist relativ einfach – „Der Mittelweg“:
Kein Overengineering – aber auch nicht „einfach mal hinhacken“.
Rücksprache mit Kollegen – aber nicht permanent!
Dokumentation und UML als auch Ablaufdiagramme – zuerst sporadisch, dann digital für alle.
Eure Meinung?
Als kleiner Anreiz: Ich habe von einer kleinen Schule, die sich um die Ausbildung von Entwicklern kümmert, ein Buch bekommen, dass ich selbst schon kenne: Javascript Patterns von Stoyan Stefanov.
Jeder, der einen produktiven Kommentar hinterlässt, hat die Chance es zu gewinnen. Viel Spaß!