Das Programmierer-Einstellungsinterview: die Sicht des Interviewers

Das Programmierer-Einstellungsinterview: die Sicht des Interviewers

Man soll es kaum glauben, in meinem bewegten Arbeitsleben habe ich bereits auf beiden Seiten des Tisches gesessen, und so habe ich durchaus auch Erfahrungen im Interviewen von Programmierern.

Anhand des Lebenslaufes ist es immer schwer, Entscheidungen zu treffen. Insofern lade ich alle Kandidaten ein, die irgendwie in Frage kommen (im Rahmen der verfügbaren Zeit). Eine höfliche Absage kann ich immer noch schreiben. Und wer weiß? Bill Gates hatte bestimmt einen miesen CV. Ich suche ja auch keinen Schriftsteller oder Designer (teilweise mit entsprechenden Auswirkungen auf die Dokumentation bzw. auf das Aussehen der SW).

Wichtig ist natürlich, zu wissen, wen man sucht. Spielt Dokumentation eine große Rolle bei der Aufgabe, sollte man auch viel eher auf die sprachlichen und schriftlichen Fähigkeiten des Kandidaten achten.

Nun, zuerst einmal gebe ich einen kurzen Überblick über die Aspekte, die bei einem Kandidaten abgeklopft werden sollten:

  • Auftreten, Erscheinungsbild (z. B. wichtig für Kundenkontakt)
  • Umgangsformen (z. B. wichtig für Integration und Zusammenarbeit)
  • Technische Fertigkeiten, direkt in Bezug auf die Aufgabe
  • Technische Fertigkeiten im weiteren Umfeld der Aufgabe
  • Erfahrungen
  • Charakter

Technische Aspekte sind sehr wichtig, aber bei weitem nicht alles.

Auftreten und Erscheinungsbild

Auftreten, Erscheinungsbild sowie Umgangsformen sollte jeder leicht selber beurteilen können und sehen, ob der Kandidat paßt oder nicht.

Charakter

Spannender sind Dinge wie z. B. der Charakter. Hier sollte man auch darauf achten, daß der Charakter grob zu der Aufgabe paßt. Wer im Vertrieb (zumindest teilweise) arbeiten soll oder auch mal auf Messen geschickt werden soll, wer evtl. auch eine Leitungsrolle übernehmen soll, sollte deutlich stärker extrovertiert sein als jemand, der nur vor seinem Bildschirm hocken sollte. Er sollte aktiv auf Menschen und Aufgaben zugehen.

Sucht man einen Politiker? Oder jemanden, der geradeheraus Klartext redet? Der Politiker wird oft gut mit anderen zurechtkommen. Derjenige, der Klartext redet, wird früh auf eine Zeitverzögerung bei Projekten hinweisen (immer wieder problematisch, teilweise bei Airbus, Opel und bei zahlreichen anderen Herstellern).

Erfahrungen

Natürlich sollten auch die Erfahrungen grob abgeklopft werden. Wobei man hier aufpassen sollte. Mit 6 Jahren C# Erfahrung kann ein absoluter Meister vor einem sitzen, oder auch jemand, der sich 6 Jahre lang von seinen Kollegen hat mitschleppen lassen oder seinem Chef alle nur erdenklichen Ausreden präsentiert hat. Neben dem „ich kann, weil ich schon x Jahre damit gearbeitet habe” sollte man zumindest testweise ein wenig tiefer bohren. Wer umfangreiche Erfahrung hat, kann sowohl inhaltlich wie auch technische viel erzählen.

Technische Fähigkeiten

Dieser Punkt ist oft besonders wichtig. Kommt bezüglich der anderen Punkte noch ein „gutes Bauchgefühl” hinzu, hat man einen richtigen Kandidaten gefunden.

Ein extrem wichtiger Punkt jedes Interview besteht darin, herauszufinden, wie fähig der Kandidat ist in dem Bereich, in dem er arbeiten soll. Jeder andere Punkt ist auch wichtig und kann für sich einen ansonsten starken Kandidaten zu einer schlechten Wahl werden lassen, wenn er z. B. in einem Team eingebunden ist, aber sich nicht an Absprachen hält, nicht mit Deadlines umgehen kann oder die generelle Zusammenarbeit und Kommunikation mit ihm schwierig ist.

Aber wenn jemand fachlich fähig ist kann man ihn zumindest immer noch in den Keller schließen und alleine vor sich hin programmieren lassen. Wenn alle Stricke reißen und er zumindest dazu in der Lage ist – was auch nicht immer der Fall ist.

Wichtige Punkte:

  • Kann er (analytisch) denken?
  • Kann er programmieren?
  • Kann er schön programmieren?
  • Kommt er mit großen Designs zurecht (komplexe Klassen, etc.: z. B. C++/C#/Java)?
  • Kommt er mit komplexen Designs zurecht (z. B. globale Variablen, wenige Möglichkeiten zur Struktur: z. B. C/embedded)?
  • Blickt er über den Tellerrand (denkt auch für andere mit)?

Der Programmierer als solcher muß eine Reihe von Fertigkeiten besitzen, die, je besser sie entwickelt sind, ihn jeweils zu einem besseren Programmierer machen. Die Kenntnis einer bestimmten Programmiersprache ist hier nur ein Teilaspekt. Ist jemand ein sehr guter Programmierer in einer Programmiersprache, stehen die Chancen sehr gut, daß er auch in einer anderen Sprache sehr produktiv eingesetzt werden kann. Das gleiche gilt für Betriebssysteme, Anwendungsgebiete, usw. Natürlich entsteht anfangs ein entsprechender Overhead, der einen Einsatz oft unsinnig werden läßt. Allerdings kann auch die Zusammenarbeit mit jemandem, der bereits auf verschiedenen Gebieten überzeugt hat, erstrebenswert sein. Hier wird man zwar vermutlich mehr Zeit (und Geld) investieren müssen, als wenn man jemanden findet, der perfekt paßt, andererseits kann man die Ergebnisse deutlich besser einschätzen (da man die Person einschätzen kann), und der scheinbar perfekte Kandidat kann sich immer noch als deutlich schlechter entpuppen.

Wen suche ich?

Ganz wichtig ist auch die Frage, für welche Aufgaben genau ich jemanden suche. Wer ein Design erstellen soll, komplexe Algorithmen programmieren soll oder 1:1 Vorgaben in Code umsetzt, muß jeweils unterschiedliche Fähigkeiten haben. Und wer zwar alles kann, aber nachher z. B. nur Funktionsrümpfe nach UML-Diagrammen mit Code füllt, wird sich evtl. unterfordert vorkommen und auf alle Fälle deutlich unter seinen Möglichkeiten bleiben, was auch in Niemandes Interesse sein kann (Huxley hat bereits erkannt, daß es für jeden eine vom Anspruch her passende Tätigkeit gibt. Wobei in der Welt, in der wir leben, sich primär die Aufgaben nach den Ansprüchen des Suchenden richtet, während in Huxleys Schöner Neuer Welt die Menschen passend zu den Aufgaben angepaßt wurden, was viel effizienter ist).

Dienst nach Vorschrift oder Engagement

Diese Frage ist durchaus nicht eindeutig zu beantworten. Würde zunächst jeder sagen, daß ein kreativer, innovativer, engagierter Mitarbeiter stets die erste Wahl ist, so gilt das nur in bestimmten Betrieben.

Viele gerade größere Betriebe ziehen ihr reibungsloses Funktionieren aus der Gleichschaltung aller Mitarbeiter. Das geht teilweise so weit, daß es ein großes Handbuch gibt („Vorschrift”), an das sich jeder zu halten hat. Wer hier eine gute Idee hat, Dinge anders machen möchte, verbessern möchte, riskiert, ein ganzes, funktionierendes System aus dem Gleichgewicht zu stoßen. Das möchten dann die Vorgesetzten gerne verhindern und blockieren.

Es ist gut, den Interviewten grob auf die Einstellung der Firma in diesem Punkt hinzuweisen. Gerade junge Bewerber, die noch die Welt (bzw. die Firma) positiv verändern wollen, werden sonst schnell frustriert und entweder lustlos weiterarbeiten oder von dannen ziehen, beides kann in Niemandes Interesse sein, und der Unterschied sollte nie unterschätzt werden. Engagiert zu sein, allerdings ausschließlich in engen Grenzen, ist nicht jedermanns Sache.

Und das Gleiche gilt andersherum: wer immer genau gesagt bekommen hat, was zu tun ist, oder die passende Anweisung nachgeschlagen hat, wird mit viel Freiraum leicht überfordert werden.

Was erwarten beide Seiten?

Es ist gut, grob abzuklappern, daß beide Seiten eine ähnliche Vorstellung von einem guten Arbeitstag haben.

  • Wie viel Zeit wird in Meetings verbracht?
  • Wenn ich Hardware/Software brauche, wie lange dauert es, bis ich sie auf dem Tisch stehen habe? Muß ich einen schriftlichen Antrag schreiben?
  • Gibt es Einzel- oder Großraumbüros?
  • Wie ruhig ist die Arbeitsatmosphäre?
  • Wird Individualität zugelassen? Z. B. jemand, der gerne beim Arbeiten Pizza ist, gerne von Mittags bis Mitternacht arbeitet, oder gerne per Kopfhörer Musik hört?
  • Wie lernbereit ist der Kandidat?
  • Wie selbständig kann der Kandidat arbeiten? Muß jede Aufgabe detailliert erklärt werden, oder kommen bei den unklaren Punkten automatisch Rückfragen?
  • Gibt es eine Atmosphäre des „Fehler Vermeidens”, in der niemand etwas wagt und ihm so auch nichts passieren kann, oder des erlaubten Ausprobierens, wo auch mal etwas schiefgehen kann, so lange die Gesamtbilanz stimmt?

Aufgaben des Interviewers

Selbstverständlich sollte man dafür sorgen, daß der Programmierer sich wohl fühlt. Macht man das nicht, sollte es besser Teil eines gut durchdachten Planes sein, die Streßbewältigungsstrategien des Bewerbers zu überprüfen.

Stets etwas zu trinken da zu haben gehört selbstverständlich dazu, ebenso wie das Rumführen zum Arbeitsplatz und eine ausführliche Beschreibung der Aufgabe. Hat der Bewerber eine weite Anfahrt und kommt über Mittag sollte ein Mittagessen angeboten werden oder zumindest eine Lokalität in der Nähe empfohlen werden.

Ebenso sollte man Firma wie Aufgabe nicht im luftleeren Raum präsentieren, sondern insbesondere im Zusammenhang des Umfelds sehen. So können Unterschiede und Besonderheiten schnell aufgezeigt werden.

Fazit

Man sollte sich also vorher gut überlegen, wen genau man sucht. Das bezieht sich sowohl auf das Technische, aber insbesondere auch auf den Menschen. Insbesondere, wenn eine längere Beziehung eingegangen werden soll, gilt das aktuelle Wort des Chefs der Deutschen Bank über seinen Nachfolger:

„Die fachliche Qualifikation ist nicht so entscheidend wie der Charakter…”
~~Josef Ackermanne

Bei einer Zusammenarbeit, die eher kurz ist und evtl. auch wenig Berührungspunkte bietet, mag das Fachliche deutlich schwerer wiegen.

In der perfekten Welt läßt man jeden Bewerber 1-2 Tage Probearbeiten und befragt anschließend die Kollegen, was sie sagen. So wird der Bewerbungsprozess ein wenig teurer (wenn mehr als 2-3 Kandidaten so weit kommen und dann raus fallen, liegt noch ganz wo anders ein großer Fehler), dafür spart man sich größere Summen aufgrund seltener Fehlerentscheidungen und sorgt insbesondere für eine bessere Zusammenarbeit.

Auf alle Fälle sollten man einen Kandidaten Code schreiben lassen. Am besten für Probleme, die später im Alltag auftreten könnten. Das ist die beste Möglichkeit, fachliche Kompetenz abzuklopfen und mit einer großen Wahrscheinlichkeit sicherzustellen, daß der Kandidat fachlich paßt.

Wichtig ist noch, sich selber einschätzen zu können. Worin unterscheiden wir uns vom Wettbewerb? Was macht uns zu einem besseren Arbeitgeber, wo sind wir noch schlechter, und wenn ja, werden wir uns verbessern? So kann man dem Programmierer recht schnell mitteilen, was er an Besonderheiten zu erwarten hat.

One thought on “Das Programmierer-Einstellungsinterview: die Sicht des Interviewers

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.