Eine gute Ausschreibung ist nur der erste Schritt zur Anwerbung eines neuen Entwicklers.
Einen Entwickler einzustellen und erst am Ende der Probezeit zu merken, dass er nicht die Anforderungen erfüllt, ist teuer. Kein Bewerbungsprozess ist perfekt, aber wir haben gelernt sehr vorsichtig zu rekrutieren, um keine Fehlentscheidungen zu treffen.
Wen suchen wir eigentlich?
Eine vermeintlich einfache Frage. Aber es ist wichtig hier Konsens zu schaffen, damit nach den richtigen Leuten gesucht werden kann. Wir entschieden uns für ein Brainstorming der Eigenschaften, die ein Entwickler für uns mitbringen sollte bzw. muss:
Bewerbungen kollaborativ bewerten
Mit einem gemeinsamen Verständnis für wichtige Eigenschaften konnten wir nun eingehende Bewerbungen kollaborativ bewerten. Transparenz ist uns wichtig, auch im Bewerbungsprozess.
Alle Bewerber listen wir auf einer Wiki-Seite auf. Bewerbungen bekommen dann von mindestens zwei Entwicklern jeweils ein
- “(+) Interessant. Einladen.” oder ein
- “(-) Nicht interessant für uns. Absagen.”
Aussagekräftige Bewerbungsgespräche
Eines vorweg: Viele Bewerber sind nervös. Würden wir das bewerten, wäre das ungerecht. Um für Entspannung zu sorgen machen wir mit jedem Bewerber zunächst eine ausgedehnte Führung durch unser Büro und zeigen ihm wie wir arbeiten.
Beim anschließenden Interview achten wir darauf unseren Bewerbern niemals Antworten in den Mund zu legen (“Für wie wichtig hältst du automatische Tests?”). Kein Bewerber wird hier eine schlechte Antwort geben. Lieber: “Was gehört für dich zum Entwicklungsprozess dazu und warum?”
Ganz wichtig: Immer möglichst offene Fragen stellen, zu denen der Bewerber etwas frei erzählen kann. Schlechte Fragen sind ”Hast du schonmal gearbeitet mit XYZ?”. Gute Fragen sind ”Stell dir das Problem XYZ vor. Wie würdest du versuchen es zu Lösen?” Situative Fragen geben Bewerbern die Möglichkeiten sich individuell vorzustellen und wir gewinnen einen genaueren Eindruck.
Generell müssen Bewerbungsgespräche vergleichbar sein. Für alle Fragen, die wir uns überlegt haben, definierten wir im voraus, was gute und was schlechte Antworten sind.
Adler erkennen wir in Gesprächen sehr schnell. Entweder am Leuchten in den Augen oder am interessierten Nachfragen.
Reden ist Silber, Programmieren ist Gold
Soft Skills sind wichtig, aber nicht alles. Jeden Bewerber, der beim Interview einen sehr guten Eindruck hinterlassen hat, laden wir zu einem halben Probetag ein. Hier hat das ganze Team noch mal Gelegenheit ihn persönlich kennenzulernen. Und der Bewerber lernt unser Team und unsere Prozesse kennen.
Wir lassen alle Bewerber Anforderungen ausarbeiten und anschließend umsetzen. Zur Umsetzung gibt es abschließend noch eine Code Review mit 3 Team-Mitgliedern. Das alles gehört bei uns auch zum normalen Entwicklungsprozess dazu.
Uns kommt es nicht auf technische Perfektion an. Die Aufgabe selbst ist auch nicht kompliziert. Wir bewerten überwiegend eher allgemeine Punkte:
- Subjektiver Eindruck: Passt der Bewerber in unser Team?
- Schnelle Auffassungsgabe
- Qualitätsanspruch und dessen Umsetzung in der Entwicklung
- Clean Code: Ist der Bewerber in der Lage verständlichen Code zu schreiben?
- Kenntnisse im Schreiben von automatischen Tests
- Fähigkeit zum Modellieren von Objektbeziehungen und evtl. Anwenden von Patterns
- Kritikfähigkeit
Einem Uni-Absolventen kann man Mangel an Erfahrung nicht ankreiden. Wir achten eher auf die Arbeitseinstellung, als auf Erfahrung.