Die besten Methoden, um Softwareentwickler zu interviewen

Eine praxisnahe und menschliche Methode, um Softwareentwickler zu interviewen: Kommunikationsfähigkeit, tatsächliche Fähigkeiten, Problemlösungskompetenz...

Dat Giang
CTO von HDWEBSOFT
Die besten Methoden, um Softwareentwickler zu interviewen

Medienanfragen

HDWEBSOFT begrüßt Medienanfragen

Wenn Sie als Journalist, Blogger, Influencer oder Referent über IT und digitale Innovation berichten, teilen unsere Experten gerne ihre Erfahrungen und ihr Wissen, um Ihnen bei der Erstellung wertvoller Inhalte für Ihr Publikum zu helfen.

Kontakt aufnehmen →

Die Suche nach guten Softwareentwicklern ist schwierig. Ein Lebenslauf kann überzeugend sein, ein technischer Test einwandfrei, und dennoch zeigt das Vorstellungsgespräch nicht unbedingt, ob die Person gut ins Team passt.

Bei HDWEBSOFT betrachten wir Entwickler-Interviews als Gespräch, nicht als Prüfung. Wir prüfen zwar die technischen Fähigkeiten sorgfältig, achten aber auch genau darauf, wie Kandidaten Sachverhalte erklären, Fragen stellen, Hinweise aufnehmen und aus einem unklaren Problem eine praktische Lösung entwickeln. Das ist entscheidend, egal ob wir eine individuelle Softwareentwicklung realisieren oder nicht./de/dienstleistungen/individualsoftwareentwicklung) Team oder Unterstützung eines Kunden durch ein erweitertes Engineering-Modell.

In diesem Beitrag stelle ich den Interviewansatz vor, den wir bei der Einstellung von Softwareentwicklern verwenden. Er richtet sich primär an technische Interviewer, kann aber auch von Personalverantwortlichen, Teamleitern und Gründern genutzt werden, um zu verstehen, was ein gutes Vorstellungsgespräch für Softwareentwickler aufdecken sollte.

Ich empfehle außerdem die Lektüre von Chuck Grooms Leitfaden für Softwareentwickler-Interviews und Fragen im Vorstellungsgespräch für Entwickler Beide Autoren bieten hilfreiche Einblicke, wie man Vorstellungsgespräche effektiver und respektvoller gestalten kann.

Zielgruppe

Dieser Artikel richtet sich vor allem an technische Interviewer, die praxisorientierte Gespräche mit Kandidaten führen können. Einige Beispiele mögen für Leser ohne technischen Hintergrund schwer verständlich sein, doch die Kernidee ist einfach: Ein gutes Vorstellungsgespräch sollte aufzeigen, wie ein Entwickler denkt, kommuniziert und sich weiterentwickelt.

Kriterien definieren

Bevor Sie Fragen stellen, definieren Sie, was Sie bewerten möchten. Jedes Unternehmen hat seine eigenen Einstellungskriterien, aber unserer Erfahrung nach sind die wichtigsten:

  1. Kommunikation: Kann der Kandidat klar erklären, sinnvolle Fragen stellen und im Team arbeiten?

  2. Aktuelles Niveau: Was kann der Kandidat aktuell leisten?

  3. Potenzial: Was kann der Kandidat in einem Monat, in einem Jahr und in den nächsten fünf oder zehn Jahren erreichen?

Für HDWEBSOFT ist Kommunikation das wichtigste Kriterium. Wir sind ein Offshore-Softwareentwicklungsunternehmen. Da wir mit Kunden in verschiedenen Ländern zusammenarbeiten, wird selbst ein erfahrener Entwickler Schwierigkeiten haben, wenn er nicht klar kommunizieren kann.

Beginnen Sie mit einer offenen und ruhigen Herangehensweise

Bevor wir mit dem technischen Teil beginnen, schaffen wir eine angenehme Gesprächsatmosphäre. Wir sagen den Kandidaten beispielsweise Folgendes:

Keine Panik. Niemand weiß alles. In diesem Gespräch geht es nicht darum, Ihr Wissen auf die Spitze zu treiben. Wir möchten sehen, ob wir zusammenarbeiten, Probleme gemeinsam durchdenken und gute Lösungen finden können.

Diese einfache Botschaft hilft den Kandidaten, sich zu entspannen. Sie schafft außerdem die richtige Erwartungshaltung: Wir testen nicht nur Ihr Wissen, sondern beobachten Ihre Arbeitsweise.

Achten Sie auf die Kommunikation während des gesamten Gesprächs

Die beste Methode, Softwareentwickler zu interviewen, ist die Bewertung der Kommunikation während des gesamten Gesprächs, nicht in einem separaten Abschnitt.

Kommunikation zeigt sich, wenn Kandidaten ein früheres Projekt beschreiben, Anforderungen klären, eine technische Entscheidung erläutern oder zugeben, was sie nicht wissen. Solche Momente sind oft wertvoller als eine perfekte Lehrbuchantwort.

Können sie erklären, was sie bisher gemacht haben?

Eine hilfreiche Frage ist, Kandidaten zu bitten, ein Projekt zu beschreiben, an dem sie gearbeitet haben. Zum Beispiel:

  • Was ist Ihr Lieblingsprojekt?

  • Wer hat das Produkt genutzt und welchen Nutzen hatte es für diese Personen?

  • Was waren die wichtigsten technischen Aspekte dieses Projekts?

  • Welchen konkreten Beitrag haben Sie geleistet?

Die erwartete Antwort ist kein langer Vortrag mit allen technischen Details. Eine gute Antwort ist kurz, prägnant und auf die wichtigsten Punkte fokussiert.

Dies hilft uns, zwei Dinge zu beurteilen:

  • Kann der Kandidat ein Projekt als Ganzes verstehen?

  • Kann der Kandidat die Kernpunkte herausfiltern, anstatt sich in Details zu verlieren?

Wenn ein Entwickler kein klares Verständnis davon hat, was er entwickelt hat, ist es schwer zu glauben, dass er die Arbeit wirklich verstanden hat. Entwickler, die ein vergangenes Projekt gut zusammenfassen können, haben in der Regel auch ein besseres Potenzial, zukünftige Projekte zu verstehen.

Können sie eine Erklärung in technische Spezifikationen umsetzen?

Eine weitere nützliche Interviewmethode besteht darin, den Kandidaten eine kleine Anforderung zu stellen und gemeinsam mit ihnen eine Lösung zu erarbeiten. Der Schwierigkeitsgrad sollte dem Niveau und der Erfahrung des Kandidaten entsprechen.

Das Ziel ist nicht immer, herauszufinden, ob sie die Antwort sofort kennen. Manchmal ist das bessere Signal, ob sie gute Fragen stellen, Hinweise verstehen und ihr Denken anpassen können.

Hier sind einige Beispiele.

Beispiel 1: Eine einfache Frage für einen Berufsanfänger

Frage: Es ist jetzt 1 Uhr nachts in New York. Wie spät ist es in Vietnam?

Wenn der Kandidat nicht sofort antworten kann, erlaube ich ihm, Fragen zu stellen. Eine gute Frage wäre: „Welcher Zeitzone gehört New York an?“

Wenn er die Formel nicht kennt, kann ich erklären, dass Vietnam UTC+7 ist und New York je nach Datum eine eigene Zeitzone hat. Dann beobachte ich, ob er diese Erklärung nutzen kann, um die Antwort zu berechnen.

Es geht nicht um Geografie. Es geht darum, ob sie sinnvolle Fragen stellen und neue Informationen anwenden können.

Beispiel 2: Die Frage mit einem gängigen Algorithmus kombinieren

Frage: Ich habe ein sortiertes Array mit 1000 Elementen. Ich möchte überprüfen, ob ein bestimmter Wert in diesem Array existiert. Wie viele Überprüfungen sind im ungünstigsten Fall einer binären Suche nötig?

Wenn der Kandidat die binäre Suche vergisst, erkläre ich ihre Funktionsweise. Kann er der Erklärung folgen und die Antwort berechnen, ist das ein gutes Zeichen.

Diese Frage prüft mehr als nur das Gedächtnis. Sie testet, ob er ein Konzept schnell verstehen und anwenden kann.

Beispiel 3: Für einen PHP-Entwickler, Backend-Entwickler oder Full-Stack-Entwickler

Frage: Vergessen Sie für einen Moment die PHP-Session. Wenn Sie eine eigene Bibliothek schreiben müssten, die dieselbe Aufgabe erfüllt, wie sähe Ihre Bibliothek aus?

Diese Frage kann selbst für PHP-Entwickler mit einigen Jahren Erfahrung schwierig sein. Wenn sie sich unsicher sind, erkläre ich die Funktionsweise der PHP-Session und schaue, ob sie daraus Schlüsse ziehen können.

Viele Entwickler arbeiten hauptsächlich mit High-Level-Frameworks wie CakePHP, Laravel, Symfony oder ähnlichen Tools. Das ist in Ordnung, führt aber manchmal dazu, dass sie wichtige Grundlagen unterschätzen. Diese Frage hilft zu erkennen, ob sie verstehen, was unter dem Framework passiert. Das ist besonders wichtig, wenn man PHP-Entwickler einstellen für ein Produkt mit langer Laufzeit.

Beispiel 4: Für einen Full-Stack-Entwickler

Frage: Wie würden Sie einen normalen Warenkorb und Checkout-Prozess für einen E-Commerce-Shop?

Wenn der Kandidat den grundlegenden Ablauf gut beherrscht, stelle ich eine erweiterte Frage: Angenommen, ein Produkt hat eine begrenzte Lagermenge. Wie würden Sie sicherstellen, dass die gekaufte Menge diese Grenze nie überschreitet?

Dies ist ein gutes Thema bei der Bewertung von Kandidaten für anspruchsvolle Backend-Aufgaben. Ein Junior-Entwickler spricht vielleicht über das grundlegende Verhalten des Warenkorbs. Ein erfahrenerer Entwickler kann Validierung, Transaktionen, Sperren, Race Conditions, Zahlungsstatus und Bestell-Rollbacks diskutieren. Wenn Ihr Projekt von solchen Entscheidungen abhängt, kann es sich lohnen, mit erfahrenen Backend-Entwicklern zusammenzuarbeiten./hire-us/backend-developer).

Wie sie das Problem angehen, verrät uns viel über ihr tatsächliches Niveau.

Beispiel 5: Ein weniger häufiges, aber interessantes technisches Problem

Frage: Ich habe eine Admin-Seite mit einer Produktliste. Wie können wir sicherstellen, dass niemand anderes gleichzeitig dasselbe Produkt bearbeiten kann, wenn ein Benutzer die Bearbeitungsseite eines Produkts öffnet?

Hier geht es hauptsächlich um Ressourcensperrung. Manche Kandidaten können die Frage direkt beantworten. Falls nicht, lenke ich sie zurück zu einem vertrauteren Fall: der Benutzerregistrierung. Hier muss das System verhindern, dass zwei Benutzer gleichzeitig mit derselben E-Mail-Adresse angelegt werden.

Dann frage ich: „Lässt sich ein ähnliches Verfahren hier anwenden?“

Diese Frage ist hilfreich, weil sie zeigt, ob Kandidaten Wissen von einem Problem auf ein anderes übertragen können.

Was diese Fragen offenbaren

Anhand der obigen Beispiele lassen sich in der Regel zwei Situationen im Vorstellungsgespräch feststellen:

  • Der Kandidat antwortet fließend, weil er das Thema bereits gut versteht.

  • Der Kandidat kennt die Antwort nicht sofort, daher erarbeiten wir das Problem gemeinsam.

Der zweite Fall ist oft interessanter. Während dieses Prozesses können wir beobachten, ob der Kandidat hilfreiche Fragen stellt, Erklärungen versteht, logisch argumentiert und lösungsorientiert arbeitet.

Dies ermöglicht es uns, mehrere Aspekte gleichzeitig zu beurteilen:

  • Kommunikation: Kann er/sie klar fragen und erklären?

  • Aktuelles Niveau: Welche Probleme hat er/sie bereits gelöst?

  • Potenzial: Kann er/sie sich zu einem Problemlöser entwickeln oder beschränkt er/sie sich auf repetitive Aufgaben?

Deshalb ist die szenariobasierte Diskussion eine der besten Methoden, um Softwareentwickler zu interviewen. Sie bündelt viele Informationen in einem einzigen Gespräch.

Aktuelles Niveau des Kandidaten prüfen

Ich werde mich hier nicht lange aufhalten, da bereits viele Listen mit technischen Fragen existieren. Java hat seine eigenen Standardfragen. Dasselbe gilt für .NET, Python, iOS, Android, React Native, Node.js, React, Vue, JavaScript, CSS und viele andere Bereiche. Für Produktteams hängt dies oft direkt mit der Art der Softwareentwicklungsdienstleistungen zusammen, die sie brauchen.

Diese Fragen sind nach wie vor nützlich. Sie müssen wissen, ob der Kandidat die Stelle heute schon ausüben kann. Eine Liste von Standardfragen sollte jedoch nicht das gesamte Vorstellungsgespräch ausmachen.

Nutzen Sie sie, um das aktuelle technische Niveau des Kandidaten zu überprüfen, und verwenden Sie dann praxisnahe Szenarien, um zu verstehen, wie er denkt. Bei qualitätsorientierten Positionen sollten Sie Fragen zur Teststrategie und zu automatisierten Testdienstleistungen einbeziehen, nicht nur zur Syntax.

Prüfen Sie das Potenzial des Kandidaten

Das aktuelle Niveau ist wichtig, aber das Potenzial ist noch wichtiger. Wenn das aktuelle Niveau mit 1 gewichtet wird, kann das Potenzial mit 10 gewichtet werden.

Warum? Weil sich die Softwareentwicklung rasant weiterentwickelt. Ein Entwickler, der nur die aktuellen Tools kennt, stagniert möglicherweise in seiner Entwicklung. Ein Entwickler mit soliden Grundlagen, Neugier und Problemlösungskompetenz kann sich hingegen über Jahre hinweg stetig verbessern.

Eine gute Ausbildung ist hilfreich, aber nicht alles

Ein guter Softwareentwickler kommt nicht zwangsläufig von einer renommierten Universität. Viele exzellente Ingenieure sind Autodidakten oder haben eine reguläre Schule besucht.

Dennoch kann eine fundierte Ausbildung eine bessere Basis schaffen. Sie mag zwar nicht sofort einen sichtbaren Vorteil bringen, aber langfristig hilft ein solides Fundament einem Entwickler, schneller zu lernen und sich weiterzuentwickeln.

Umfassendere Hintergrundkenntnisse bedeuten größeres Potenzial

Eine gute Ausbildung ist nur ein Indikator. Hintergrundkenntnisse sind wichtiger. Wir schätzen Kandidaten, die die Grundlagen tiefgehend verstehen.

Datenstrukturen und Algorithmen

Für die Grundlagen: Datenstrukturen und Algorithmen sind nach wie vor wichtig.

Viele Anwendungsentwickler konzentrieren sich ausschließlich auf die Entwicklung von High-Level-Anwendungen: Java Spring, .NET Framework, Node.js, Python, PHP, React, Vue usw. Das ist verständlich, da diese Tools täglich im Einsatz sind.

Entwickler, die Datenstrukturen und Algorithmen verstehen, verfügen jedoch in der Regel über eine solidere Basis für Problemlösung, Performance-Optimierung und Systemdesign.

Programmiertechniken

Grundlegende Programmiertechniken sind ebenfalls wichtig. Bei HDWEBSOFT erwarten wir von unseren Entwicklern, dass sie die Prinzipien von Clean Code und SOLID verstehen und nicht nur deren Definitionen wiedergeben.

OOP, Entwurfsmuster und UML

Die meisten Entwickler geben an, objektorientiert zu programmieren. Dennoch ist es schwierig, Entwickler mit wirklich fundiertem OOP-Denken zu finden.

Viele können Abstraktion, Vererbung und Polymorphismus erklären. Nur wenige können auf eine Zeile ihres eigenen Codes zeigen und erklären, welches Prinzip darin zum Ausdruck kommt.

Ich bin auch beeindruckt, wenn ein Entwickler mehrere Entwurfsmuster beherrscht und weiß, wann er sie nicht einsetzen sollte. Entwurfsmuster sind nicht einfach nur Rezepte. Sie sind eine gemeinsame Sprache, um Struktur, Absicht und den Code anderer zu verstehen.

Fazit: Die beste Art, Softwareentwickler zu interviewen

Wie interviewt man also am besten Softwareentwickler?

Es gibt keine Zauberfrage. Ein gutes Interview kombiniert verschiedene Fragetypen. Technische Fragen prüfen die praktischen Fähigkeiten. Grundlagenfragen helfen, den Hintergrund zu klären. Praxisnahe Szenarien prüfen Kommunikationsfähigkeit, Problemlösungskompetenz, Anpassungsfähigkeit und Potenzial.

Bei HDWEBSOFT hilft uns dieser Ansatz, Ingenieure einzustellen, die jetzt einen Beitrag leisten und mit zukünftigen Herausforderungen wachsen können. Er macht das Interview auch menschlicher: weniger wie ein Test, mehr wie ein echtes Arbeitsgespräch.

Dat Giang

Dat Giang

CTO von HDWEBSOFT

Erfahrener Entwickler, der sich darauf konzentriert, praxisnahe und innovative Outsourcing-Lösungen für Softwareentwicklung mit Integrität bereitzustellen.

contact@hdwebsoft.com +84 (0)28 66809403 15 Thep Moi, Bay Hien Ward, Ho Chi Minh City, Vietnam