Tech Recruiting mit codewars.com

Ich hab mich immer schon gern mit Bewerbern in der IT beschäftigt. Und habe selbst auch schon so manches Bewerbungsgespräch hinter mich gebracht. Die Zeiten von “Und wo sehen Sie sich in 5 Jahren?” sind zum Glück vorbei, aber immer noch verzichten viele auf echte fachlich orientierte Auswahlkriterien. Wieso eigentlich?

Mal angenommen, ich wollte einen Koch für meine große Feier engagieren. Wär es da nicht normal und angemessen, mal Kostproben im wahrsten Wortsinn zu testen? Über Speisefolgen zu reden? Zutaten zu diskutieren? In der IT passiert etwas vergleichbares noch immer relativ selten. Dabei ist es so hilfreich, auf einer angemessenen fachlichen Ebene zu diskutieren.

Ich bin ja großer Fan davon, im Bewerbungsverfahren über Code zu reden. Indem ich mit Kandidat/in fachlich diskutiere, kann ich vielleicht Einblicke erhalten in

  • Text- und Problemverständnis
  • Lösungsstrategien
  • Vorlieben bzgl APIs, Technologie
  • Werkzeuge zur Fehlersuche
  • Aktualität

Aber die üblen Fehler möchte ich dabei nicht machen:

  • Programmieren an der Tafel ist Quatsch.
  • Niemand muss alles auswendig wissen.
  • Das ist hier kein Wettrennen. “Stoppuhr” ist tabu.

codewars.com als Gesprächsgrundlage

Auf codewars.com (Affiliate Link) gibt es eine große Zahl von Programmierrätseln (sog. “Code Kata”), die durch die dort versammelte Community kuratiert werden. Ich selbst nehme dort auch gerne teil. Die Rätsel sind nach Schwierigkeit sortiert, und verwenden das aus den japanischen Budo-Sportarten bekannte Kyu System. Dabei zählt man rückwärts, höhere Zahlen entsprechen niedrigeren Rängen.

Der Ablauf im Verfahren ist für mich stets dieser:

  1. Ich lade Kandidaten ein, denen ich ein gutes Abschneiden zutraue. Eine Einladung richtet sich immer an genau eine/n Kandidat/in
  2. Die Einladung kündigt eine Code Kata an (welche genau ist natürlich offen)
  3. Die Einladung beinhaltet Screen-Sharing Daten (Webex, Skype & Co)
  4. Kandidat/in nimmt sich eine Stunde Zeit, an einem ruhigen Ort mit Internet-Verbindung
  5. Zu Beginn stellen wir uns kurz vor und benennen dann die Aufgabe.
  6. Kandidat/in teilt den Screen und beginnt mit der Bearbeitung der Aufgabe. Das Ganze passiert im Browser, es muss nichts installiert werden. Kandidat/in wählt die bevorzugte Programmiersprache aus. Dabei sind Google & Co erlaubt.
  7. Mit dem erfolgreichen Abschluss der Aufgabe ist dieser Teil beendet. Oder nach einer Stunde Zeit, je nachdem was zuerst eintritt.

Bei der Bearbeitung der Aufgabe sind neben Kandidat/in idealerweise 2-3 weitere Entwickler dabei und beobachten die Bearbeitung. Wir achten dabei auf die oben genannten Eigenschaften und machen uns Notizen. Auf deren Basis treffen wir unmittelbar nach dem Termin eine Entscheidung: Weitermachen oder aufhören?

Beispiel Kata gefällig?

Ein Beispiel einer solchen Code Kata ist Do I get a bonus?. (Das ist keines von denen, die wir verwenden… 🤓) Ich habe hier die Ruby-Variante verlinkt, diese Rätsel lassen sich aber in einer Vielzahl möglicher Programmiersprachen lösen. Hier eine Adaption meiner Lösung auf repl.it. Kannst du den Code verbessern, so dass der Test erfolgreich ist?

Mich würde ja interessieren, ob andere ähnliche Praxisverfahren nutzen. In der früheren Firma habe ich zB Testaufgaben verschickt, die Kandidat/in dann offline lösen und nach einiger Zeit beantwortet zurücksenden konnte. Was machen andere?