Tipps für das Durchführen von Coding Tests/ Programmiertests

Unternehmen führen in einigen Fällen Coding Tests (im Beitrag auch Prüfung genannt) durch, um die Eignung von Entwicklern für die ausgeschriebene Stelle festzustellen.

Bei solchen Programmiertests gibt es jedoch einiges zu beachten. Hier ein paar Tipps.

Hinweis: In unserem Fall handelt es sich in den meisten Fällen um Tests die räumlich entfernt stattfinden. Da die Kunden, welche die technische Seite überwachen, meistens in Deutschland sitzen und wir in Asien. Daher berücksichtigt dieser Beitrag auch stärker diesen Sachverhalt.

Überwachung der Prüfung

In den meisten Fällen wird man dem Entwickler/ Bewerber, nach einer kurzen Einweisung, den Rechner zur Verfügung stellen, auf welchem der Test durchgeführt werden soll.

Wir stellen hier auch den Internetzugang zur Verfügung, aus der Denkweise heraus, dass viele Entwickler heutzutage Google nutzen, um Wissenslücken auszufüllen.

Diese Nutzung von Google kann jedoch zu Herausforderungen führen. Aus folgendem Grund: Es kann sein, dass der Bewerber nach einem ähnlichen Test Online schaut und diesen komplett kopiert. (Besonders in Asien kann dies passieren)

Hierfür sollte man am besten folgende Sicherheitsmassnahme treffen:

  • Zuschaltung von TeamViewer: Es macht Sinn den Entwickler zu bitten, sich per TeamViewer (oder einem anderen Bildschirm-Werkzeug das den Remote Zugriff erlaubt) auf den Rechner des Prüfers zu schalten. Von dort aus kann dann der Test durchgeführt werden. Der Vorteil dabei ist, dass der Bewerter bereits in den ersten Minuten erkennen kann, welche Fähigkeiten der Bewerber besitzt und auf der anderen Seite kann man sicherstellen, dass nicht die “falschen” Internetseiten, für die Lösung der Aufgabe, aufgerufen werden.

Entwicklungsumgebung

Die wenigsten Programmierer wollen ihren Code ungetestete weitergeben. Daher sollte man eine vollständige Entwicklungsumgebung bereitstellen. Im Falle von PHP ist dies eine WAMP oder LAMP Umgebung, im Falle von .NET ein Visual Studio Paket.

Ohne diese Software besteht die Gefahr, dass der Entwickler sich unsicher fühlt und die Aufgabe vorzeitig abbricht. Umso unerfahrener der Entwickler, desto höher ist hier meistens die Unsicherheit.

Zeitraum

Wie lange sollte ein Coding Test dauern? Bedenkt man, dass der Programmiertest auch vom Prüfer überwacht werden sollte, macht es Sinn, die Prüfung kürzer zu halten. 45 Minuten bis 1 Stunde sollten ausreichen.

Dauert der Test mehrere Stunden, dann wird der Bewerber in den meisten Fällen nicht unter der Woche (Arbeitstage, Montag bis Freitag) teilnehmen können. Dafür müsste sich der Kandidat dann einen halben Tag und mehr frei nehmen. Dazu sind, besonders erfahrene, Programmierer oftmals nicht bereit. Und wer möchte schon am Samstag in ein Büro kommen?

Bei längeren Tests gibt es auch einige andere Konflikte. Zum Beispiel:

Für machen Entwickler stellt sich dann in manchen Fällen auch die Frage, ob der Code nicht für kommerzielle Zwecke weiterverwendet wird, und der Kandidat “ausgenutzt” wird.

Erfahrene Entwickler und Coding Tests

Erfahrene Entwickler haben oft die Tendenz Stellenausschreibungen und Bewerbungsprozesse zu meiden, welche Coding Aufgabe enthalten.

Ich habe schon von vielen Mitarbeitern gehört, dass diese Stellen abgelehnt haben, oder ablehnen würden, wenn zuviele technische Prüfungen enthalten sind. Besonders im Asiatischen Raum scheinen diese nicht wirklich beliebt zu sein. Ich kann mir jedoch auch vorstellen, dass es ähnliche Tendenzen im deutschsprachigen Raum gibt.

Folgendes ist zu beobachten:

Schlechte Entwickler haben schon eher die Tendenz an solchen Prüfungen teilzunehmen. Das liegt daran, dass die Entwickler meistens nicht so einfach eine Stelle bekommen und daher den Kompromiss eingehen.

Gute bis sehr gute Entwickler weigern sich jedoch in vielen Fällen solche Tests durchzuführen.

Was soll man tun?

Das ist ein grosses Dilemma. Denn was soll man machen wenn sich erfahrene Entwickler gegen solche Praktiken stellen? Meiner Meinung sollte man hier ein Fingerspitzengefühl entwickeln. Am besten ist es, wenn man den Coding Test in solchen Fällen mit technischen Fragerunden ersetzt.

Man kann bei sehr erfahrenen Programmierern (mehr als 8 Jahre Erfahrung) auch nochmal nachhaken, wie der Kandidat dazu steht. Als Kompromiss könnte man anbieten, denn Test kurz zu halten.

Frage: Wie effektiv sind solche Tests?

Viele Entwickler beschweren sich über solche Coding Tests, da diese nur den Zeitraum, in welchem er durchgeführt wird, bewertet.

Die folgenden Dinge sollten berücksichtigt werden:

  • Umgebung: Was wenn die Umgebung, gerade in der Zeit, in welcher der Test durchgeführt wird, sehr laut ist, und der Bewerber nicht konzentriert arbeiten kann?
  • Einarbeitungszeit: Es gibt soviele externe Faktoren, dass der Entwickler höchstwahrscheinlich 30 Minuten und mehr braucht, um sich einzuarbeiten. Dabei können die “Herausforderungen” bereits simpel sein, wie zum Beispiel eine Microsoft Windows Version, die der Entwickler nicht kennt und daher nicht weiss wie man Notepad öffnet.

Besonders erfahrene Entwickler wissen das und stellen die Effektivität solcher Überprüfungen in Frage.

Einige weitere Tipps welche ich bisher sammeln konnte:

  • Coding Aufgaben nur für Junior Programmierer: In vielen Firmen wird es so praktiziert, dass nur die Einsteiger einen Coding Test bekommen und die Entwickler mit mehr Jahren Erfahrung von solchen Tests ausgenommen werden. Für diese gibt es dann technische Fragerunden.
  • Tests immer unter Remote-Aufsicht: Da man den Entwickler nicht nur für ein zwei Wochen beschäftigt, sollte man sich die Zeit nehmen, die Prüfungen zu überwachen, in dem man die Entwickler auf den eigenen oder einen anderen Rechner via TeamViewer oder einem anderen Remote-Desktop Werkzeug aufschalten lässt und dann die Arbeit mitverfolgt. Alternativ kann man sich auch von Zeit zu Zeit hinzusetzen (auf den Remote-Desktop schauen), so dass man selbst nicht zu lange damit beschäftigt ist.
  • Samstage vermeiden: Ich habe noch niemanden gesehen, der glücklich darüber ist, an einem Samstag an den Arbeitsplatz zu kommen. Besser ist es, den Test kürzer zu halten und den Test unter der Woche durchzuführen.
  • Zeitverschiebung: Nach Asien hin gibt es eine Zeitverschiebung von 4 bis 6 Stunden. Gleichzeitig sind die meisten Kandidaten morgens früh verfügbar oder ab Nachmittags (wenn die Büroarbeitszeit bei der jetzigen Stelle vorüber ist). Der Test kann also, wenn er unter der Woche stattfindet, nur sehr früh morgens (4 Uhr bis 6 Uhr morgens, Zeit in Deutschland) oder ungefähr Mittags (14 Uhr bis 16 Uhr) stattfinden. Die Mittagszeit fällt vielen einfacher. Daher sollte man nach Möglichkeiten diese Zeit vereinbaren. (Bei einem Ausfall des Termins sitzt man dann nicht morgens unnötig vor seinem Rechner 🙂 )
  • Link mit Test: Es macht Sinn einen Test via Link per Email zu senden. Dieser Link wird so programmiert, dass die Prüfung im Browser, nach Klick des Links, geöffnet wird und nach einer bestimmten Zeit (zum Beispiel 30 Minuten) schliesst.
  • Test sollte nicht im Internet auffindbar sein: Der Test sollte nicht trivial sein, bedeutet, er sollte nicht über Google oder andere Suchmaschinen oder Foren auffindbar sein. Falls ein ähnlicher Code online zu finden ist, besteht die Gefahr, das der Entwickler sich davon zu sehr “inspirieren” lässt oder gleich alles kopiert.

Fazit

Generell kann man sagen, dass Entwickler mit vielen Jahren Erfahrung und auch Programmierer die eher sehr gut sind, solche Tests ablehnen. Besonders im Asiatischen Raum.

Da die meisten Kunden aus dem deutschsprachigen Raum jedoch auf solche Tests bestehen, sollte man das Ganze mit einer Priese Fingerspitzengefühl angehen. Oftmals kann man den Bewerber dann doch von solch einer Massnahme überzeugen.

Alternativ sollte man auf länger technische Gespräche zurückgreifen.

Die Tipps aus diesem Beitrag sollte zudem helfen, einen Coding Test/ Einstellungstest/ Interview/ Programmiertest erfolgreich durchzuführen.

Welche Erfahrungen haben Sie gemacht? Was sind gute Ansätze?

Interessante Links:
Was ist ein Entwicklertest?
Eine Diskussion rund um Programmier-Aufgaben für Einstellungsgespräche
Woran man einen guten Programmierer erkennt

Bilder: Flickr.com/ Rogers/ Official GDC/ Vega/ Suditu


Der Autor: Sascha Thattil arbeitet bei YUHIRO und hilft Unternehmern und Unternehmen beim einfachen Aufbau von Programmier-Teams in Indien. YUHIRO ist ein deutsch-indisches Unternehmen welches IT Firmen, Agenturen und IT Abteilungen Softwareentwickler bereitstellt.

Schreibe einen Kommentar