DevSkiller-LogoTalentBoost-LogoTalentScore Logo

Code Review in der IT-Rekrutierung - warum und wie sollten Sie es nutzen?

April 21, 2016

Einer der wichtigsten, aber immer noch ignorierten Aspekte bei der Einstellung eines Softwareentwicklers ist die Überprüfung, wie der Kandidat mit dem Code umgeht und ob er in der Lage ist, seine Gedanken mit einer bestimmten Programmiersprache auszudrücken. Normalerweise tun wir dies bei der IT-Einstellung, indem wir den Kandidaten bitten, einen Code zu schreiben, der ein bestimmtes Problem löst. Der Kandidat kann dies alleine tun oder als Paarprogrammierung mit dem Personalverantwortlichen (Volltreffer mit Kodierungstests in natürlicher Umgebung [Fallstudie]). Wir tun es, weil das Schreiben von Code eines der wichtigsten Dinge ist, die Entwickler täglich tun. Wir sollten aber auch nicht vergessen, dass Entwickler viel häufiger den Quellcode lesen als schreiben. Wir sollten also nicht vergessen, zu überprüfen, ob der Kandidat in der Lage ist, einige Codeschnipsel schnell zu analysieren und zu verstehen. Wir können einfach einige Code-Ausdrucke zeigen oder (noch besser) eine IDE mit einem Projekt geben und Fragen stellen, die sich darauf beziehen, was hier passiert. Das ist der Punkt, an dem die Code-Review-Herausforderung wirklich hilfreich ist.

Wie prüft man die Programmierkenntnisse von Bewerbern während eines technischen Interviews?

In Bezug auf das oben Gesagte sehen wir, dass wir die meiste Zeit während des technischen Interviews/der Beurteilung damit verbringen, zu überprüfen, ob der Kandidat in der Lage ist, einige Programmierherausforderungen oder Probleme zu lösen. Der Kandidat konzentriert sich darauf, das Problem zu verstehen und zu analysieren und dann eine geeignete Lösung zu finden. Wir können jedoch feststellen, dass der Kandidat gezwungen ist, mehr darüber nachzudenken, "was er tun soll" als "wie er es tun soll". Wenn wir den Kandidaten bitten, einen Code zu schreiben, der in der Lage ist, unter bestimmten Bedingungen einen Sitzplatz für einen Flug zu reservieren, ist das Ziel, die korrekte Funktionalität auszuliefern, und meistens ist das aufgrund von Stress und Zeitbegrenzung alles, was der Kandidat tun kann. Gibt es eine Möglichkeit, diese Situation umzukehren und den Kandidaten sich auf das "Wie" konzentrieren zu lassen? Ja! In den vielen Jahren, in denen ich aktiv am IT-Sourcing und der Einstellung von Entwicklern oder Architekten beteiligt war, habe ich Code-Reviews eingesetzt.

Was ist Code-Review?

Code-Überprüfung ist ein Prozess, bei dem Programmierer gegenseitig ihren Code überprüfen, um mögliche Probleme, Fehler oder Abweichungen von Best Practices zu finden (wenn Sie mehr darüber erfahren möchten, gehen Sie zu Wikipedia). In den letzten Jahren ist Code-Review ein unverzichtbares Element des Software-Auslieferungsprozesses. Es gibt uns eine großartige Überprüfbarkeit und eine bessere Code-Qualität, aber es ermöglicht auch einen großartigen Wissensaustausch - die Leute können jetzt gleichzeitig lehren und lernen, indem sie Erfahrungen austauschen. Ich möchte Sie aber nicht davon überzeugen, Code-Reviews in Ihrem Entwicklungsprozess durchzusetzen (was Sie übrigens überdenken sollten, wenn Sie es noch nicht nutzen), sondern Ihnen zeigen, warum und wie Sie Code-Reviews während des technischen Interviews nutzen können.

Wie können Sie Code-Reviews im IT-Einstellungsprozess nutzen?

Indem wir dem Kandidaten Code zeigen, der bereits geschrieben ist und (meistens) wie erwartet funktioniert, lassen wir ihn sich auf die Qualität der Lösung konzentrieren. Durch die einfache Frage "Also, was halten Sie von diesem Code?" versetzen wir den Kandidaten in den reinen Lesemodus. Was wichtig zu erwähnen ist, ist, dass einige Entwickler an solche Aufgaben gewöhnt sind, die sie bei Zertifizierungsprüfungen usw. machen und sie suchen nach einigen dummen, absichtlichen Fehlern wie fehlende Semikolons, falsche Parameter, falsche Klassen usw. Meiner Meinung nach sollten wir einen anderen Ansatz verwenden. Ich habe immer funktionierenden Code verwendet, der sich korrekt kompilieren lässt. Ich betone am Anfang, dass es keine "zertifizierungsähnlichen" Fehler gibt und die Kandidaten sich auf Best Practices konzentrieren sollten, auf einige häufige Probleme, die von automatischen Tools nur schwer bemerkt werden und zu ernsthaften Problemen in der Produktion führen können.

Beispiel für eine Code-Review-Herausforderung

In Java könnte das z. B. der Aufruf von thread.run() anstelle von thread.start() sein, was korrekt kompiliert, die Tests bestehen, aber wir starten keinen neuen Thread, was die endgültige Leistung verschlechtern kann. Wir können auch prüfen, ob der Kandidat bemerkt, dass eine transaktionale Methode außerhalb des transaktionalen Aspekts aufgerufen wird, was zu ernsthaften Konsistenzproblemen in einer Datenbank führen kann.

Wie kann man Programmierkenntnisse anhand von Code-Reviews beurteilen?

Anhand des ersten Eindrucks des Kandidaten können wir seine/ihre Herangehensweise an die Qualität einschätzen. Wenn der Code für uns wirklich hässlich und voller Probleme ist und der Kandidat etwas wie "sieht für mich gut aus" sagt, können wir davon ausgehen, dass er nicht dazu beitragen wird, die Codequalität in unserem Unternehmen zu verbessern und sie sogar verschlechtern wird. Es ist auch ziemlich einfach, die Erfahrung des Kandidaten zu bewerten. Zum Beispiel konnten Junior-Entwickler in 60 Zeilen Quellcode etwa 4-5 Fehler finden. Entwickler mit 8+ Jahren Erfahrung waren in der Lage, 10 zu finden. Und die besten Kandidaten fanden etwa 15-20 Probleme. Der beste Kandidat wies mich auf 2 Probleme hin, die mir nicht bewusst waren, und als ich den Code schrieb, waren über 30 Probleme enthalten.

Was sollten wir von den Kandidaten erwarten, dass sie sich dazu äußern? Das Wichtigste sind die oben genannten Punkte - Probleme, die für eine bestimmte Technologie üblich sind und nicht auf den ersten Blick sichtbar sind. Der nächste Punkt ist die Lesbarkeit. Der Code muss sauber, gut strukturiert und gut benannt sein, so dass jeder andere Entwickler (nicht nur der Autor) in der Lage ist, ihn zu verstehen und zu ändern. Also Namen von Methoden oder Variablen - sind sie sinnvoll, nicht zu lang, etc. Sind die Methoden nicht zu groß und enthalten nicht zu viel Logik. Sind die im Snippet verwendeten Technologien eine gute Wahl, um ein bestimmtes Problem zu lösen (wenn unser Code z.B. String-Operationen verwendet, um ein XML zu erstellen, können wir erwarten, dass ein Kandidat darauf hinweist, dass es viele Bibliotheken gibt, die dies auf eine bessere Weise tun).

Code-Review in DevSkiller-Bewertungskampagnen

Wir bei DevSkiller sind der Meinung, dass Code-Review in die Bewertung von Programmierfähigkeiten einbezogen werden sollte. Deshalb enthalten die meisten unserer Bewertungskampagnen diese Art von Aufgaben, die es zu lösen gilt. Wir ermutigen Unternehmen auch dazu, ihre eigenen Coding-Tests zu erstellen, die eine Code-Review-Aufgabe enthalten. Für die meisten Unternehmen ist das ziemlich praktisch, da Sie Ihre alte Code-Basis verwenden können, um eine solche Aufgabe vorzubereiten. Sprechen Sie einfach mit Ihrer IT-Abteilung darüber und nehmen Sie es in Ihren Einstellungsprozess auf.

Beitrag teilen

Es ist mehr als nur ein Newsletter

Erhalten Sie nützliche Einblicke direkt in Ihren Posteingang und erfahren Sie mehr über die Einstellung von Technikern.

Kodierfähigkeiten nahtlos verifizieren & entwickeln.

Sehen Sie DevSkiller-Produkte in Aktion.

Sicherheitszertifizierungen & Konformität. Wir sorgen dafür, dass Ihre Daten sicher und geschützt sind.