it-swarm.dev

Ist "Nur die Besten einstellen" ein wirklich praktischer Rat für die normale Programmierung von Desktop-Anwendungen?

Als Hintergrund führen wir Desktop-Engineering-Anwendungen mit einer AutoCAD-ähnlichen Benutzeroberfläche durch, ähnlich wie etabs .

Eine Sache, die mich wirklich nervt, ist, ob es notwendig ist, die besten Entwickler einzustellen? Für den Anfang haben wir große Schwierigkeiten bei der Rekrutierung; Die meisten Lebensläufe, die wir sehen, führen entweder einfache CRUD-Apps oder SharePoint-Anpassungen durch, die meiner Meinung nach nicht wirklich viel Hardcore-Programmierung erfordern. Selbst diejenigen, die wir zum Interview aufrufen, können die meisten keine Fibonacci-Sequenz und keine einfache binäre Suche durchführen, und wir sind so freundlich, Hinweise zu geben und die Probleme explizit darzulegen, damit die Kandidaten nicht Sie müssen kein Wörterbuch nachschlagen, um zu überprüfen, was "Fibonacci-Sequenz" bedeutet.

Dies brachte mich zum Nachdenken: Ja, wir benötigen ein gewisses Maß an Programmierkenntnissen, wenn wir rechnerische Geometrie/lineare Programmieraufgaben ausführen, und wir benötigen ein gewisses Maß an Programmierfähigkeiten, wenn wir die Softwarearchitektur entwerfen oder entscheiden, welches Softwaremuster verwendet werden soll, aber darüber hinaus Ein Großteil unseres Codes besteht nur aus Installationscode (glaube ich), der von jemandem ausgeführt werden kann, der mit der Programmierung vertraut ist.

Angesichts der Tatsache, dass wir jetzt wirklich Programmiertalente brauchen und die Einstellung von Superstar-Entwicklern sehr schwierig ist, möchte ich meinen Standard senken und nur die mittelmäßigen einstellen, was in direktem Widerspruch zu dem steht, was Joel predigt .

Was denken Sie?

Bearbeiten: Sie müssen nicht die gesamte Bibliothek für Rechengeometrie/lineare Programmierung neu schreiben. Alles, was Sie für meine Anwendung tun müssen, ist zu wissen, wie Sie die vorliegenden Probleme in geeignete rechnerische/lineare Programmierbegriffe umwandeln und wann/wie Sie die vorhandenen Bibliotheken verwenden. Es ist also nicht so schwierig, wie es scheint.

61
Graviton

Ich schlage vor, Sie hören auf, Joel zu viel zu lesen. Was er in seinem Blog geschrieben hat, widerspricht seinen Antworten auf dieser Seite, so dass ich sein Wort nicht wirklich für viel halten würde.

Was einen Superstar ausmacht und warum es notwendig ist, einen zu haben, eröffnet eine lange und nirgends stattfindende Diskussion. Es ist Elitismus und es ist nicht praktisch.

Was Sie brauchen, ist eine Person, die:

  1. Würde gerne tun, was Sie tun
  2. Wäre ein leidenschaftlicher begeisterter Programmierer
  3. Hätte das Potenzial zu lernen, was es braucht, um Ihre Arbeit richtig zu machen

Der Rest spielt keine Rolle.

Sie würden nicht glauben, wie viele junge Absolventen da draußen sind, die nichts anderes wollen, als in diese Art von CS-starkem Projekt einzutauchen und sich niemals mit der Codierung von CRUD-Anwendungen zu befassen. Vor einiger Zeit war ich einer von ihnen. Ich habe praktisch davon geträumt, mich einem Projekt zur Compilerentwicklung anzuschließen, konnte aber keines finden. Warum nicht einem von ihnen eine Chance geben?

Ich glaube nicht, dass AutoCAD von Übermenschen geschrieben wurde. Die meisten erfolgreichen Projekte wurden von Leuten gemacht, die einfach das Ding erledigen wollten und das wollten sie wirklich.


die meisten Lebensläufe, die wir sehen, führen entweder einfache CRUD-Apps oder SharePoint-Anpassungen durch

Was ist zu erwarten, wenn die meisten Jobs genau das erfordern? Die Leute haben vielleicht CS an der Uni studiert und waren sogar wirklich gut darin, aber man kann nicht erwarten, dass sie sich daran erinnern, wenn sie das in 10 Jahren noch nie in der praktischen Programmierung verwendet haben. Offensichtlich wird niemand jedes Jahr über alte CS-Bücher lesen, nur um sie frisch zu halten, wenn dieses Wissen nirgendwo verwendet wird.

110
user8685

Ein Buch, das ich wirklich mag, ist Zuerst alle Regeln brechen . Es enthält viele Informationen über die Unterschiede zwischen durchschnittlichen Managern und guten Managern. Eine der wichtigsten Erkenntnisse, die gute Manager immer wieder sagten, wurde von einem von ihnen im Satz zusammengefasst: Ich habe nie zu lange gewartet, um die richtige Einstellung zu finden, und ich habe Ich habe nie schnell genug die falsche Einstellung abgegeben. Ja, es ist frustrierend, lange Zeit für die Einstellung zu benötigen, aber es lohnt sich.

Ein zweiter Punkt, den Sie beachten sollten, ist, dass es gemessen am Projektdurchsatz einen Produktivitätspeak für Teams mit 5 bis 8 Personen gibt. Sie erreichen erst dann die gleiche Produktivität, wenn Sie ein Team von über 20 Mitarbeitern haben. Seien Sie sehr, sehr vorsichtig, wenn Sie ein Team über die Größe hinaus wachsen lassen, in der die Dynamik kleiner Teams funktioniert. Und wenn Sie unter dieser Schwelle bleiben wollen, dann möchten Sie wirklich, dass diese 5-8 Leute gut sind.

Beide Punkte sprechen stark dafür, die richtige Einstellung zu finden.

41
btilly

Jeder behauptet, "nur das oberste 1-Perzentil einzustellen". Wenn dies wahr wäre, wären 100% der Beschäftigten alle im "Top-1-Perzentil" aller Menschen, so dass 99% aller Menschen arbeitslos wären (in einem bestimmten Bereich). Da dies eindeutig nicht der Fall ist und wir alle erfahrene Leute haben, die eindeutig nicht zu dieser Gruppe gehören (warum stellen Sie diese Frage sonst überhaupt ...), wissen wir, dass dies nicht wahr ist.

Tatsächlich wären Organisationen, die ausschließlich aus solchen Personen bestehen, höchst instabil. Zu viel Ego, zu viele widersprüchliche Ideen. Es würde entweder auseinanderfallen, wenn jeder sein eigenes Ding macht, in endlosen theoretischen Diskussionen über die relativen Vorzüge von allem versinken oder sich zu einem ständigen Schrei-Match entwickeln, wenn Gefühle aufflammen, wenn eine Entscheidung getroffen werden muss.

26
jwenting

Das erste, was Sie fragen müssen, ist, warum Sie Lebensläufe erhalten, die nicht den gewünschten Standards entsprechen. Ich habe mit vielen guten Leuten gearbeitet, also sind sie da draußen und die Anwendung klingt für mich sehr interessant. Wenn Sie keine Leute finden können, die Fibonacci-Sequenzen und binäre Suche ausführen können (was schwieriger ist als es scheint; laut Knuth waren es mehrere Jahre zwischen der ersten Veröffentlichung und der ersten korrekten Veröffentlichung), tun Sie etwas, um das zu steuern gute weg.

Bitten Sie um mehr Geschick, als Sie bereit sind zu bezahlen? Werben Sie an den falschen Stellen? Ist Ihr Unternehmen nach Standort oder Ruf unattraktiv? Dies ist Ihr erstes und grundlegendstes Problem, das Sie dringend lösen müssen. Sie und Ihre Kollegen kennen zweifellos einige gute Leute, die nicht für Sie arbeiten. Zeigen Sie ihnen, was Sie haben, und fragen Sie sie, ob sie versucht wären und wenn nicht, warum nicht. Möglicherweise sind Sie dem Problem zu nahe, um es ohne fremde Hilfe zu verstehen.

Stellen Sie keine Leute ein, weil sie die besten sind, die sich beworben haben. Stellen Sie Leute ein, weil sie in der Lage sind, etwas zu tun, was Sie wollen. Wenn Sie mittelmäßig einstellen, weil das alles ist, was zutrifft, werden Sie langsam gute Leute verlieren, und Sie werden mit Leuten enden, deren Algebra wackelig ist und versucht, Dinge mit rechnerischer Geometrie zu tun. (Eine mittelmäßige Einstellung, weil Sie einen Job für ein paar mittelmäßige Programmierer haben, ist eine andere Sache, aber Sie müssen in der Lage sein, qualifizierte Mitarbeiter dort einzustellen, wo Sie sie brauchen.)

25
David Thornley

"Die meisten können keine Fibonacci-Sequenz und keine einfache binäre Suche durchführen"

Ihre Kriterien sind sicherlich falsch. In meiner Gruppe sind wir alle Physiker oder Ingenieure. Ich wette, niemand konnte binär suchen, weil wir keine CS-Kurse besucht haben und im wirklichen Leben dafür eine Bibliothek verwenden. Ich würde sogar sagen: Jemand, der Binsearch selbst schreibt, weiß nicht, wie er sich auf wichtige Dinge konzentrieren soll.

Es ist viel wichtiger, wenn der Kandidat klug ist und in die Gruppe passt. Wenn Sie sein Programmiertalent überprüfen möchten, geben Sie ihm/ihr einen Job zu Hause. Notieren Sie, wie lange er/sie gebraucht hat, und besprechen Sie die Ergebnisse, um herauszufinden, ob es sich um echte Arbeit des Kandidaten handelt.

18
michael

Ich denke, dass "die Besten einstellen" zu einem Kult wird.

Die meisten Programmierarbeiten sind Routine und nicht kreativ. Auch bei der Arbeit an wirklich kreativen neuen Projekten. Das meiste davon ist bescheiden und basiert oft auf Mustern. Dies gilt insbesondere für die Benutzeroberfläche.

Die meisten modernen Systeme erfordern auch so viele Leute, dass sie von Natur aus nicht alle die besten sein können. Die meisten Menschen sind durchschnittlich, auch wenn sie es nicht sind, müssen sie dennoch viele "durchschnittliche" Aufgaben einer Person erledigen.

Die Forderung nach Grundkompetenz und vernünftigen Mindestanforderungen ist jedoch nicht unangemessen und sollte nicht kompromittiert werden.

Denken Sie an Routineoperationen: Abhängig von Ihrer Risikotoleranz würden Sie es wahrscheinlich vorziehen, wenn ein durchschnittlicher Arzt sie durchführt, anstatt 10 Jahre darauf zu warten, dass der Dekan der medizinischen Fakultät Zeit dafür hat. Das bedeutet nicht, dass Sie die Operation ordnungsgemäß durchführen lassen sollten.

13
Uri

"Die besten einstellen" bedeutet in der Regel "die besten einstellen, die derzeit ungefähr dort verfügbar sind, wo wir uns gerade befinden" und bedeutet für verschiedene Unternehmen unterschiedliche Dinge. Einige wollen Rockstar-Programmierer, andere wollen akribische Software-Ingenieure und der nächste will erfahrene Software-Handwerker. Es gibt kein "universelles Bestes", denken Sie also daran, und vielleicht deutet Ihre Jobspezifikation darauf hin, dass Sie nach einem Programmierertyp suchen, und das Interview besagt, dass Sie nach einem anderen Programmierertyp suchen. Plötzlich bekommt man keine Streichhölzer mehr.

Trotzdem arbeite ich nicht gerne mit mittelmäßigen Programmierern. So-so hat nichts mit Erfahrung zu tun (sie haben vielleicht 20 Jahre lang programmiert und sind immer noch nicht sehr gut darin), aber alles hat mit Eignung und Begeisterung zu tun. Wenn das so lala eines dieser beiden betrifft, haben Sie ein Problem. Es macht auch keinen Sinn, jemanden einzustellen, dessen Beiträge von anderen Teammitgliedern überarbeitet werden müssen, weil deren Code nicht gut genug ist. Mehr Penner auf Sitzen sind nicht immer die Antwort, mehr Penner auf Sitzen können leider auch mehr Arbeit für die besseren Mitglieder des Teams bedeuten, wenn sie versuchen, ihre Arbeit zu erledigen nd das Chaos aufräumen Der mittelmäßige Programmierer hat geliefert.

Einige Leute wirken nicht als Rockstars, sondern sind solide Programmierer auf mittlerer Ebene. Sie sind gut im Team zu haben und das meine ich nicht mit "so lala Programmierer". Letzteres ist jemand, der es kaum vermeidet, jedes Jahr zur Zeit der Leistungsüberprüfung gefeuert zu werden.

8
Timo Geusch

Als Manager-Typ stimme ich zu, dass die Einstellung von "den besten 1%" nicht praktikabel und nicht notwendig ist. Mein Rat wäre, das richtige Team für die Erstellung und Wartung Ihres Produkts einzustellen (möglicherweise zwei sehr unterschiedliche Teams, da Build und Wartung in ihren Anforderungen sehr unterschiedlich sind).

Ich würde dringend empfehlen, dass Sie die Personen identifizieren, die Sie derzeit in Ihrem Team haben und die "Schlüsselpersonen" sind (z. B. Dinge erledigen, gute Einstellungen haben, mit Unsicherheit/hohen Anforderungen gut arbeiten können usw.) und dann Personen einstellen, die sie haben in der Vergangenheit gearbeitet (und natürlich Respekt). Dies beseitigt viele Unsicherheiten im Zusammenhang mit dem Interviewprozess und hilft, das Team zu vereinen.

Auch "längerfristig" - investieren Sie stark in ein Praktikumsprogramm. Wenn Ihr Programmierteam aus 20 Personen besteht, holen Sie sich 5 Praktikanten pro Jahr und geben Sie ihnen echte Arbeit. Bringen Sie jedes Jahr das eine oder andere zurück, das Ihnen gefällt, und bringen Sie 5 weitere Zufallsvariablen ein. Dies ist wahrscheinlich der beste Weg, um Ihr Team mit guten Programmierern zu füllen. Sie können dann opportunistisch im Freien einstellen und die Messlatte für diese Kandidaten höher legen.

Achten Sie, wie bereits erwähnt, auf Ihren Interviewprozess. Lassen Sie die Kandidaten Code schreiben (oder besser, gehen Sie ihre Lösung für ein Problem mit 1 Stunde zum Mitnehmen durch) und lassen Sie sie mit dem Team zu Mittag essen. Lernen Sie ihre technischen und zwischenmenschlichen Fähigkeiten kennen. Und haben Sie keine Angst davor, "Nein" zu sagen, auch wenn Sie verzweifelt nach 20 weiteren Personen für ein großes Projekt suchen, das nächste Woche beginnt.

6
Al Biglan

Nach meiner Erfahrung gilt das Paretto-Prinzip auch für die Programmierung: 80% der Arbeit wird von 20% der Entwickler ausgeführt und umgekehrt. OK, die Zahlen sind möglicherweise übertrieben. In Wirklichkeit erledigen etwa 20% der Mitarbeiter 50% der Arbeit (mit Arbeit meine ich gute Arbeit, nicht nur Codezeilen). Es ist eigentlich eher wie eine Glockenkurve. In einem 10-köpfigen Team haben Sie also 1 Helden, 2 großartige Jungs, 4 durchschnittliche und 2-3 erbärmliche.

Viele Unternehmen verwenden die Bell-Kurve, um Bewertungen abzuwägen. So ziemlich egal wie klug Ihre Kandidaten sind, sie werden in ihre Level fallen. Sie können kein Team haben, in dem alle auf dem gleichen Niveau sind. Passiert nicht.

6
DPD

Hier gibt es bereits eine Reihe von Antworten, aber ich denke, es gibt noch einen Punkt, der diskutiert werden muss: die Auswirkungen, die die Einstellung der so lala Leute auf Ihre Softwarequalität hat, und wie es Ihr Leben als Manager viel schwieriger macht.

Die Antwort auf "Müssen die besten Entwickler eingestellt werden?" ist immer ein dickes JA. In der Realität ist dies natürlich nicht immer möglich. Der gefährliche Fehler, den Sie meiner Meinung nach machen, wenn Sie diese Frage überhaupt in Betracht ziehen, ist zu denken, "unsere Software ist so einfach, dass selbst ein mittelmäßiger Typ das kann". Das ist falsch.

Ihre Software wird fertig sein, zweifeln Sie nicht daran, aber erwarten Sie von einem exzellenten Team ganz andere Ergebnisse als von einem mittelmäßigen Team. Sie haben mehr Fehler, mehr Leistungsprobleme, mehr Wartbarkeits- und Skalierbarkeitsprobleme und so weiter. Sie müssen Ihre so lala Jungs durch komplexere Probleme babysitten. Sie müssen die mittelmäßigen Jungs durch richtige Architekturentscheidungen babysitten.

Wenn Sie dies akzeptieren und bereit sind, dies zu verwalten, ist das in Ordnung. Seien Sie einfach auf den Prozess und die Ergebnisse vorbereitet.

4
hbatista

In Ihrem Fragentitel wird eine "normale Desktop-Anwendung" erwähnt, in Ihrem Text geht es jedoch darum, Kenntnisse über Computergeometrie und lineare Programmierung anzuwenden. Dies sind Anwendungsbereiche, aus denen riesige, mehrdekadige Forschungsprogramme hervorgegangen sind, die massive gesellschaftliche Konsequenzen für jeden Fortschritt haben (Rückruf, lineare Programmierzusammenfassungen Ressourcenzuweisung). Infolgedessen gibt es viele ausgefeilte Ansätze zur Lösung von Problemen in diesen Bereichen, die sehr gut funktionieren.

Eine schlechte Miete

  • hat vielleicht noch nicht einmal von diesen Problemklassen gehört,
  • möglicherweise nicht mit den gängigen Lösungen vertraut,
  • würde wahrscheinlich nicht über die besseren Sachen Bescheid wissen, die es gibt (Hinweis: Die meisten Studenten hören nie von den ausgefallenen Sachen, wenn sie überhaupt von den Problemen hören), und
  • es würde mit ziemlicher Sicherheit ewig dauern, solche Dinge umzusetzen (wenn man bedenkt, dass einige von ihnen ein ganzes Graduiertenseminar über Datenstrukturanpassungen geben, einschließlich Professor).

Mit anderen Worten, überlegen Sie, ob Sie wirklich an einem Fußgänger arbeiten. Wenn Sie großartig sind, sollte die Einstellung viel einfacher sein. Wenn nicht, halten Sie Ausschau nach jemandem, der das tun kann, was Sie brauchen.

3
Phil Miller

Machen wir einen Schritt zurück.

Was versuchen wir zu tun? Software schreiben.

Warum denken wir, wir müssen die Besten einstellen? Weil dieses verdammte Arnold-Kind sich nicht aus einer nassen Papiertüte heraushacken konnte und jetzt die SQL komplett durcheinander ist und ich mich nicht anmelden kann im.

Okay, was ist das Beste ? Ich weiß nicht, er ist wahrscheinlich jemand, der viel Geld will und hat Ein sechs Fuß langer Lebenslauf mit einem großartigen Portfolio, der bei Google oder so gearbeitet hat. Er sollte einen Abschluss haben und vielleicht ein paar Buchstaben am Ende seines Namens. Ja, das klingt für mich nach dem Besten, und mit dem Besten meine ich jemanden, der nicht so ein verdammtes Arnold-Kind ist. Oh, und er sollte wissen, wie man einen wirklich harten Mist macht, von dem ich in der Schule gehört habe, wie "schreibe eine Blasensorte" oder wie auch immer sie es nennen. Ich werde einen der anderen Jungs bitten, ein paar knifflige Dinge zu nennen, die sie in der Schule tun mussten, ja.

Klingt so, als ob du dieses verdammte Arnold-Kind einfach nicht willst? Würdest du? Ich habe es satt, fehlerhaften Code zu haben, es dauert ewig, bis alles erledigt ist, und diese neuen Leute, die ich interviewe, sagen mir, dass ich alles neu schreiben muss!

Richtig, worum bitten Sie das verdammte Arnold-Kind? Erstellen Sie eine PHP Website, schreiben Sie eine jQuery, lassen Sie die PHP ein grundlegendes CRUD ausführen mit MSSQL und ändern Sie die Hintergrundfarben.

Klingt das nach einer Aufgabe, die ausschließlich für die Besten geeignet ist? Ich bin sicher, dass die Besten das können, aber wahrscheinlich kann jeder, der die richtigen Fähigkeiten hat, die dazu passen.

Also brauchst du nicht das Beste? Richtig, ich brauche nur jemanden mit den Fähigkeiten, die meine Ziele erfüllen.

Oh. Ja.

3
Incognito

Ich denke, es ist nicht wirklich ein Problem, großartige Entwickler einzustellen. Die eigentliche Herausforderung besteht darin, sie wollen für Sie arbeiten zu lassen.

Müssen die besten eingestellt werden?
Ich glaube schon. Ein großartiger Entwickler ist nicht nur derjenige, der alles pünktlich erledigt. Nicht nur ein solches Individuum ist viel produktiver als andere. Ein großartiger Entwickler geht auch mit gutem Beispiel voran und inspiriert einfach andere Teammitglieder. Andere könnten während der Arbeit mit ihnen sehr weit fortgeschritten sein.

OK, also werden Sie Ihre Standards senken. Das ist cool, wahrscheinlich werden Sie Ihre Meinung ändern, nachdem Sie eine wirklich miese Person eingestellt haben. Derjenige, der alle Ihre CS-Fragen fehlerfrei beantwortet, aber nicht wirklich eine einzige Zeile Produktionscode schreiben kann. Viel Glück damit :)

3
Paweł Dyda

Sicherlich bin ich nach Joels Maßstäben kein Superstar-Programmierer. Trotzdem habe ich in meiner 20-jährigen Karriere als Entwickler einige erfolgreiche Projekte geschrieben. Ich hätte deine Fragen lösen können. Aber weniger aus meiner Erfahrung bei der Arbeit, wo tatsächlich ein Großteil der komplizierteren Arbeit erledigt wird, indem Sie Ihre Datenbank oder eine Bibliotheksfunktion darum bitten.

Wenn Sie sich jedoch dafür entscheiden, weniger erfahrene Mitarbeiter einzustellen, sollten Sie in Betracht ziehen, Technologien zu verwenden, die einfach zu handhaben sind. Wenn Sie beispielsweise vorhatten, C++ für das gesamte Projekt zu verwenden, beschränken Sie den C++ - Teil auf Bibliotheken, die von Ihren besten Mitarbeitern geschrieben wurden, und lassen Sie die anderen die Benutzeroberfläche in Visual Basic implementieren.

2

Notieren Sie die Werte, die Sie in einem Mitarbeiter suchen, der sich Ihren Reihen anschließt.

Wenn der einzige geschätzte Wert die Programmierkompetenz ist, werden Sie schnell von Menschen umgeben sein, die genau das schätzen. Da die meisten wirklich kompetenten Programmierer über ein ausgefeilteres Wertesystem verfügen, werden sie sich Ihrem Team nicht anschließen.

Es ist jedoch wahrscheinlicher, dass Sie nach innovativen, kreativen, vertrauenswürdigen, gelehrten, neugierigen, selbstlernenden, geselligen, kompetenten und engagierten Menschen suchen. Zeigen Sie, dass Ihr Unternehmen diese Werte versteht und respektiert und bereit ist, seinen Mitarbeitern bei der Weiterentwicklung zu helfen.

Verstehen und akzeptieren Sie die Werte Ihrer derzeitigen Mitarbeiter und kommunizieren Sie sie in Ihren Bewerbungen. Gute Unternehmen mit einem nachhaltigen Wertesystem ziehen gute Mitarbeiter an.

2
Dibbeke

Natürlich sollten Sie nur die Besten einstellen. Das bedeutet nicht automatisch, dass Sie erfolgreich sein werden - es gibt nur so viele der "Besten", und es wird Gewinner und Verlierer im Kampf geben, um sie anzuziehen. Ein Großteil davon wird von Ihrer Fähigkeit und Bereitschaft herrühren, hart an dem Problem zu arbeiten, und von den Ressourcen, die Ihnen zur Verfügung stehen.

Aufgeben, bevor Sie anfangen, ist der sicherste Weg zu verlieren.

1
Mark Ransom

Die binäre Suche ist ein interessantes Problem, da bekanntlich die meisten Programmierer Schwierigkeiten haben, sie richtig zu schreiben ( Bently schreibt in Programming Pearls darüber ). Vielleicht ist es nicht so schlimm, es zu testen, solange Sie Kandidaten nicht ausschließen, weil sie es nicht gelöst haben. Wenn sie es schnell und richtig lösen, gibt es zumindest Hinweise darauf, um welche Art von Programmierer es sich handelt, sodass Sie in diesem speziellen Fall mehr Informationen haben.

1
Anon

sie müssen die besten einstellen. aber der Begriff wurde oft aus dem Zusammenhang gerissen. Sie müssen den besten Kandidaten mit den für diese Position erforderlichen Fähigkeiten finden und nicht den besten Programmierer im allgemeinen Sinne. Die Softwareentwicklung ist breit gefächert und nicht jede Position erfordert das gleiche technische Wissen.

Stellen Sie sich diese Frage (das haben Sie schon getan): Wenn Sie 5 Jahre lang einen anderen Ingenieur in derselben Position haben, würden Sie erwarten, dass sie sich an Fibonanci-Serien und binäre Suchen erinnert?

wenn die Antwort Nein lautet, ändern Sie Ihr Interviewmuster. Möglicherweise müssen Sie ein Dutzend Suchalgorithmen kennen, wenn Sie an einer Suchanwendung wie Google oder Bing arbeiten möchten. Alle anderen verwenden nur map.get ("").

richten Sie Ihre Interviews auf das aus, was die Position benötigt, und nicht auf einen guten guten Programmierer.

1
gee

Wenn Sie sich wirklich nicht für Qualität interessieren, würde ich vorschlagen, eine der Outsourcing-Websites zu verwenden und mit kleinen Projekten zu beginnen. Dann können Sie sie bezahlen, wenn sie die Arbeit erledigen können, und eine einfache Möglichkeit haben, gegen Kaution zu gehen, wenn sie nicht können.

Ich frage mich jedoch, ob eine Desktop-Engineering-Anwendung wirklich viel Routinecodierung enthält. Sie können sehr komplex sein, und die meisten Programmierer sind nicht so gut im Umgang mit Komplexität. Sie können leicht eine Menge sofortigen Legacy-Codes erstellen, der Ihr Team für die kommenden Jahre zusammenhält. Im Allgemeinen sind die ersten Einstellungen für ein neues Projekt am wichtigsten und geben den Ton für das gesamte Projekt an.

1
Brian Slesinsky

In jeder Organisation gibt es Menschen mit mehr Erfahrung und Menschen mit weniger. Nicht nur das, sondern ein Experte auf einem Gebiet kann ein Anfänger auf einem anderen sein. Sicher, ein begeisterter Amateur kann einer Codebasis mehr schaden als nützen, aber so lernen sie - indem sie ihre Fehler beheben und ihre Erfahrungen mit ihren erfahreneren Kollegen diskutieren.

Mein Vorschlag wäre, anstatt zu versuchen, Superstars einzustellen, versuchen Sie, Leute einzustellen, die einigermaßen intelligent sind, zu Ihrer Unternehmenskultur passen, lernbegierig sind und ihre eigenen Grenzen kennen.

1
Mark Booth

Ich stimme den meisten der obigen Kommentare voll und ganz zu, die sich auf die Anpassung einer Person an ein Problem beziehen. Dies führt normalerweise zu einer langfristigen Beziehung, anstatt einen Superstar einzustellen, der an einem regulären Problem arbeitet - was ihn nur frustriert, schnell zu gehen.
Allerdings sollten Sie immer versuchen, für Ihr Unternehmen und nicht für eine bestimmte Position einzustellen. Weil derselbe Typ früher oder später mit persönlichen Kontakten usw. zwischen Teams wechseln wird und sich möglicherweise anderswo als Mitesser herausstellt. Stellen Sie sicher, dass Ihr Unternehmen sehr strenge interne Transferrichtlinien hat und dass Sie ein klares Bild davon haben, was Sie in den nächsten Jahren in Ihrem Team tun werden, bevor Sie eine Person einstellen, von der Sie glauben, dass sie die Unternehmensgrenze nicht erfüllt (aber das aktuelle Problem löst) ). Ich habe zu viele Fälle gesehen, in denen die Mittelmäßigkeit der Entwickler das Team besonders hart arbeiten ließ, um sie zu umgehen.