luckybusiness - stock.adobe.com
Interviewtechniken, um Entwickler mit Potential zu erkennen
Mit den richtigen Fragen lässt sich das Risiko, unpassende Entwickler für ein Unternehmen zu finden, minimieren. Im Artikel werden hierfür Kriterien aufgezählt.
Erfahrene Softwareentwickler mit Unternehmergeist zu erkennen und einzustellen, die wirklich helfen, ein Geschäft zu verbessern, kann eine echte Herausforderung sein. Während manche diese Erwartungen nicht erfüllen, können andere ein zuverlässiger und langfristiger Partner werden.
Mit den richtigen Fragen und Interviewtechniken lässt sich das Risiko, falsche und passende Kandidaten zu verwechseln, minimieren. Im Folgenden werden hierfür Kriterien aufgezählt. Diese sollen helfen:
- Die Erfahrungen und Qualifikationen der Entwickler zu ermitteln;
- Ihre Herangehensweise an Produktentwicklung zu überprüfen; und
- Die Fähigkeit zum schnellen Verständnis Ihrer Geschäftsanforderungen zu testen.
Leitfaden für Manager
Der Schlüssel zu erfolgreichen Vorstellungsgesprächen mit Senior Entwicklern liegt in einer Reihe von arbeitsbezogenen und situativen Fragen, die auf verschiedene Ebenen ihrer Profession abzielen und sowohl Soft- als auch Hard-Skills umfassen. Auf diese Weise können Sie mit nur relevanten Kandidaten in die zweite Interviewrunde einsteigen.
Überfordern Sie die Kandidaten aber nicht, indem Sie jede der unten aufgeführten Fragen stellen. Konzentrieren Sie sich stattdessen auf die Antworten und Ziele, die Sie erreichen möchten, und ermöglichen Sie einen Dialog um relevante Fragen herum.
Egal, wie detailliert Sie den Interviewprozess gestalten, es ist unmöglich, die Fähigkeiten eines Kandidaten hundertprozentig zu testen. Legen Sie daher immer eine Probezeit fest und überlegen Sie, anhand welcher Kriterien Sie die Leistung des Entwicklers bewerten.
Wissen über Architektur
Ein Hauptziel sollte es sein, die Kenntnisse über die Grundlagen der Produktarchitektur und über die Arbeitsverteilung in Projekten zu testen.
Beispielfragen:
- Wofür stehen SOLID-Designprinzipien?
- Erzählen Sie uns etwas über MVC-Komponenten und deren Zusammenhänge.
- Was sind die Vorteile von MVC und wie unterscheidet es sich von MVP oder MVVM?
- Welche anderen Architekturmuster kennen Sie?
- Welche Architekturstile haben Sie für das zuvor erwähnte Produkt verwendet? Warum?
Entwicklungserfahrung
Beim Ermitteln der Entwicklungserfahrung besteht Ihr Ziel vor allem darin, einen soliden Überblick über den technischen Hintergrund des Ingenieurs und sein Verständnis von hochregulierten, komplexen Umgebungen und Sicherheitsproblemen zu bekommen. Evaluieren Sie auch die Fähigkeit des Entwicklers, vorausschauend zu denken und bestimmte Produkttypen von Grund auf neu zu entwickeln.
Beispielfragen:
- Erzählen Sie uns über ein Projekt, an dem Sie gearbeitet haben und auf das Sie stolz sind. Welche Rolle haben Sie dabei gespielt?
- Mit welcher Technologie haben Sie gearbeitet?
- Wenn Sie Airbnb kopieren wollten, wie würden Sie die Architektur aufbauen und welche Frameworks würden Sie verwenden? Warum?
- Mit welchen dieser Frameworks haben Sie zuvor gearbeitet und wie haben Sie sie verwendet? Was hat Ihnen am besten an der Verwendung gefallen? Können Sie uns einen kurzen Überblick über die Vor- und Nachteile dieser Frameworks geben?
- Haben Sie schon einmal mit High-Load-Systemen oder in stark regulierten Umgebungen gearbeitet?
- Haben Sie schon einmal mit High-Security-Produkten gearbeitet?
- Wie haben Sie die Leistung und Sicherheit des Produkts getestet? Mit welchen Methoden haben Sie diese Indikatoren verbessert?
Softwarelebenszyklus
Es ist wichtig zu verstehen, wie der Produktentwicklungszyklus in jeder Phase verwaltet wird, da dies den Erfolg oder Misserfolg eines Produkts maßgeblich mitbestimmt. Das Hauptziel eines Managers ist es sicherzustellen, dass alles reibungslos funktioniert, und zu überprüfen, wie ein Kandidat bestimmte Projekte angeht und wie er einen effizienten Entwicklungsprozess einrichtet.
Ein Eindruck über die bevorzugte Entwicklungsumgebung hilft Ihnen zu verstehen, ob die Erfahrung Ihrer Kandidaten zu Ihrem aktuellen Softwareentwicklungszyklus passt.
Beispielfragen:
- Mit welchen Softwareentwicklungszyklen haben Sie bereits gearbeitet?
- Wie schaffen Sie es, einen effizienten Entwicklungsprozess aufzubauen, wenn…? - Hier sollten Sie eine spezifische Lösung, ihre Architektur und Teamzusammensetzung für das Projekt beschreiben.
- Wie würden Sie den Entwicklungsprozess in einem Start-up in Stufen oder Milestones aufteilen?
- Wie würden Sie das Deployment organisieren?
- Beschreiben Sie einen für Sie idealen Entwicklungsprozess, der mit der Anforderungserhebung beginnt und mit Deployment und Launch endet. Wie würden Sie diesen Prozess als Manager aufbauen?
- Welche Tools verwenden Sie für die rechtzeitige Produktlieferung – zum Beispiel Task-Tracking-Systeme, Tools für kontinuierliche Integration und Source Code Repository?
- Welche Erwartungen haben Sie an das Team und deren Verantwortungsbereiche?
- Möchten Sie lieber mit den Endanwendern des Produkts, dem Produktmanager oder Delivery Manager kommunizieren?
- Wie denken Sie über flexible Arbeitszeiten?
- Was bedeutet ein „selbstfahrendes“ Entwicklungsteam für Sie?
Konfliktmanagement
Das Ziel von Konfliktmanagement ist es, die Lernkurven und Gruppenergebnisse zu verbessern, einschließlich der Effektivität oder Leistung in einem organisatorischen Umfeld. Sie können Verständnis davon zum Beispiel mit folgenden Fragen überprüfen:
- Haben Sie schon einmal Konflikte mit Ihren Kollegen bezüglich der Wahl der Technologie, der Architektur oder der Implementierung eines bestimmten Features gehabt?
- Wie haben Sie diese Konflikte gelöst?
Produktqualität
Dabei geht es darum aufzudecken, wie der Kandidat eine hohe Codequalität aufrechterhält und wie ein Entwickler den Entwicklungszyklus beschleunigt, ohne bei der Qualität nachlässig zu sein. Fragen können Sie:
- Wie erkenne ich den Unterschied zwischen gutem und schlechtem Code?
- Mit welchen Methoden und Tools stellen Sie eine akzeptable Codequalität sicher?
- Wie beeinflussen Tests die Codequalität?
- Warum ist Dokumentation wichtig und warum sollten Sie diese in Ihren Code einbauen?
- Können Sie ein Beispiel für die Definition der Done- und Acceptance-Kriterien geben?
Projekt-Rollen und -Verantwortlichkeiten
Versteht der Entwickler die verschiedenen Rollen und Verantwortlichkeiten im Projekt? Mit diesen Fragen können Sie sich davon einen Eindruck verschaffen:
- Was sind die Verantwortlichkeiten eines Softwarearchitekten?
- Was ist der Unterschied zwischen einem Solution- und einem Software-Architekt?
- Was sind die Hauptaufgaben eines QA Ingenieurs?
- Wer ist für die Qualität im Team verantwortlich?
Situative Fragen
Testen Sie die kritischen Denk- und Problemlösungsfähigkeiten der Entwickler in realen Situationen, Ihre Fähigkeit, aus Fehlern zu lernen und kritische Probleme zu lösen, sowie die Anpassungsfähigkeit und Reaktion auf sich ändernde Umgebungen.
Beispielfragen:
- Beschreiben Sie Ihren größten Fehler und wie Sie damit umgegangen sind.
- Was machen Sie, wenn die Anwendung oder Integration nicht ordnungsgemäß funktioniert?
- Was tun Sie, wenn einer Ihrer Kollegen es ablehnt, das Feature den Anforderungen entsprechend zu implementieren?
- Wie reagieren Sie, wenn einer Ihrer Kollegen Sie nicht über den Status bestimmter Probleme informiert?
- Was tun Sie, wenn eines Ihrer Teammitglieder einfach nicht an täglichen Besprechungen teilnimmt?
- Wie würden Sie damit umgehen, wenn der Kunde ständig Änderungsanforderungen verlangt, die zu Scope Creep und einer Fokusverschiebung führen?
Scrum Workflow
Fragen zum Scrum Workflow sollen das Verständnis des Entwicklers von Scrum-Prozessen und die damit verbundene Arbeitserfahrung ersichtlich machen (wenn Scrum für Ihr Unternehmen relevant ist):
- Haben Sie schon einmal mit Scrum gearbeitet?
- Beschreiben Sie den typischen Scrum-Prozess und warum er effektiv ist.
- Wie stellen Sie sich Ihre Rolle in einem Scrum-Team vor?
- In welchen Situationen kann die Verwendung von Scrum Sinn machen und in welchen nicht?
Projektschätzungen
Überprüfen Sie, ob Ihr Kandidat mit den Zeitmanagement- und Schätzungspraktiken ausreichend vertraut ist, die zu Ihren Projektanforderungen passen:
- Wie messen Sie normalerweise den Arbeitsumfang – in Stunden, in Story Points und so weiter?
- Welche Daten benötigen Sie, um genaue Bewertungen vornehmen zu können?
- Wie stellen Sie sicher, dass Ihre Schätzungen realistisch sind? Und welche Faktoren beeinflussen die Schätzgenauigkeit?
- Mit welchen Schätzmethoden haben Sie gearbeitet/welche bevorzugen Sie?
Selbstentwicklung und Karriereinteressen
Ihr Hauptziel in diesem Fragebereich sollte es sein, die Ambitionen, Ziele und Bereitschaft (oder deren Abwesenheit) des Entwicklers zu Wachstum in seiner Karriere zu identifizieren, sowie Interessen und Prioritäten zu erforschen, um sie später mit den Werten Ihres Unternehmens vergleichen zu können.
Beispielfragen:
- Was tun Sie, um Ihre Fähigkeiten als Entwickler zu verbessern (Kurse, Stack Overflow und so weiter)?
- Lernen Sie derzeit neue Technologien/Frameworks oder planen Sie, welche einzuarbeiten?
- Was sind Ihre Pläne für die Zukunft? Planen Sie eher horizontales (Zuwachs an Qualifikationen und Seniorität) oder vertikales (Teamleiter und IT-Leiter) Wachstum?
Fazit
Die oben genannten Interviewfragen helfen Ihnen, mehr über Ihre Kandidaten, deren technische Grundlagen, ihr Verständnis verschiedener Prozesse, Tools und Herangehensweisen an die Produktentwicklung zu erfahren.
„Mit den richtigen Fragen und Interviewtechniken lässt sich das Risiko, falsche Kandidaten mit Hochqualifizierten zu verwechseln, minimieren.“
Igor Tkach, Daxx
So testen Sie nicht nur, ob die Grundlagen der Softwareentwicklung vorhanden sind, sondern auch die Kompatibilität eines Kandidaten mit Ihrem spezifischen Projekt, Ihrem Workflow und Ihren Anforderungen. Irrelevante Kandidaten, die nicht in Ihre Unternehmenskultur passen, können Sie so herausfiltern.
Über den Autor:
Igor Tkach ist Geschäftsführer bei Daxx. Er ist eine erfahrene Führungskraft, die unter anderem über Best Practices für agile Entwicklung, Produktmanagement, Steigerung der Führungsqualität in Organisationen schreibt. Derzeit kooperiert Tkach mit IT-Unternehmen und hilft ihnen beim Einsatz neuer Technologietrends, der Entwicklung leistungsorientierter R&D-Zentren in der Ukraine und durch kontinuierliche Verbesserung ihrer Managementpraktiken erfolgreich zu sein.
Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder und entsprechen nicht unbedingt denen von ComputerWeekly.de.