Ich suche einen Job und habe mich auf eine Reihe von Stellen beworben. Ein Arbeitgeber antwortete. Ich hatte ein ziemlich langes Telefoninterview (vielleicht eine Stunde +) und sie haben mich dann mit einem Entwicklertest konfrontiert. Mir wurde gesagt, dass der Test voraussichtlich zwischen 6 und 8 Stunden dauern würde und dass ich für meine Arbeit bezahlt würde, sofern die Ergebnisse mit deren Zustimmung übereinstimmen.
Das gab mir eine Pause, aber ich bemühte mich. Der Entwicklertest fand auf einer VM statt, auf die über RDP zugegriffen wurde . Die Aufgabe bestand darin, eine Suchseite in einem Webprojekt zu implementieren, die Daten vom Server anfordert, diese auf dem Bildschirm in einer Tabelle anzeigt und ein ziemlich kompliziertes Suchfilter-Schema aufweist (es gibt ungefähr 15 Status und wenn Sie die Suche an den Server senden) kann zusätzlich zur Zeichenfolge- / Feldsuche nach diesen Status suchen. Außerdem sollen SVG- Symbole bei bestimmten Datenwerten die Farbe ändern und einige Daten anders dargestellt werden als in der Datenbank.
Kurz gesagt, dies dauerte viel länger als 6-8 Stunden. Ein Großteil davon war auf die sehr schlechte VM zurückzuführen, auf der ich ausgeführt wurde (das Laden von Visual Studio 2013 dauerte 10 Minuten und das Öffnen der 3-GB-Ginormous-Lösung weitere 15 Minuten).
Mir wurde gesagt, dass ich nach Abschluss des Tests meine Änderungen an der Quellcodeverwaltung vornehmen soll ... Hmm, OK. Ich folgte den Anweisungen. Und nachdem ich die Änderungen vorgenommen hatte, erhielt ich eine Antwort per E-Mail. Die SVGs waren nicht richtig eingefärbt, es gab einen Fehler in diesem Rand-Fall, es gab ein gelegentliches Problem mit dieser anderen Sache, die ich nie erlebt habe, usw. Also bin ich jetzt 13-14 Stunden in dieser Sache und ich muss Bugfixes durchführen. Ich mache sie und der Arbeitgeber kommt mit weiteren Anfragen zur Fehlerbehebung zurück.
Meine ganze Arbeit geht anscheinend in eine Produktionsanwendung. Ich bemerkte einige Anomalien im Code, bei denen es so aussah, als hätten andere alle Funktionen codiert, aber nichts anderes berührt.
Werde ich nur für billige Arbeitskräfte eingesetzt? Selbst wenn sie mir die versprochenen 50 Dollar pro Stunde für 6 Stunden bezahlen, habe ich jetzt ungefähr 18 Stunden für diese Sache zugesagt. Wenn ich all die Dinge, die sie sich immer wieder einfallen lassen, behebe, habe ich mindestens 16 Stunden kostenlos gearbeitet.
Ich habe eine Reihe von Entwicklertests durchgeführt, aber noch nie einen, bei dem ich an Code für die Produktion gearbeitet habe. Ich habe noch nie einen Test gemacht, bei dem ich ein Feature implementiert habe, das in Vorbereitung war, und ich habe noch nie eines gemacht, das 4 Runden und insgesamt mehr als 20 Stunden gedauert hat. Ich habe den Eindruck, sie nutzen ihren Entwicklertest, um einen Teil der Funktionalität auf billige Weise zu testen.
Habe ich den falschen Eindruck? Und ist dieses Testprotokoll angemessen?
Antworten:
Ich würde niemals an einem Code-Test dieser Art teilnehmen. Ich habe viele Code-Tests gemacht und viele Code-Projekte durchgeführt. Ich würde unter keinen Umständen Code in das Repository einer anderen Person einchecken. Wenn sie nicht wissen, was sie nach einem 4-stündigen Beispiel mit einer geringfügigen Fehlerkorrektur in einer Pair-Programming-Sitzung wissen müssen, werden sie es nie erfahren.
Wenn Sie einen Test machen, sollten Sie ein paar Dinge im Vorfeld wissen und klarstellen:
Das Unternehmen, mit dem Sie ein Interview führen, wird auch von Ihnen interviewt. Wenn sie auf diese Weise jemanden behandeln, den sie interviewen, ist dies ein Unternehmen, für das Sie arbeiten möchten? Ich verstehe, dass Menschen häufig ein Bedürfnis nach Arbeit haben und dieses Bedürfnis häufig einige Konzepte des gesunden Menschenverstands außer Kraft setzt, aber dies sollte immer im Vordergrund Ihres Geistes stehen. Hab keine Angst rauszugehen. Wenn es sich nicht richtig anfühlt, folge deinen Instinkten und stimme mit deinen Füßen ab.
quelle
Auf viele Interviews folgen Tests. Diese Tests sind erforderlich, um sicherzustellen, dass Sie über die erforderlichen Fähigkeiten verfügen, und um einige Dinge, die während des Interviews selbst nur schwer zu testen sind (z. B. die Anwendung von Stilregeln auf Ihren Code), besser zu verstehen.
Vor diesem Hintergrund ist ein Test ein Test.
Es muss nicht lange dauern. Nach acht Stunden Codierung ist nicht viel zu sehen, was nach dreißig Minuten nicht mehr zu sehen ist. Noch wichtiger ist, dass Code, der während des Tests geschrieben wurde, Zeile für Zeile überprüft werden sollte, was eine wichtige Zeitspanne in Anspruch nimmt . Es ist nicht ungewöhnlich, mehr als zwei Stunden zu verbringen, um den während einer halben Stunde geschriebenen Testcode zu überprüfen.
Es sollte sich nicht um eine vorhandene Codebasis handeln. Das Verständnis der Codebasis eines mittelgroßen Produkts kann Tage oder Wochen dauern (oder Monate oder Jahre, abhängig von der Codequalität und der technischen Verschuldung). Geistiges Eigentum kann ebenfalls ein Problem sein (es sei denn, der Code ist Open Source).
Wenn das Ziel darin besteht, zu testen, wie der Kandidat die vorhandene Codebasis aufrechterhalten kann, kann der Test auf einer kleinen (500-600 LOC) fiktiven Codebasis durchgeführt werden, die speziell für die Tests geschrieben wurde.
Es muss keine Anforderung sein, eine echte App oder Funktion zu entwickeln. Es kann sich um einen völlig nutzlosen Code handeln, der nur mit der Absicht geschrieben wurde, zu zeigen, dass Sie das Problem verstanden und einen eleganten Weg gefunden haben, es zu lösen.
Es muss nicht perfekt sein. Es gibt Fehler? Das ist gut. Notieren Sie sie für ein weiteres Interview mit dem Kandidaten. Dies kann eine hervorragende Gelegenheit sein, um zu sehen, wie der Kandidat in dieser Situation reagiert.
Dies muss nicht über RDC auf einer VM erfolgen, es sei denn, Sie haben selbst kein Visual Studio. Wenn das Ziel darin besteht, Ihre Codierungs- und Problemlösungsfähigkeiten zu erkennen, spielt es keine Rolle, wo Sie die Übung durchführen.
Es kommt nicht in Frage, dass der während dieses Tests geschriebene Code in die Versionskontrolle des Unternehmens gelangt. Warum sollten sie ihre Versionskontrolle mit etwas beschmutzen, das von einem Kandidaten geschrieben wurde?
Abschließend, wenn Sie aufgefordert werden, Dutzende von Stunden damit zu verbringen, Produktionscode zu schreiben, Fehler zu beheben und Ihre Arbeit der Versionskontrolle des Unternehmens zu überlassen:
Entweder verwenden sie Sie nur, um Funktionen kostenlos zu implementieren,
Oder sie verstehen wirklich nicht, wie man ein Interview macht.
Suchen Sie in beiden Fällen nach einem besseren Arbeitsplatz.
quelle
Ich werde keine lange Antwort schreiben, aber ich bin ernsthaft verwirrt, warum bringt niemand die Frage des Urheberrechts zur Sprache?
Soweit ich weiß, habe ich noch nie von einer Vereinbarung gehört, dass das Urheberrecht an Code, der während eines Entwicklertests geschrieben wurde, an die andere Partei übertragen wird. Wenn dies der Fall ist, können Sie sie tatsächlich wegen Urheberrechtsverletzung verklagen, und der dafür zuerkannte Schadenersatz kann recht nett sein, insbesondere in den USA aufgrund der Geschichten, die ich gehört habe. Und wenn sie sich einig werden wollen (schlagen Sie dies vor), können Sie eine exorbitante Gebühr für die Zuwiderhandlung verlangen (danach dürfen sie Ihre Arbeit grundsätzlich immer noch nicht verwenden und Sie könnten Ihre Arbeit an sie verkaufen, wenn sie immer noch interessiert wären ).
quelle
Personen mit mehr Berufserfahrung sind möglicherweise besser in der Lage, diese Frage zu beantworten, aber ich persönlich würde mich mit einem über 20-stündigen Entwicklertest nicht sehr wohl fühlen. Es hört sich so an, als würden sie das Interview nutzen, um ihre Arbeitsaufgaben zu erledigen.
Ich gehe davon aus, dass Sie keine rechtlichen Dokumente zum Besitz des Codes unterzeichnet haben. Also würde ich warten, bis sie den Code überprüft und akzeptiert oder abgelehnt haben. Wenn sie es dann akzeptieren würden, würde ich darum bitten, für die volle Zeit, 20+ Stunden, bezahlt zu werden. Ich bin mir nicht sicher, ob ich nur die sechs Stunden bezahlen würde, die ursprünglich vorgeschlagen wurden. Wenn dies in Produktion gehen soll, müssen sie den Besitz von Code begradigen.
Das Besprechen der Zahlung für den Code sollte Ihnen zumindest bei der Entscheidung helfen, ob Sie ein Angebot annehmen möchten. Ich würde ein Angebot nicht annehmen wollen, wenn es fair wäre, Sie nur für sechs Stunden zu bezahlen.
quelle
Als ich in der Lage war, Entwickler zu interviewen, waren diese Tests kurz und bestanden oder scheiterten, ohne dass Fehler behoben wurden, selbst wenn der Code einige kleinere Fehler aufwies. Das liegt daran, dass ich die Fähigkeiten des Kandidaten einschätzen wollte und keine produktionsbereite Software erhalten wollte.
Die in der Frage beschriebene Situation sieht so aus, als würde jemand versuchen, etwas Nützliches kostenlos (oder billig) zu bekommen.
quelle
Ich habe noch nie mehr als eine Stunde lang einen Entwicklertest durchgeführt, und das waren alles "Rätsel", ein Stück Arbeit, um zu sehen, ob ich Probleme lösen und ein bestimmtes Ziel innerhalb eines bestimmten Zeitlimits erreichen kann.
$ 50 (oder für mich £ 25-30) ist ein ziemlich schlechter Tagessatz, es ist, als würde man einen Klempner bitten, die Toilette im Austausch für ein Getränk zu reparieren.
Mein Rat ist, ohne Zweifel, über Ihre Erfahrungen zu bloggen und sich namentlich auf das Unternehmen zu beziehen, falls sie versuchen, eine ganze App mit dieser Technik zu erstellen (Leute googeln oft Firmen, bevor sie zum Interview gehen) und lassen es nicht zu es passiert wieder. Wenn sie das nächste Mal nach einer Fehlerbehebung fragen, geben Sie eine Beratungs-Tagesrate an (mindestens das Fünffache der angebotenen Rate) und weisen darauf hin, dass Entwickler nicht kostenlos arbeiten werden.
Narr zu sein ist leider ein Teil des Lebens, aber man muss sich nicht zurücklehnen und es akzeptieren.
quelle
Nur zum Vergleich: Das Interview für meinen aktuellen Job dauerte ungefähr eine Stunde und sprach darüber, was ich bisher gemacht habe und was das Unternehmen vorhat und wie ich dazu passen würde. Danach haben wir eine Woche lang zusammen an einem kleinen Projekt gearbeitet, das sie gelogen hatten um zu sehen, wie wir miteinander auskommen. Sie bezahlten mich als Freiberufler für den gleichen Betrag, den ich jetzt als Angestellter bekomme, so dass es nie einen vollen Tag unbezahlter Arbeit gab, geschweige denn 3 Tage.
Wenn der Code wirklich in der Produktion verwendet wird, sende ich ihnen die Rechnung für die 24 Stunden, die Sie ausgegeben haben, nicht Ihre Schuld, wenn ihre Schätzungen falsch sind. Vorausgesetzt, Sie haben nicht abschätzen lassen, wie lange es dauern wird.
quelle
Während Sie angeblich für (einen Teil) Ihrer Arbeit bezahlt werden , klingt dies nicht nach einem Testprojekt , sondern nach einem Betrug, um billige / kostenlose Arbeit aus Ihnen herauszuholen. Es kann sein , dass es ist beabsichtigt , ein Versuchsprojekt, nur nicht strukturiert oder sehr gut gelungen zu sein.
Aber Management, das so schlecht ist, dass es sich wie ein Betrug anhört, ist definitiv etwas, das Sie berücksichtigen sollten, wenn Sie sich entscheiden, ob Sie den Job annehmen oder nicht.
Ein richtiges Versuchsprojekt sollte dies verdeutlichen
Die Bedingungen sollten für Sie akzeptabel sein, unabhängig davon, ob Sie eingestellt werden. Wenn die Bedingungen nur dann akzeptabel sind, wenn sie mit einem Vollzeitjob verbunden sind, sind sie nicht wirklich akzeptabel.
quelle
Ich glaube nicht, dass sie das tatsächlich nutzen würden, um billige Arbeitskräfte zu bekommen.
Der Grund ist einfach. Nachdem Sie diese Tests geschrieben haben, müssen die Benutzer überprüfen, was Sie geschrieben haben. Ja, das Überprüfen von Code ist viel einfacher als das Schreiben des Codes selbst, erfordert jedoch noch viel Zeit.
Und danach brauchen sie wahrscheinlich Leute, die diese Tests warten, erklären usw.
Und ich kann mir einfach kein IT-Unternehmen vorstellen, das weniger als 100 US-Dollar sparen möchte, insbesondere Unternehmen in den USA. So läuft das Geschäft nie.
quelle
Ich bin ein großer Anhänger von Code-Tests für Entwickler, die für einen Job interviewen. Das klingt jedoch nach einem Codetest aus der Hölle ... Codetests sollten niemals Produktionscode beinhalten. Sie sollten einfach sein und angeben, dass keine der geleisteten Arbeiten vom Unternehmen verwendet wird.
Die Arbeit, die Sie geleistet haben, war eindeutig Produktionscode. Sie sollten für Ihre gesamte Zeit bezahlt werden - zumindest. Versuchen Sie, mit einem Anwalt zu sprechen, und prüfen Sie, ob es sich lohnt, sie zu verklagen. Viele Anwälte bieten kostenlose Erstberatungen an. Wenn es sich um Betrug handelte, und in diesem Fall sieht es so aus, hätten Sie das Recht, den Geldschaden zu vervierfachen, und Sie könnten darüber hinaus auch noch einen netten Strafschaden erhalten.
Indem Sie sie verklagen und gewinnen, machen Sie einige Schlagzeilen und entmutigen diese Praxis in Zukunft von anderen - was für alle Softwareentwickler von Vorteil ist, die nach einer neuen Position suchen.
quelle
Coding-Tests sind leider eine Tatsache. Das heißt, es stört mich, wenn ich gebeten werde, vier Stunden lang einen Codierungstest durchzuführen, um mein erstes Telefon-Screening zu erhalten. Es ist unfair, einen Kandidaten zu bitten, so viel zu investieren, wenn das Unternehmen so wenig in die Beziehung investiert hat.
Ich bin ein leitender Entwickler und kann den Codierungstest bestehen. Aber ich werde nicht viel Zeit damit verschwenden, es sei denn, das Unternehmen hat ein persönliches Interesse an mir gezeigt. Im Allgemeinen fülle ich keine Bewerbung bei einem Unternehmen mit einem großen, schlecht geschriebenen Online-Bewerbungsformular aus, in dem ich aufgefordert werde, meinen Lebenslauf erneut einzugeben, damit der schlecht geschriebene Roboter die Keyword-Suche verfälschen kann. Ich bin im Allgemeinen nicht damit einverstanden, einen Codierungstest durchzuführen, es sei denn, er ist kurz oder sie sehen ihn live und sprechen mit mir.
Auch wenn sie Ihren Code nicht in die Produktion einbinden, ist ein Unternehmen, das möchte, dass Sie eine ganze Menge Zeit mit dem Tippen verbringen, bevor Sie herausfinden, ob Sie überhaupt zu Ihnen passen, ein Unternehmen, das Sie gerne ausnutzen. Sie signalisieren, was sie wollen, dass ihre Beziehung ist; Du bist der Code-Affe. Sie geben den Ton an. Und ihr Interviewprozess ist darauf ausgelegt, Menschen zu finden, die mit dieser Beziehung vertraut sind.
Sei kein Code-Affe. Weggehen.
quelle