Auf der Suche nach den wenigen Eliten – Finden und Einstellen der besten Softwareentwickler der Branche
Veröffentlicht: 2022-03-11Die Herausforderung
Talente in der Softwareentwicklung einzustellen – echte Talente – ist eine facettenreiche Fähigkeit, die an der Schnittstelle von sozialem Networking, technischem Scharfsinn, Prozessmanagement und Intuition liegt. Jeder, der jemals Verantwortung für die Einstellung getragen hat, versteht nur zu gut das Ausmaß und die Tiefe der Einstellungsherausforderung.
Besonders herausfordernd ist die Tatsache, dass die herausragenden Eigenschaften herausragender Software-Engineering-Kandidaten äußerst schwer zu bewerten sind. Wie untersuchen Sie die Fähigkeit eines Kandidaten, innovativ zu sein und kreativ zu denken? Wie stellen Sie fest, ob er ein Teamplayer ist? Wie diagnostizieren Sie ihre Fähigkeit, konstruktives Feedback anzunehmen? Wie untersucht man die Moral einer Person?
Während die Bewertung dieser „weichen“ Kriterien keine leichte Aufgabe ist, ist dies unerlässlich , um die Besten einzustellen. Doch allzu oft bestehen Versuche, diese entscheidenden, aber schwer fassbaren Attribute zu bewerten, aus Fragen oder Herausforderungen, die so transparent sind, dass die „richtigen“ Antworten für die meisten Kandidaten offensichtlich sind. Es wird also nichts Substanzielles erreicht, wenn man sie fragt.
Eine häufige daraus resultierende Falle besteht darin, sich stattdessen zu stark auf technische Details zu konzentrieren, anstatt die Fähigkeit des Kandidaten zu bewerten, Probleme zu lösen, kreativ zu denken und kompatibel mit dem Rest des Teams zu arbeiten.
Zugegeben, die effektive Befragung und Einstellung fortgeschrittener Softwareentwickler ist sowohl eine Kunst als auch eine Wissenschaft. Dennoch gibt es Ansätze und Methoden zur Bewertung der subtileren Dimensionen der Fähigkeiten und Fertigkeiten eines Softwareingenieurs.
Bei gemeinsamer Anwendung führen diese Rekrutierungstechniken zu einem äußerst effektiven Screening-Prozess mit einer nachgewiesenen Erfolgsbilanz bei der Einstellung von angestellten oder freiberuflichen Programmiertalenten. Um diesen Prozess geht es in diesem Beitrag.
Erste Schritte: Die Pipeline mit den Besten füllen
Der Prozess, die wenigen Eliten zu finden und einzustellen, beginnt lange vor dem Vorstellungsgespräch. Tatsächlich kann ein systematischer Ansatz zur richtigen Identifizierung potenziell qualifizierter Kandidaten die Effizienz Ihres gesamten Rekrutierungsprozesses erheblich rationalisieren und steigern.
Ohne Zweifel ist persönliches Networking die beste Quelle für qualifizierte Kandidaten, da gute Leute dazu neigen, sich mit guten Leuten zu verbinden. Persönliche Empfehlungen dominieren als die produktivste Quelle für erfolgreiche Neueinstellungen (Quelle).
Andere wertvolle Quellen für erstklassiges technisches Talent sind:
- Blogs und technische Online-Beiträge. Entwickler-Blogs können eine großartige Quelle für starke Kandidaten sein. Technische Stellen bieten oft wertvolle Einblicke in den technischen Scharfsinn eines Entwicklers, den Ansatz zur Problemlösung und die Schreibfähigkeiten, die allesamt wichtige Kriterien für die Identifizierung erstklassiger Kandidaten sind.
- Open-Source-Code-Mitwirkende. Die Durchsicht von Open-Source-Projekten auf Websites wie GitHub und SourceForge kann hochqualifizierte Kandidaten hervorbringen. Ein zusätzlicher Vorteil dieses Ansatzes besteht darin, dass Sie die Codebeispiele eines Kandidaten sehen und bewerten können, bevor Sie sich überhaupt für eine Kontaktaufnahme entscheiden.
- Konferenzen. Konferenzredner und Mitteilnehmer an relevanten Fachkonferenzen sind oft eine wertvolle Ressource für qualifizierte Kandidaten. Wenn Sie nicht teilnehmen können, sehen Sie sich das Online-Programm an und erwägen Sie, die Referenten zu kontaktieren. Möglicherweise kontaktieren Sie sie einfach „zur richtigen Zeit“, oder sie können Sie an eine andere hochqualifizierte Person verweisen.
Das Schöne an diesen Ressourcen ist, dass sie Ingenieurkandidaten liefern, die Sie auf die eine oder andere Weise überprüft haben, bevor Sie sie überhaupt interviewen. Entweder jemand in Ihrem Unternehmen oder jemand, den Sie kennen, kennt sie und empfiehlt sie sehr. Oder Sie haben deren Open-Source-Code überprüft und sind davon gebührend beeindruckt. Oder ihre Blogbeiträge suggerieren ein ausgereiftes Maß an technischem Fachwissen und Verständnis (und idealerweise sogar Sinn für Humor :-) ). Entscheidend dabei ist, dass der Kandidat zum Zeitpunkt der Kontaktaufnahme bereits deutlich mehr ist als „nur ein weiterer Lebenslauf“.
Erwägen Sie außerdem die Verwendung von Vorlagen für Stellenbeschreibungen (wie diese für SEO, Front-End-Webentwicklung und Back-End-Webentwicklung), die hohe Erwartungen an die von Ihnen gewünschten Kandidatentypen stellen.
Bewertung des technischen Scharfsinns von Softwareentwicklern
Eine effektive Bestimmung des technischen Könnens geht weit über die Nuancen einer bestimmten Programmiersprache oder Technologie hinaus. Obwohl diese technischen Details sicherlich nicht ignoriert werden sollten, sind sie in der Regel nicht das wichtigste Element des Bewertungsprozesses.
Es ist die grundlegende technische Stärke und das Verständnis des Kandidaten, sein kreatives Denken und seine Problemlösung, die entscheidend zu bewerten sind.
Die besten Entwickler verschwenden keine Zeit damit, sich das zu merken, was leicht in einer Sprachspezifikation oder einem API-Dokument zu finden ist. Darüber hinaus ist das Erlernen einer neuen Sprache, Technologie oder eines neuen Designmusters eine relativ triviale Übung für einen starken Entwickler (und angesichts der beschleunigten Geschwindigkeit, mit der neue Technologien eingeführt werden und Marktanteile gewinnen, tatsächlich eine wesentliche Fähigkeit). Es ist daher die grundlegende technische Stärke und das Verständnis des Kandidaten, sein kreatives Denken und seine Problemlösung, die entscheidend zu bewerten sind.
Eine bewährte Methode, um dies zu erreichen, besteht darin, eine Programmierherausforderung zu stellen, die nicht durch die Sprache eingeschränkt ist . Präsentieren Sie dem Kandidaten ein Problem und bitten Sie ihn, eine Lösung in der Sprache seiner Wahl zu kodieren. Die einzigen Anforderungen sollten darin bestehen, dass die Lösung gründlich und korrekt ist, einschließlich der Behandlung von Randbedingungen oder potenziellen Fehlern. Denken Sie daran, dass das Ziel hier darin besteht, die (a) Fähigkeit des Kandidaten zur Problemlösung, (b) Kenntnisse der Informatik und (c) den Programmierstil zu bewerten. An diesem Punkt bewerten Sie noch nicht die Eignung in einer bestimmten Programmiersprache. (Ein zusätzlicher Vorteil dieses Ansatzes besteht übrigens darin, dass der Interviewer kein Experte in der Sprache sein muss, in der der Kandidat kodiert.)
Es gibt zahlreiche Online-Ressourcen, aus denen Sie solche Programmierherausforderungen auswählen können, um sie in Ihren Interviewprozess zu integrieren. Diejenigen, die sich auf Algorithmen konzentrieren (und nicht auf die Kenntnis einer bestimmten Programmiersprache), erleichtern die Bewertung der Informatikgrundlagen und Problemlösungsfähigkeiten eines Kandidaten. Einige bemerkenswerte Beispiele sind hackerrank.com, projecteuler.net und beatmycode.com. Denken Sie jedoch daran, dass Sie diese Websites nicht verwenden müssen, um die Tests durchzuführen; Sie können sie vielmehr einfach als Ressourcen verwenden, aus denen Sie Herausforderungen auswählen und dem Kandidaten dann während des persönlichen Vorstellungsgesprächs (auf einem Whiteboard usw.) eine Lösung codieren lassen.
Allerdings können Online-Tests ein wertvoller zusätzlicher Bestandteil Ihres Bewerbungsprozesses sein. Bei der Verwendung von Online-Testdiensten ist es jedoch wichtig, das Risiko zu vermeiden, sich zu stark auf die von der Website generierten Ergebnisse eines Kandidaten zu konzentrieren, anstatt auf die Besonderheiten seiner Lösungen. Zum einen sind Sie möglicherweise nicht mit den vom Testdienst verwendeten Bewertungsmetriken einverstanden. Darüber hinaus kann es Aspekte einer Lösung geben, die Sie für besonders clever oder elegant halten, die der automatisierte Bewertungsprozess möglicherweise vollständig ignoriert.
Es besteht auch die Möglichkeit von „Falsch-Positiven“ oder „Falsch-Negativen“ bei Bewertungen, die von Online-Testdiensten bereitgestellt werden. Auf der einen Seite können falsch positive Ergebnisse dazu führen, dass Zeit und Ressourcen bei der Befragung unqualifizierter Kandidaten verschwendet werden, während falsch negative Ergebnisse Kandidaten disqualifizieren können, die es wert waren, in Betracht gezogen zu werden. Letzteres hat langfristig schwerwiegendere Auswirkungen und muss daher sorgfältig überwacht werden.
Im Allgemeinen sind Tests, die persönlich durchgeführt werden, von Natur aus zuverlässiger als solche, die online durchgeführt werden, da sie das Täuschungspotenzial verringern. Darüber hinaus bietet das persönliche Testen die Möglichkeit zu beobachten, wie ein Softwareentwickler-Kandidat unter Druck arbeitet. Nichtsdestotrotz kann die Nutzung von Online-Testdiensten ein effektiver Bestandteil des hier befürworteten umfassenderen Screening-Prozesses sein, der andere Techniken beinhaltet, um betrügerische oder unterqualifizierte Kandidaten auszusortieren.
Online-Entwicklungstests können auch als wertvoller vorläufiger Filter dienen, um den erstaunlich hohen Prozentsatz von Kandidaten auszuschließen, deren technische Fähigkeiten weit unterdurchschnittlich sind. Interessanterweise brechen viele dieser Kandidaten den Prozess ab, ohne auch nur zu versuchen, die Tests zu absolvieren, weil sie kein Selbstvertrauen haben. Allerdings ist Selbstvertrauen nicht immer das beste Stimmungsbarometer, wie der Dunning-Kruger-Effekt belegt.
Eine weitere äußerst wertvolle Technik zur Bewertung des technischen Scharfsinns besteht darin , den Kandidaten zu bitten, auf Websites wie GitHub und SourceForge eine Liste von Open-Source-Projekten bereitzustellen, die er verfasst oder zu denen er zumindest beigetragen hat (wenn er nur ein Mitwirkender war, bitten Sie ihn darum). zeigen Ihnen an, welche Teile des Codes sie persönlich verfasst haben). Sie können dann zu dem Vorstellungsgespräch kommen, nachdem Sie ihren Code überprüft und darauf vorbereitet haben, sie nach bestimmten Designentscheidungen, Codierungsstilen, verwendeten Mustern usw. zu fragen. Eine solche Diskussion kann wesentlich wertvoller sein, als den Kandidaten einfach über die technischen Details einer Sprache zu befragen.
Apropos Sprache…
Mitglieder der wenigen Elite sind nicht nur technologisch versiert, sie sind vollendete Softwareentwicklungsprofis, die sowohl mündlich als auch schriftlich klar, effektiv und prägnant kommunizieren.

Die mündlichen Kommunikationsfähigkeiten lassen sich im Verlauf eines Vorstellungsgesprächs, sei es persönlich oder am Telefon, leicht bewerten. Während verbale Fähigkeiten in bestimmten technischen „Hinterzimmer“-Rollen, die keinen Benutzerkontakt beinhalten, zugegebenermaßen weniger kritisch sind, sind sie dennoch wichtig, um effektive Teaminteraktionen und den Austausch von Ideen zu maximieren.
Schriftliche Kommunikationsfähigkeiten können am besten bewertet werden, indem der Kandidat gebeten wird, schriftliche Proben zur Verfügung zu stellen. Technische Schreibproben werden stark bevorzugt, da sie nicht nur Schreibfähigkeiten, sondern auch technische Klarheit demonstrieren. Es kann besonders nützlich sein, diese Proben vor dem Vorstellungsgespräch anzufordern. Zum einen bietet dies die Möglichkeit, ihre Texte im Voraus zu überprüfen und zu analysieren, damit Sie vorbereitet zum Vorstellungsgespräch kommen können, um ihre Texte mit ihnen zu diskutieren und zu kritisieren. Darüber hinaus werden einige technische Kandidaten durch die Aufforderung zum Schreiben von Proben „abgeschreckt“, was an sich schon als wertvoller Filter dienen kann.
Das moralische Dilemma
Es gibt einen alten Witz über einen Vater, der seinem Sohn Ethik beibringen möchte. Der Vater erzählt seinem Sohn, dass er und sein Partner eine chemische Reinigung betreiben. Eines Tages, sagt der Vater, kommt eine Kundin in unser Geschäft, um ihre Reinigung abzuholen. Als die Kundin sich umdreht, um zu gehen, bemerke ich, dass sie 10 Dollar zu viel bezahlt hat. OK, hier kommt also die Ethik… soll ich es meinem Partner sagen oder nicht?!
Im Gegensatz dazu können echte ethische Dilemmata – moralische Dilemmata – oft verschwommen und komplex sein und treten mit Sicherheit im Geschäftsleben auf. Der stärkste Softwareentwickler kann in einem Projekt unermessliche Verwüstungen anrichten, wenn ihm oder ihr ein richtig kalibrierter moralischer Kompass fehlt. Diese Dimension eines Kandidaten ist daher kritisch zu bewerten.
Eine sehr effektive Technik, um dies zu erreichen, besteht darin , den Kandidaten vor ein hypothetisches moralisches Dilemma zu stellen und zu fragen, was er in der Situation tun würde. Damit dies effektiv ist, ist es wichtig, dass das Dilemma keine offensichtliche Antwort hat. Idealerweise sollte jede mögliche Antwort unvollkommen und etwas problematisch sein. Die Antwort, die der Kandidat auf eine solche Frage gibt, kann einen enormen Einblick in sein Denken, seine ethischen Standards und seine Prioritäten geben.
Hier ist ein Beispiel:
Das Unternehmen, für das Sie arbeiten, wurde von einem anderen Unternehmen beauftragt, an einem Projekt zu arbeiten. Das Projekt erfordert den Einsatz eines bestimmten Subunternehmers. Sie haben zuvor für diesen Subunternehmer gearbeitet und wissen daher aus erster Hand, dass er seine Arbeitszeiten oft aufstockt und seinen Kunden zu viel Zeit in Rechnung stellt. Wenn sie dies jedoch bei diesem Projekt tun, schadet dies Ihrem Unternehmen nicht, da diese Kosten an den Kunden Ihres Unternehmens weitergegeben werden. Sie haben dies Ihrem Chef gegenüber erwähnt und er hat Ihnen geraten, dem Kunden nichts zu sagen, zumal der Anteil des Subunternehmers am Projekt nur einen kleinen Bruchteil des Gesamtbudgets ausmacht. Sie haben jedoch einen sehr engen Freund, der für den Kunden arbeitet. Eines Tages fragt Sie Ihr Freund beim Mittagessen, was Sie über diesen Subunternehmer wissen, da er weiß, dass Sie früher dort gearbeitet haben. Wie reagierst du und was sagst du ihm?
Das Schöne daran ist, dass es keine eindeutig „richtige“ Antwort gibt und die Situation die moralische Komplexität des wirklichen Lebens und der Geschäftswelt widerspiegelt. Richtig gestellt, kann die Antwort auf eine solche „moralische Dilemma“-Frage einer der aussagekräftigsten und wertvollsten Teile des Vorstellungsprozesses für die Einstellung von Softwareentwicklern sein.
Kennenlernen (Wer bist du wirklich ?)
Einer der inhärenten Fehler des Interviewprozesses ist, dass es wirklich keine Möglichkeit gibt, herauszufinden, wie es sein wird, mit einer Person zu arbeiten, bis Sie tatsächlich mit ihr arbeiten. Ein realistisches Gefühl für die Persönlichkeit und das Temperament eines Kandidaten zu bekommen, ist dennoch entscheidend für eine erfolgreiche Einstellung.
Die technische Elite ist nicht nur fachlich überlegen, sondern auch hochprofessionell. Die Suche nach ihnen beschränkt sich daher nicht auf eine rein technische Bewertung.
Vor diesem Hintergrund finden Sie hier einige Interviewtechniken, die für die Bewertung der Persönlichkeit und Professionalität eines Kandidaten von Vorteil sein können …
Erwägen Sie zum einen, den Interviewprozess absichtlich mit einer Vorauswahl durch einen nicht-technischen Mitarbeiter (z. B. einen Verwaltungsassistenten) zu beginnen . Sie können diesen Mitarbeiter dann fragen, wie der Kandidat ihn behandelt hat, nachdem ihm klar wurde, dass er nicht technisch war. Waren sie erniedrigend, ungeduldig und herablassend oder waren sie freundlich, geduldig und respektvoll? Was der Mitarbeiter Ihnen mitteilt, kann in der Tat sehr aufschlussreich sein. Sie möchten wissen, ob der Kandidat andere mit Respekt behandelt, unabhängig davon, wer sie sind.
Suchen Sie während des gesamten Vorstellungsgesprächs nach Gelegenheiten, dem Kandidaten konstruktives Feedback zu geben. Beobachten Sie sorgfältig die Reaktion, die dies hervorruft. Wird das Feedback geschätzt oder scheint der Kandidat überhaupt defensiv zu werden?
Beteiligen Sie sich in den ersten 5 oder 10 Minuten eines Vorstellungsgesprächs an einem nicht-technischen „Geschwätz“ , um einen Einblick in die Persönlichkeit des Kandidaten zu erhalten. Der Kandidat könnte denken, dass dies nur ein Vorspiel zum eigentlichen Vorstellungsgespräch ist, und wird sich daher eher „austoben“. Dadurch können Sie in dieser Zeit vielleicht überraschend viel über ihre Persönlichkeit erkennen. Und wenn sie Sinn für Humor zeigen, ist das natürlich immer ein gutes Zeichen. :-)
Zusätzlich zu diesen allgemeinen Techniken zur Einstellung von Ingenieuren finden Sie hier einige Beispielfragen, die dabei helfen sollen, die Persönlichkeit, das Selbstvertrauen, die Ehrlichkeit und die Professionalität eines Kandidaten einzuschätzen :
- Wenn Sie auf Ihre Karriere zurückblicken, was ist Ihnen besonders in Erinnerung geblieben? Beschreiben Sie die Herausforderung und wie Sie damit umgegangen sind. Was haben Sie Ihrer Meinung nach besonders gut gemeistert? Was würden Sie anders machen, wenn Sie die Möglichkeit hätten, es noch einmal zu tun?
- Was ist Ihrer Meinung nach der größte Fehler, den Sie jemals in Ihrer Karriere gemacht haben?
- Was macht Ihnen an der Softwareentwicklung am meisten Spaß? Was macht dir am wenigsten Spaß?
- Wenn Sie die ideale Position für sich selbst malen könnten, welche wäre das? Wie würde es in Bezug auf Ihre Rolle und Verantwortlichkeiten, Größe und Art des Unternehmens, das Arbeitsumfeld usw. aussehen?
- was sind deine größten Stärken? Was würden wir gewinnen, wenn wir Sie einstellen?
- Keiner von uns ist perfekt. An welchen Aspekten Ihrer Persönlichkeit arbeiten Sie, um sie zu verbessern?
- Wenn ich Ihren derzeitigen Chef anrufen und ihn nach Ihnen fragen würde, was würde er oder sie mir sagen?
- Worauf sollten wir achten, wenn wir Sie einstellen?
Insgesamt fördern diese Fragen und Techniken nachweislich ein viel stärkeres und tieferes Verständnis dafür, wer der Kandidat wirklich ist, was für eine erfolgreiche Einstellungsentscheidung von entscheidender Bedeutung ist.
Ist das Gefühl gegenseitig?
Sie haben also einen A+-Kandidaten gefunden. Hoch qualifizierten. Positive, optimistische Persönlichkeit. Hervorragende kulturelle Passform. Das ist großartig! Aber…
Bleibt noch eine zentrale Frage zu beantworten: Inwieweit interessiert sich der Kandidat konkret für Ihre ausgeschriebene Stelle und für Ihr Unternehmen? Die Antwort darauf ist von größter Bedeutung für eine erfolgreiche Einstellung. Einseitige Beziehungen funktionieren im Geschäftsleben nicht besser als in jedem anderen Aspekt unseres Lebens.
Auch hier ist es nur von geringem Wert, die Frage einfach direkt zu stellen, da man im Rahmen des Vorstellungsgesprächs misstrauisch gegenüber der Offenheit eines Kandidaten bei der Beantwortung einer solchen Frage sein muss. Vielmehr muss man versuchen, dies mit anderen, weniger direkten Mitteln festzustellen.
Zunächst einmal ist die Art und Weise, wie der Kandidat von Anfang an auf Sie zugeht, ein ziemlich zuverlässiger Gradmesser für das Interesse. Bietet der Kandidat eine stichhaltige, überzeugende Erklärung dafür, warum er oder sie sich besonders für Ihr Unternehmen und die verfügbare Stelle interessiert? Dann zeugt dies nicht nur von echtem Interesse, sondern auch von fachlicher Reife und Kompetenz. Ein solcher Kandidat hat eindeutig zumindest ein gewisses Maß an vorheriger Recherche über Ihr Unternehmen und die Gelegenheit durchgeführt, bevor er Sie kontaktiert (anstatt einfach „seinen Lebenslauf durch die Stadt zu schießen“).
Kandidaten, die in den Einstellungsprozess für Entwickler eintreten, nachdem sie ihre Hausaufgaben über das Unternehmen und seine Produkte oder Dienstleistungen gemacht haben, liefern einen nützlichen Indikator für ihr Interesse und ihr Know-how. Besonders hervorzuheben sind Kandidaten, die so weit gegangen sind, im Vorfeld über den Interviewer zu recherchieren (z. B. seine Biografie, sein LinkedIn-Profil, Blog-Beiträge usw. gelesen haben). Anspruchsvollere Kandidaten legen Wert darauf, diese Informationen im Verlauf des Vorstellungsgesprächs preiszugeben. Für andere einfache offene Fragen wie „Was wissen Sie über unser Unternehmen?“. und „Was interessiert Sie besonders an unserem Unternehmen und dieser Stelle?“ kann in der Tat sehr aussagekräftige Antworten hervorrufen.
Schließlich wird ein wirklich interessierter Kandidat wahrscheinlich während des gesamten Interviewprozesses Fragen stellen. Trotzdem ist es immer eine gute Idee, das Vorstellungsgespräch zu beenden, indem Sie fragen, ob der Kandidat noch Fragen hat. Das Fehlen jeglicher Fragen kann ein Warnsignal sein, selbst bei jemandem, der sonst als A+-Kandidat gewertet worden wäre.
Einpacken
Die hier beschriebenen Techniken können als wertvoller Kernprozess dienen, um Softwareentwickler zu finden und einzustellen, die die besten der Branche sind. Es ist jedoch wichtig, sich daran zu erinnern, dass eine effektive Einstellung kein Ziel, sondern eine Reise ist. Man muss ihren Prozess ständig neu bewerten und optimieren, da ein statischer Prozess dazu bestimmt ist, zu einem toten Prozess zu werden.
Die Reise jedes Unternehmens wird anders sein, basierend auf seiner eigenen Kultur und seinen eigenen Prioritäten. Finden Sie den richtigen Weg für Ihr Unternehmen und setzen Sie ihn um. Sie werden Erfolge und Misserfolge haben, aber solange Sie aus letzterem lernen, können Sie sicher sein, dass Sie auf dem richtigen Weg sind.