// der php hacker

// archiv

Was macht einen guten Entwickler aus?

Geschrieben am 17. Feb 2009 von Cem Derin

bridge_web

Vor ein paar Tagen habe ich davon berichtet, wie man einen guten Arbeitgeber erkennt erkennen könnte. Viel Resonanz kam da nicht (außer von Chrisoph, auf den ich eigentlich mit dem Artikel reagiert habe). Macht aber auch nichts. Heute gehen wir das ganze mal von der anderen Seite an: Woran erkennt man einen guten Entwickler?

Neulich, nach einem Mittagessen kam mir der Satz über die Lippen, dass ein guter Programmierer faul und ungeduldig sein müsse. Das klingt erst einmal ziemlich wiedersprüchlich. Aber ich will mich erklären.

Faulheit

Ein guter Programmierer muss faul sein. Es muss ihm unangenehm sein, etliche Zeilen Programmcode zu tippen wenn er sein Ziel auch mit weniger Zeilen erreichen kann. Er muss zu Faul sein, ein und die selbe Aufgabe immer und immer wieder zu erleidgen, wenn er sich ein Script oder ein Programm schreiben kann, welches das für ihn erledigt. Ein guter Programmierer muss so unglaublich faul sein, dass er so viel wie möglich seiner täglichen Aufgaben automatisiert. Darüberhinaus versucht ein guter Entwickler seine Code-Bibliothek oder sein Framework so zu gestalten, dass er neue Applikationen mit so wenig Aufwand wie möglich erstellen kann.

Ungeduld

Ein guter Programmierer muss ungeduldig sein. Ein guter Programmierer wird nicht stundenlang über eine Optmierung brüten um seinen Code ein paar Nanosekunden schneller zu bekommen, wenn er in der selben Zeit das Projekt schon hätte zum Abschluss bringen können. Ein guter Entwickler wird die einfache, schnell zu implementierende Methode der komplizierten, langweirigen vorziehen. Einem guten Programmierer wird seiner aktuellen Aufgabe schnell überdrüssig, und er versucht sie so schnell wie möglich zu beenden.

Pragmatismus vor Dogmatik

Aus den beiden oberen Punkten ergibt sich eigentlich ein pragmatisch denkender Programmierer. Auf den Punkt bringt es Alexander Kriegisch auf seiner Seite, auf der er die Grundprinzipien von Scrum erklärt. Pragmatismus ist wichtiger als Dogmatik. Statt an starren Grundsätzen festzuhalten, sollte man einfache, simple Lösungen bevorzugen. Am Ende eines Projektes wird sich keine Jury deinen Code ansehen und dir Preise für besonders ausgefuchste Routinen verleihen. Im Gegenteil: Guter Code ist einfacher Code. Ist eine Lösung kniffelig, ist es eine schlechte Lösung.

Darüberhinaus gibt es natürlich auch noch fachliche Qualitäten. Die Anforderungen unterscheiden sich allerdings von Branche zu Branche. Sehen wir das hier einfach mal als erweiterte Soft Skills. Das sowohl aus Faulheit als auch aus Ungeduld keine schlampige Arbeit abgeliefert werden darf, sollte hierbei jedem klar sein. ;-)


#001
17. Feb 2009

Faulheit – das ist super und trifft es auf den Punkt! ;-)

Jein – mit der Ungeduld, behaupte ich. Der Begriff gefällt mir nicht und die Hinführung zum Pragmatismus verstehe ich ehrlich gesagt nicht ganz.
Du hast recht: idealerweise ist die Lösung für ein kniffliges *Problem* so simpel wie möglich.
Dies erfordert aber viel Abstraktionsvermögen, weshalb man sich mit Ungeduld bei der Lösungsfindung nach dem Prinzip “keep it simple” durchaus ein Bein stellen kann. Hier ist also im Gegensatz zur Ungeduld wenn es um schnellen Code geht, durchaus etwas Ruhe und Geduld gefragt.

Viele Grüße
Anne-Kathrin


#002
17. Feb 2009
unset

Hups. Da ist was verschütt gegangen. Ich habe heute Morgen aus der Bahn ein paar Änderungen eingepflegt, dabei hab ich wohl versehentlich was gelöscht. Habe ich nachgetragen (den unvollständigen Satz bei, “Ungeduldigen Entwickler”).

Ich denke, man muss sich auch im klaren darüber sein, dass “schneller” Code kein “schlampiger” Code sein darf. Dahingehend habe ich die Ausleitung noch einmal ergänzt.


#003
17. Feb 2009

Nett zusammengefasst – insbesondere dies: “Am Ende eines Projektes wird sich keine Jury deinen Code ansehen und dir Preise für besonders ausgefuchste Routinen verleihen. Im Gegenteil: Guter Code ist einfacher Code. Ist eine Lösung kniffelig, ist es eine schlechte Lösung.” scheinen viele Programmierer nicht zu checken. Warum auch immer.

Hier sehr gut beschrieben:

http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork

(“All that is complex is not useful. All that is useful is simple.” )


#004
18. Feb 2009
Pekka

100% D’accord!


#005
18. Feb 2009

Recht hast du :D
Hättest vielleicht noch die Prinzipien KISS und DRY erwähnen können ;)

// kommentieren

// senden
theme von mir, software von wordpress, grid von 960 grid system. funktioniert in allen browsern, aber der safari bekommt das mit der schrift am schönsten hin.