Meiner Erfahrung nach neigen Führungskräfte und sogar Mitarbeiter eines potenziellen Arbeitgebers dazu, in Vorstellungsgesprächen den Qualitätsanspruch in ihrem Unternehmen oder ihrem Team zu betonen. Ich werde auch regelmäßig nach meiner Kompetenz im Umgang mit Tools und Prozessen zur Verbesserung und Aufrechterhaltung der Codequalität gefragt. Es ist auch üblich, während des Interviews oder als Aufgabe einen Code zu schreiben.
Aufgrund meiner Erfahrung mit mehreren Wartungsprojekten musste ich den Wert von gutem Code auf die harte Tour lernen. Es ist mir sehr wichtig geworden, wenn ich meinen eigenen Code schreibe. Und ich möchte nicht bei einem Unternehmen angestellt werden, das sich nicht dafür einsetzt, guten Code zu schreiben, abgesehen von den Definitionen für guten Code.
Sobald jedoch der Legacy-Code auf dem Tisch liegt, bin ich oft enttäuscht, da sich herausstellt, dass die Verpflichtung zur Codequalität eher eine Redensart ist. Es wimmelt nur so von einfachen Fehlern, die vor Jahren eingeführt wurden, hat keine konsistente Formatierung, keine konsistenten Redewendungen und zeigt manchmal ein groteskes Missverständnis grundlegender Codierungstechniken und -prinzipien. Wahrscheinlich predige ich hier zum Chor :)
Ist es eine gute Idee, einen potenziellen Arbeitgeber zu bitten, zuerst den Quellcode zu zeigen? Insbesondere würde ich gerne einige Produktionscodebeispiele sehen.
Wie kann ich danach fragen, damit ein potenzieller Arbeitgeber meine Bedenken versteht und mir tatsächlich erlaubt, einen Blick darauf zu werfen?
Werden sie wahrscheinlich aus anderen Gründen als schlechter Codequalität (Vertraulichkeit usw.) ablehnen?
Wenn sie sich weigern, wie können wir dann eine für beide Seiten zufriedenstellende Einigung erzielen?
Nehmen wir der Argumentation halber an, dass ich die Codequalität anhand einer relativ kleinen Stichprobe bestimmen kann - meine Frage bezieht sich wirklich nur darauf, ob und wie ich danach fragen soll. Mich vor niedrigen erwarteten Renditen zu warnen, ist nett, aber nicht zum Thema.
Ich bin kein Bewerber. Ich wurde aufgrund meiner Qualifikation angesprochen und möchte gerne prüfen, ob ich tatsächlich Interesse habe. Ich habe keine Angst, vom Rennen ausgeschlossen zu werden. Mein primäres Ziel ist es, herauszufinden, ob mir das Essen schmeckt, ohne den ganzen Teller aufessen zu müssen.
Es ist höchst unwahrscheinlich, dass sie Ihnen ein Beispiel des Codes zur Verfügung stellen werden, also müssen Sie wirklich herausfinden, wie Sie Ihre Fragen beantworten können, ohne den Code zu sehen. Sie versuchen sicherzustellen, dass sie Wert auf gute Programmierpraktiken legen, also fragen Sie sie danach .
Hier sind einige Beispielfragen, die Ihnen helfen sollen zu verstehen, wie viel Wert das Unternehmen auf die Pflege von Qualitätscode im Laufe der Zeit legt. Es gibt viele andere Dinge, die Sie speziell für Ihre Situation und Prioritäten fragen können.
BEARBEITEN:
Einige Leute weisen darauf hin, dass nur weil der Interviewer Ihnen etwas sagt, es nicht bedeutet, dass es ganz wahr ist. Ihre Standards für Peer-Reviews stimmen möglicherweise nicht mit Ihren überein, oder vielleicht weiß der Manager nicht so viel über die Programmierpraktiken seines Teams, wie er denkt. Das gilt für alles, was einem in einem Vorstellungsgespräch gesagt wird, über alle Themen hinweg, und man muss sich ab einem gewissen Punkt auf Vertrauen verlassen. Wenn Sie sich wirklich wohler fühlen würden, wenn Sie Code sehen würden, dann fragen Sie auf jeden Fall! Ich glaube nur nicht, dass Sie davon ausgehen können, dass die Antwort ja sein wird.
Checkstyle
.Wenn Sie Code warten, können Sie genauso gut davon ausgehen, dass der Code, den Sie pflegen, in irgendeiner Weise strukturell mangelhaft ist.
Es ist nicht sinnvoll, Code zur Überprüfung zu verlangen, da dieser Code als vertraulich und urheberrechtlich geschützt gilt, es sei denn, er ist Open Source. Sie könnten sich den Open-Source-Code ansehen, aber wenn er gut geschrieben und gut strukturiert ist, gibt es keine Garantie dafür, dass der Legacy-Code genauso gut geschrieben und strukturiert ist.
Selbst wenn Sie proprietären Code sehen durften, gibt es keine Garantie dafür, dass dieser Code nicht wirklich ihr bester Schritt nach vorne ist.
Wenn Sie mit mir ein Vorstellungsgespräch führten und Sie darum bitten, einen Teil unseres proprietären Codes zu sehen, werde ich die Haltung einnehmen, dass Sie die Bedeutung der Wörter „vertraulich“ und „proprietär“ nicht kennen, und Sie als Kandidat übergangen. Warum sollte ich Sie überhaupt einstellen, wenn ich mir Gedanken darüber machen muss, welchen Legacy-Code Sie bereit sind zu pflegen?
Einfach fragen. Stellen Sie kein Ultimatum, dass Sie zur Tür hinausgehen, wenn Sie den Code nicht sehen. Es kann legitime Gründe geben, warum sie es nicht zeigen können. Wenn Sie der Meinung sind, dass dies ein Deal Breaker ist, lehnen Sie das nächste Interview einfach ab.
Obwohl sie keine kommerzielle Software verkauften, habe ich während eines Interviews Code gesehen und musste nicht einmal danach fragen. Sie wollten wissen, ob ich es verstehe.
Das Bereinigen von Code wird immer Teil der Arbeit sein. Sie haben vielleicht das Gefühl, dass Sie sehr hohe Standards für Ihre aktuellen Programmierpraktiken haben, aber in einem Jahr oder so sind Sie vielleicht nicht mehr so zufrieden damit.
Sei nicht so hart. Ein Bild mag mehr als tausend Worte enthalten, aber es zeigt nur eine Seite der Geschichte.
Bearbeiten: Ich denke, ein Schlüssel hier ist, ob sie Sie in die Lage versetzen werden, schlechten Code zu schreiben. Das könnte der Grund für eine aktuelle Codebasis von geringer Qualität sein, oder es kann sein, dass die vorherigen Programmierer nicht so geschickt waren. Aufräumen macht nicht immer Spaß, ist aber erträglich, wenn Sie wissen, dass das Unternehmen Sie in die Lage versetzen wird, erfolgreich und qualitativ hochwertig zu arbeiten.
Fragen Sie nicht nach einer Kopie von irgendetwas: Das klingt einfach gruselig und unklug. Fragen Sie nicht das Management: Die Codebasis entspricht möglicherweise nicht den angestrebten Zielen des aktuellen Managements. Fragen Sie nicht einmal nach dem Joel-Test, da sie möglicherweise Dinge behaupten, die sie nicht wirklich haben.
Bitten Sie jedoch darum , sich mit einem bestehenden Entwickler zusammenzusetzen, um eine Tour durch die Codebasis und Toolchain sowie aktuelle Herausforderungen zu erhalten. Es ist eine vernünftige Bitte, nicht außergewöhnlich ungewöhnlich. Zu diesem Zeitpunkt können Sie Fragen zur Codewartung stellen. Wenn die Codebasis schlecht ist, werden Sie es ziemlich schnell wissen. Wenn es gut ist, haben Sie mit dem Team Kontakt aufgenommen.
Sie sagen, Sie sehen sich nicht als Kandidat und haben keine Angst vor einer Absage, bestehen aber darauf, den Begriff potenzieller Arbeitgeber zu verwenden; Sie müssen Ihren Fokus ändern.
Sie möchten als Auftragnehmer fungieren. Sie sind kein potenzieller Arbeitgeber; Sie sind ein potenzieller Kunde.
Kein Heimwerker wird einen Kostenvoranschlag abgeben, ohne die Baustelle und die Bedingungen gesehen zu haben und zu verstehen, welche Risiken damit verbunden sind. Sie als Auftragnehmer für die Codeverbesserung müssen die gleichen Schritte ausführen.
Ein Ansatz besteht darin, einen ein- oder zweiwöchigen Auftrag zu übernehmen, um die Situation zu untersuchen und abzuschätzen, was benötigt wird und was es kosten wird. Wenn Ihnen die Situation nicht gefällt, bieten Sie hoch oder weigern Sie sich, die Arbeit anzunehmen.
Selbstverständlich unterzeichnen Sie alle erforderlichen Vertraulichkeitsvereinbarungen.
Hinweis: Selbst wenn ich Sie ansprechen würde, um ein Mitarbeiter zu werden, würde ich Sie ausschließen, wenn Sie darauf bestehen würden, Zugang zu meiner Codebasis zu haben. Aber wenn ich Sie als Auftragnehmer einstellen wollte, um ein bestimmtes Ziel zu erreichen, würde ich erwarten, dass Sie Ihre Sorgfaltspflicht erfüllen.
Ich würde versuchen, mit zukünftigen Kollegen zu sprechen . Am besten mehr als eine.
Tatsächliche Programmierer erzählen Ihnen eher als ihre Manager die tägliche Wahrheit, anstatt eine Vision davon zu haben, wo das Unternehmen hoffentlich irgendwann in der Zukunft stehen wird. Sie können auch die Ansichten mehrerer Kollegen vergleichen, um Fakten weiter von Wunschdenken zu trennen.
Ein weiterer Vorteil ist, dass die Menschen, mit denen Sie zusammenarbeiten, auch sehr wichtig für Ihre Arbeitszufriedenheit sind, also möchten Sie sie sowieso treffen.
Stellen Sie einfach einige Fragen aus Joel Test :
Wie andere gesagt haben, können Sie sie mit einigen einfachen Fragen vergleichen, aber ich verstehe wirklich, woher Sie kommen ... Aus persönlicher Erfahrung.
Die Leute sagen vor Ort eine Menge Zeug, das sie entweder nicht genau wissen, oder sie antworten, ohne die Frage zu verstehen. So etwas wie der Joel-Test ist wirklich großartig, aber nur, wenn sie die Frage und die Technologie verstehen (und wenn sie keine lügenden Drecksäcke sind).
Eine Bejahung von "Verwenden Sie die Quellcodeverwaltung?" könnte tatsächlich so schrecklich sein wie "Wir arbeiten von FTP und sichern das am Ende des Monats in CVS". Wenn diese Dinge wichtig dafür sind, ob Sie mit diesen Leuten zusammenarbeiten oder nicht, oder (was vielleicht noch wichtiger ist), wie viel Sie ihnen in Rechnung stellen werden, um ihre Unfähigkeit auszugleichen, müssen Sie es durch direkte Beobachtung herausfinden . Leute, die keine Softwareentwickler unter Vertrag nehmen, werden das wahrscheinlich nicht verstehen.
Aber Fachleute verstehen Risikobewertung . Das ist alles, was Sie hier tun. Erklären Sie es, sagen Sie, dass Sie gerne eine [gute, nicht lächerliche] NDA unterzeichnen, und wenn sie sich weigern, lassen Sie sie das Risiko auf sich nehmen, indem Sie das allerschlimmste Szenario (oder einen Faktor davon) zitieren. So handhabt das jede andere Branche.
Ich sage nicht, dass Sie sie nicht auch mit Tests wie dem Joel-Test vergleichen sollten. Stellen Sie einfach sicher, dass Sie gesehen haben, was Ihnen wichtig ist, bevor Sie sich zu irgendetwas verpflichten.
Meiner Erfahrung nach neigen Führungskräfte und sogar Mitarbeiter eines potenziellen Arbeitgebers dazu, in Vorstellungsgesprächen den Qualitätsanspruch in ihrem Unternehmen oder ihrem Team zu betonen.
Jeder Arbeitgeber ist angeblich der Qualität verpflichtet. Dennoch gibt es tonnenweise beschissene Software und tonnenweise Sicherheitslücken.
Im Allgemeinen verwechseln Sie die geschwätzige Geschäftssprache, weil die Aussage „Wir verpflichten uns zur Qualität“ letztendlich eine vage Aussage ist. Wessen Qualität? Was ist der Maßstab? Es ist einfach Bull Crud, damit Sie sich großartig fühlen.
Im Allgemeinen ist alles, was Sie während eines Bewerbungsprozesses hören, – in Ermangelung eines besseren Begriffs – eine „Notlüge“, die Ihnen das Gefühl geben soll, dass der potenzielle Arbeitgeber die beste Wahl für Sie ist.
Mein Rat? Produktionscode werden Sie höchstwahrscheinlich erst sehen, wenn Sie im Unternehmen selbst sind. Und wenn es Ihren Ansprüchen nicht genügt, suchen Sie einfach weiter nach einem neuen Gig.
Die harte Realität ist, dass ziemlich viele Unternehmen beschissene Systeme, beschissene Software und beschissene Praktiken haben. Und das ergibt sich aus der Tatsache, dass diese Art der Computerarbeit für die meisten „unsichtbar“ ist und die meisten Menschen damit durchkommen.
Ganz einfach: Bieten Sie an, eine Geheimhaltungsvereinbarung (NDA) zu unterzeichnen . Dies wird Sie rechtlich (wenn auch nicht technisch) daran hindern, ihren Code in Ihren eigenen Projekten zu verwenden.
Stellen Sie außerdem sicher, dass Ihre Anfrage logisch klingt. Fordern Sie nur die Code-Snippets an, die Sie benötigen . Dies wird Ihnen helfen, Ihre Diskussionen über das Projekt zu leiten und Ihre Anfrage vernünftig klingen zu lassen.
Fragen über:
Ich sage ... "verschwenden Sie keine Zeit mit Unternehmen, die irgendwie erwarten, dass Sie aus dem Stegreif 'Code schreiben'. Wenn sie wirklich nicht glauben, dass Sie tatsächlich Quellcode in {Programmiersprache hier einfügen} schreiben können, warum- zur Hölle, haben sie dich zu einem Vorstellungsgespräch eingeladen?
Nun – nachdem ich das gerade gesagt habe – muss ich auch anerkennen, dass „es da draußen Prätendenten gibt“. Und es gibt auch Gründe, warum Unternehmen gelernt haben, bei jedem Kandidaten oberflächliche kriminelle Hintergrundprüfungen durchzuführen ...! (Ich könnte dir jetzt Geschichten erzählen, aber ich werde es nicht tun.)
Also – es liegt an Ihnen, denke ich. "Wie sehr willst du diesen Job?"
Sie können nicht gemäß den anderen Antworten.
Es ist jedoch wahrscheinlicher, dass sie zustimmen, Ihnen die Benutzer-IDs einiger ihrer Programmierer mitzuteilen, die Konten bei StackOverflow und Programmer haben.
Wenn Sie sich die Probleme ihrer Mitarbeiter ansehen, erhalten Sie eine Vorstellung davon, wie ihr Code aussieht.
jmort253
jmort253
jmort253
Careerasaurus.com