Peter Bucher Ralf Westphal

Blog

Nutze den Augenblick
und teile der Welt mit, was Du zu sagen hast.

Woran erkennt man einen guten Entwickler?

Freitag, 1. Mai 2009, 09:37 Uhr
Permalink | Kommentare (2) | Kommentare als RSSRSS

Am 13. Oktober 2008 haben Peter Bucher und ich unter dem Titel Noch Fragen, Bucher? Ja, Roden! angekündigt, jeweils zum ersten eines jeden Monats einen Kommentar zu einem vorab gemeinsam gewählten Thema verfassen zu wollen. Bisher sind in dieser Reihe folgende Kommentare erschienen:

Heute, am 1. Mai 2009, ist es nun wieder so weit, und unser Thema für diesen Monat lautet:

Woran erkennt man einen guten Entwickler

So wohl Peter wie auch ich haben uns unabhängig voneinander im Vorfeld unsere Gedanken gemacht, wie wir diesem Thema gegenüberstehen. Peters Kommentar findet sich zeitgleich in seinem Blog, folgend nun mein Kommentar zu diesem Thema:

So sehr sich die IT-Branche von anderen Branchen unterscheiden mag, eines haben sie alle gemeinsam – es müssen gewisse Voraussetzungen erfüllt werden, damit qualitativ hochwertige Produkte entstehen können:

  • Was: Zunächst werden hochwertige Rohstoffe und -materialien benötigt – denn wenn bereits eine Komponente eines Produktes minderwertig ist, wird es schwierig, darauf ein hochwertiges Gesamtprodukt aufzubauen.
  • Wie: Des weiteren ist ein gewisses Know-How und Handwerkszeug erforderlich, um zu wissen, wie die zu Grunde liegenden Rohstoffe und -materialien miteinander verarbeitet werden müssen.
  • Wer: Schließlich muss dieses Know-How auch von irgendjemandem ein- und umgesetzt werden. Hierbei gilt: Je besser jemand sein Handwerkszeug versteht, desto eher ist er auch in der Lage, es umzusetzen.

Die Behauptung, dass gute Entwickler also essenziell für den Erfolg einer Firma oder eines Projektes sind, liegt auf der Hand. Die spannende Frage ist nun jedoch: Woran erkennt man einen guten Entwickler?

Interessanterweise haben die meisten Menschen eine Vorstellung von einem guten Handwerker: Er arbeitet ordentlich, zuverlässig, kennt sich in seiner Domäne aus und weiß, welche Konsequenzen sein Handeln auf das Gesamtprodukt und potenziell sogar dessen Einsatzgebiet hat.

Nun könnte man annehmen, dass sich diese Merkmale auch auf Entwickler übertragen lassen. Genau das ist es, was Ralf Westphal und Stefan Lieser in ihrer Initiative Clean Code Developer in Worte versucht haben zu fassen: Sie haben Prinzipien, Regeln und Praktiken zusammengetragen, die gemeinsam ein Wertesystem bilden.

An Hand dieses Wertesystems können sich Entwickler zum einen weiterbilden, zum anderen sind Auftraggeber aber auch in der Lage, bestehende Leistungen und die dahinter stehenden Entwickler zu bewerten.

Das Projekt Clean Code Developer hat in den vergangenen Wochen sehr viel Aufmerksamkeit erfahren – zu Recht, wie ich finde. Allerdings sollte man sich davor hüten, zu glauben, damit wäre alles gesagt oder erfasst, was einen guten Entwickler ausmacht.

Es geht in diesem Projekt bewusst nämlich lediglich um das Wie, also um das oben bereits angesprochene Know-How und das Handwerkszeug. Eine Frage bleibt jedoch gänzlich unbeachtet und unbeantwortet: Was zeichnet einen guten Entwickler im Hinblick auf den Entwickler als Person aus?

Anders formuliert: Über welche persönlichen und charakteristischen Eigenschaften muss ein Entwickler verfügen, um erfolgreich und gut sein zu können?

Mit dieser Frage hat sich unter anderem auch Joel Spolsky beschäftigt, der darüber ein äußerst lesenswertes und – wie immer bei Joel – sehr amüsant geschriebenes und dennoch lehrreiches Buch mit dem Titel Smart and Gets Things Done: Joel Spolky’s Concise Guide to Finding the Best Technical Talent. geschrieben hat.

Die Quintessenz lautet: Ein guter Entwickler muss im Wesentlichen zwei Merkmale aufweisen:

  • Smart: Zum einen muss er “smart” sein. Joel Spolsky meint damit, dass ein guter Entwickler kreativ, aufgeschlossen und neugierig sein muss, dass er zudem bereit sein muss, ungewöhnliche Wege zu gehen, und dabei gleichzeitig in der Lage, gegebenenfalls um eine Ecke mehr zu denken als ein durchschnittlicher Entwickler.
  • Gets Things Done: Zum anderen muss er seine Aufgaben allerdings auch erledigt bekommen – und zwar in der vorgegebenen Zeit. Denn all die zuvor genannten positiven Eigenschaften nützen nichts, wenn es einem Entwickler nicht gelingt, auf den Punkt zu kommen und seine Aufgaben zeitgemäß abzuschließen.

Dieser Vorschlag kommt meiner persönlichen Vorstellung von einem guten Entwickler schon recht nahe, und trotzdem fehlt mir noch ein essenzieller Aspekt: Der innere Drang zur Weiterentwicklung.

Ein Aspekt, in dem sich die IT-Branche von jeder anderen Branche ganz gravierend unterscheidet, ist ihre Schnelllebigkeit: Was heute noch elitär und akademisch ist, gehört morgen schon als etablierte Commodity zum Mainstream und ist übermorgen hoffnungslos veraltet.

Nur derjenige, der in der Lage ist, der zunehmend schneller werdenden Entwicklung der IT-Branche zu folgen, und sich immer auf dem Laufenden hält, der bereit ist, stetig zu lernen und Altes wieder über Bord zu werfen – nur der wird in der Lage sein, dauerhaft smart sein zu können.

Die erste schlechte Nachricht lautet: Zu viele Entwickler finden sich selbst in dieser Beschreibung nicht wieder. Zu viele Entwickler verfolgen nicht, was auf dem Markt geschieht – zumeist mit der Begründung, dass es doch bisher auch funktioniert habe, und man durchaus auch ohne den Einsatz neuer Technologien entwickeln könne.

Die zweite schlechte Nachricht lautet: Als Auftrag- oder Arbeitgeber hat man schlechte Karten, daran etwas zu ändern. Der Drang, Veränderung und neue Entwicklungen zu verfolgen und mitzunehmen, besteht entweder in jemandem – oder eben nicht. Und wenn nicht, dann bekommt man ihn auch von außen nicht dazu, so zu werden.