2017-07-11 16:05:54 +0000 2017-07-11 16:05:54 +0000
205
205

Wie gehe ich mit dem unprofessionellen Verhalten von Praktikanten um?

Ich bin Software-Entwickler in einem kleinen Unternehmen (ein paar Dutzend Mitarbeiter). Wir haben ein Sommerpraktikum im Gange. Die Praktikanten sind Hochschulstudenten ohne Berufserfahrung und mit eher grundlegenden Kenntnissen der Programmiersprache. (Ich war an der Auswahl der Praktikanten nicht beteiligt). Einige der Praktikanten werden in Zukunft aufgrund ihrer Leistung im Unternehmen eingestellt.

Die Praktikanten entwickeln eine einfache Anwendung (nicht für das Unternehmen, keinen Produktionscode), nur um einige Grundprinzipien kennen zu lernen und sich gegenseitig kennen zu lernen, bevor sie sich komplexeren Dingen zuwenden.

Ich helfe ihnen bei der Entwicklung auf täglicher Basis (schnelle Besprechungen, um Probleme zu lösen, die sie alleine nicht lösen können) und bei der Überprüfung des Codes. Eines der Hauptprobleme, das sie haben, ist, dass sie sich nicht an Namenskonventionen halten und schlechte und kurze Namen für Methoden (wie convert) schaffen. Natürlich habe ich ihnen erklärt, dass eine korrekte Benennung sehr wichtig ist, dass sie sich nicht scheuen sollten, längere, beschreibende Methodennamen zu verwenden (wie convertGallonsToMilliliters). Unglücklicherweise haben sich einige von ihnen (und ich weiß wer, denn sie benutzen Versionskontrolle) anscheinend entschieden, etwas Spaß zu haben (oder mich zu verspotten) und fingen an, dumme Methodennamen wie convertToMillilitersBecauseIAmUsingSuchCleanCode zu schaffen - nicht ein einziges Vorkommnis, sondern einige wenige.

Wie sollte ich darauf reagieren? Ich weiß, dass es sich nicht um Produktionscode handelt, aber ich verbringe viel Zeit damit, ihn durchzusehen, und ich tue mein Bestes - um den Praktikanten beim Lernen zu helfen und sie dazu zu bringen, die besten Methoden aufzugreifen, wenn es um sauberen Code geht.

Sollte ich mit

reagieren

  • ihn weglachen (“Ja, es ist lustig, aber bitte entfernen Sie ihn”)
  • nur höflich darum bitten, ihn zu entfernen
  • sagen, dass ich es nicht mag, wenn jemand meine Zeit verschwendet, und dass er die Codeüberprüfung ernster nehmen sollte

Ich weiß, dass es wahrscheinlich keine so große Sache ist, aber es ist mein erstes Mal, dass ich den Praktikanten helfe, und ich würde gerne wissen, wie man mit einer solchen Situation richtig umgeht. Dennoch werden ihre Leistungen während des Praktikums ihre Chancen auf eine Einstellung beeinflussen, und Situationen wie diese können später eine Rolle spielen. Oder ich sollte ihnen etwas in dieser Richtung sagen, damit sie motivierter sind, tatsächlich etwas zu lernen?


EDIT: Vielen Dank für Ihre großartigen Antworten. Ich habe das Thema mit meinem Vorgesetzten besprochen und mit den Praktikanten gesprochen. Ich habe den Namen der Methode an die Tafel geschrieben und gefragt, ob sie ihn für einen guten Namen halten. Ich besprach mit ihnen auch kurz den Zweck von Code-Reviews. Ich sagte ihnen, dass wir in realen Projekten externe Firmen haben, die Code-Review-Audits durchführen - diese Art von Witz könnte sie später wirklich in Schwierigkeiten bringen. Es ist also eigentlich besser für sie, diese Lektion während des Praktikums zu lernen.

Nachdem wir uns unterhalten hatten, gaben sie zu, dass sie einen solchen Code nicht festlegen sollten. Sie sagten mir auch, dass sie für die Zeit, die ich für die Überprüfung ihres Codes aufgewendet habe, und für meine Hilfe dankbar seien. Aber das Beste daran ist, dass sich die Qualität ihrer Arbeit seither wirklich verbessert hat. Tatsächlich hat derjenige, der den Witz begangen hat, angefangen, den besten Code in der Gruppe zu liefern - ich sehe ihn (und auch andere Praktikanten) meine Notizen aus der Code-Review jetzt viel ernster nehmen.

Antworten (21)

277
277
277
2017-07-11 16:13:04 +0000

Ich glaube nicht, dass es der richtige Ansatz ist, sich darüber lustig zu machen. Sie müssen lernen, dass sie nicht mehr in der Schule sind. Abgesehen davon glaube ich auch nicht, dass Sie es andersherum zu weit treiben sollten.

Ich würde empfehlen, dass Sie fest zu ihm/ihr stehen und etwas sagen mit dem Effekt:

Der Grund, warum wir die Namenskonventionen durchgegangen sind, ist, dass sie sehr wichtig sind. Dieser Kodex muss auch in Zukunft aufrechterhalten werden können. Viele Leute hier haben hart gearbeitet, um dahin zu kommen, wo sie jetzt sind, und sie schätzen diese Art von Witzen vielleicht nicht. Bitte verwenden Sie diese Art von Namen in Zukunft nicht mehr, da dies dazu führen kann, dass man Ihre Professionalität in Frage stellt.

109
109
109
2017-07-11 17:06:08 +0000

Zunächst einmal scheint dies ein Witz zu sein, der in einen Code umgesetzt wurde, von dem sie wissen, dass er für nichts verwendet oder jemals wieder gelesen werden wird. Ich glaube, Sie lesen in diesem Vorfall viel zu viel hinein. Das Wichtigste ist, dass Sie ihnen von der Namenskonvention erzählt haben und sie Sie nicht ignoriert haben, sondern dass sie längere und beschreibendere Namen verwendet haben (wenn auch sarkastisch).

Nachdem ich dieses Video gesehen habe, kann ich sehen, dass sich die Arbeiter 3 Dinge wünschen:

  1. Autonomie
  2. Beherrschung
  3. Zweck

Was Sie von ihnen verlangen, ist nicht autonom, ist für einige von ihnen wahrscheinlich von trivialer Schwierigkeit und dient in ihren Augen keinem Zweck.

Legen Sie die Aufgabe fest, und die Arbeiter werden folgen.

Einige Beispiele:

  1. hier ist dieses Projekt, arbeiten Sie zusammen und lassen Sie es von _____ erledigen, lassen Sie es mich wissen, wenn Sie nicht weiterkommen.

  2. Ich weiß, das scheint nicht wichtig zu sein, aber um Ihre Fähigkeiten einzuschätzen und Ihnen eine Arbeit zuzuweisen, von der wir glauben, dass sie Ihnen helfen wird, zu wachsen, brauchen wir Sie, um diese Aufgabe zu erledigen.

46
46
46
2017-07-11 21:49:11 +0000

TL;DR : Ich lehne den Methodennamen ab, weil er (meiner Meinung nach!) eine Verachtung für den Chef und/oder die “Regeln” (hier: Stilrichtlinien) zum Ausdruck bringt. Am Arbeitsplatz erwarte ich, dass man sich an die Regel “liebe es, ändere es oder verlasse es” hält. In diesem Fall sollte der Praktikant, der der Meinung zu sein scheint, dass die Richtlinie unnötig ist, sie entweder trotzdem einfach akzeptieren; oder die Diskussion darüber weiterführen; oder aufhören zu tun, was er tut. Nicht in der Äquivalenz eines Schmierens auf der Toilette. Gegen einen wirklich lustigen, kreativen Methodennamen hätte ich überhaupt nichts einzuwenden gehabt. Wenn Sie (der OP) den Methodennamen einfach nur lustig und nicht “schlecht” finden wie ich, dann ignorieren Sie diese Antwort bitte.


Als Hintergrund habe ich in der Vergangenheit einige hochintelligente und (selbst-)motivierte Praktikanten betreut, und es kam nie ein einziges Mal die Frage auf, ob sie sich professionell verhalten würden oder nicht. Albernheiten auf Schulniveau an einen Arbeitsplatz als Praktikant zu bringen, ist so weit außerhalb des Akzeptablen, dass ich vorschlagen würde, nicht herumzublödeln. In Ihrem eigenen Interesse und vor allem in ihrem eigenen Interesse.

Ich würde gerne wissen, wie man mit einer solchen Situation richtig umgeht.

Vergessen Sie zunächst einmal die Kodierungskonventionen. Das Thema hat nichts mit Computern oder Programmierung zu tun.

  • Lügen Sie nicht. Nehmen Sie kein Blatt vor den Mund, lachen Sie nicht darüber, denn es ist wirklich nicht zum Lachen.
  • Werden Sie nicht persönlich. Es geht nicht um Sie das OP, noch um Ihre Beziehung zu ihnen. Es geht nur und ausschließlich um ihr Verhalten.
  • Erklären Sie die Dinge, wie sie sind. Sie können dem Täter auf jeden Fall sagen, dass Sie irgendwie verstehen, wie er auf die Idee gekommen ist, das zu tun, was er getan hat, und dass Sie nicht persönlich wütend auf ihn sind oder was auch immer (halten Sie Emotionen fern), sondern dass Sie das Praktikum als ein Screening betrachten, wen Sie später an Bord nehmen sollen.

Wenn Sie irgendwelche Emotionen darüber vermitteln wollen, halten Sie sich von Ärger fern. Sie können leichte Traurigkeit zeigen (und ehrlich gesagt wäre das genau das, was ich tatsächlich empfinden würde) und ihnen zeigen, dass Sie ziemlich enttäuscht waren.

Dennoch wird ihre Leistung während des Praktikums ihre Chancen auf eine Einstellung beeinflussen, und Situationen wie diese können später eine Rolle spielen.

Absolut! Fuzzeln Sie nicht mit “kann später eine Rolle spielen”. Ein Verhalten wie dieses kann, sollte und wird ihre Chance, nach dem Praktikum ein Angebot zu erhalten, gleich Null machen. Das können Sie sagen, wie auch immer Sie normalerweise mit ihnen sprechen, klar und deutlich.

Versuchen Sie, die Ursache zu finden. Wenn Sie herausfinden, dass entweder…

  • …sie gegen ihren freien Willen hier sind (vielleicht haben ihre Eltern oder ihre Schule oder was auch immer sie dazu gebracht, ein Praktikum zu wählen, und sie haben zufällig Ihre Firma gewählt)…
  • …sie überhaupt nicht an Softwareentwicklung im “Business”-Stil interessiert sind…

…dann wäre das Angebot, das Praktikum abzubrechen, nicht das Schlimmste, was Sie tun könnten. Das Problem ist nicht, dass Ihre Zeit verschwendet wird (Sie hatten ohnehin viel von Ihrer Zeit für die Betreuung der Praktikanten eingeplant, sie haben es für Sie nicht wirklich schlimmer gemacht), das Problem ist, dass ihre Zeit verschwendet wird…

Oder ich sollte ihnen etwas in dieser Richtung sagen, damit sie motivierter sind, tatsächlich etwas zu lernen…

Ich würde scherzhaft sagen: “Jeder Mensch kann lernen, aber kein Mensch kann gelehrt werden”. Ich denke, Sie werden es sehr schwer finden, diese Person zu motivieren, etwas über die Nützlichkeit von Kodierungskonventionen zu lernen, da sie bereits gezeigt hat, dass sie daran kein Interesse hat. Sie können diejenigen lehren, die daran interessiert sind, was Sie zu sagen haben; aber wenn jemand desinteressiert ist, können Sie eigentlich gar nichts tun.

Wenn Sie dieser Person tatsächlich wirklich helfen wollen, “das Licht zu sehen”, dann bitten Sie sie, um ihrer selbst willen mitzuspielen, vielleicht lernt sie später zu schätzen, was Sie anbieten können. Praktika sind ein Austausch der begrenzten Dienstleistungen, die sie anbieten können, gegen die Erfahrungen, die sie bei der Arbeit an einem realen Arbeitsplatz gemacht haben. Wenn sie nicht daran interessiert sind, sich die Erfahrung anzueignen, dann hat es wirklich keinen Sinn. Vermutlich ist Ihr Unternehmen nicht darauf angewiesen, ihre “Manpower” für ein reales Projekt zu haben.

33
33
33
2017-07-11 16:50:40 +0000

Wir alle hassen es, das zu tun, aber manchmal muss man Probleme einfach mit Autorität lösen. Rufen Sie die Praktikanten zu einem Treffen und fragen Sie, warum die Namenskonventionen nicht befolgt wurden.

Ich habe die Namenskonventionen, die bei unserem letzten Treffen zu befolgen sind, erklärt. Ich stieß auf eine Reihe von Fällen, in denen die Namenskonvention nicht eingehalten wurde. Zum Beispiel, convertToMillilitersBecauseIAmUsingSuchCleanCode. Könnten Sie bitte erklären, warum dieser Name gewählt wurde?

Ihre “Antwort” ist irrelevant, dies sollte als “erste Warnung” genügen, dass es in einem professionellen Umfeld nicht akzeptabel ist, gegen die Anweisungen ihres Vorgesetzten zu verstoßen (was Sie vermutlich sind) und Witze auf seine Kosten zu machen. Das passt sogar gut zu einem Ziel des Praktikums, nämlich den Studierenden zu zeigen, wie man in einem professionellen Umfeld arbeitet.

Wenn sie mit ihrem kindischen Verhalten weitermachen, dann, denke ich, sind Sie zu folgendem Schluss gekommen:

Einige der Praktikanten werden in Zukunft aufgrund ihrer Leistung im Unternehmen eingestellt.

25
25
25
2017-07-11 19:30:45 +0000

Oh, ein Haufen Irrer, was?

Nehmen Sie einen funktionierenden Code und tun Sie etwas, um ihn absichtlich zu brechen. Dann lassen Sie ihn durch einen Obfuscator laufen, der alle Klassen-, Variablen- und Methodennamen in Dinge wie “a____1318798_” und “xy23_7a963” ändert; oder noch schlimmer, Variablennamen mit vielen Buchstaben O, Buchstaben I, Nummer 0 und Nummer 1 Zeichen darin. Machen Sie es sich zu ihrer Aufgabe, zu dokumentieren, was der Code tut, und beheben Sie es.

Das wird das Herumalbern kurieren.

22
22
22
2017-07-11 17:48:49 +0000

Ich weiß, dass es wahrscheinlich keine so große Sache ist, aber es ist mein erstes Mal, dass ich den Praktikanten helfe, und ich würde gerne wissen, wie man mit einer solchen Situation richtig umgeht. Dennoch werden ihre Leistungen während des Praktikums ihre Chancen auf eine Einstellung beeinflussen, und Situationen wie diese können später eine Rolle spielen. Oder ich sollte ihnen etwas in dieser Richtung sagen, damit sie motivierter sind, tatsächlich etwas zu lernen…

Wenn Sie während der Code-Reviews auf solche Dummheiten stoßen, lachen Sie, stoppen Sie die Code-Reviews und sagen Sie ihnen, sie sollen wiederkommen, sobald sie den Humor entfernt haben…

Ich gehe davon aus, dass sie nicht dumm sind und bereits wissen, dass der zu lange Name unangebracht ist, auch wenn sie ein Lächeln daraus ziehen. Wenn nicht, erklären Sie einmal, warum.

Hoffentlich verfolgen Sie ihre Leistung und können feststellen, wie oft das passiert.

17
17
17
2017-07-11 21:42:39 +0000

Ich würde mit jedem von ihnen ein persönliches Gespräch führen, unter vier Augen, in einem offenen und ernsten, aber nicht strengen Ton, etwa so:

“Praktikant, ich habe den Namen Ihrer Scherzmethode gesehen. Ich verstehe, warum Sie es getan haben, aber ich selbst fand es nicht so lustig. Da fällt mir ein, Sie zu fragen: Was wollen Sie hier tun? Was möchten Sie erreichen?”

Wenn der Praktikant sagt, er sei nur da, um rumzualbern, dann sprechen Sie mit der Geschäftsleitung, um sein Praktikum zu beenden. Sie verschwenden Ihre Zeit.

Wenn er sagt, er sei nur da, um zu lernen, dann sagen Sie so etwas wie:

“Mir ist klar, dass es schwer sein kann, etwas ernst zu nehmen, von dem Sie wissen, dass es nicht in der Produktion eingesetzt wird. Aber bitte begreifen Sie, dass Sie sich nicht nur Ihre Zeit nehmen, sondern auch meine Zeit. Das Praktikum, das Ihnen das Unternehmen zur Verfügung gestellt hat, ist im Wesentlichen eine Art Vorstellungsgespräch. Nur die Hoffnung, gute Kandidaten zu finden, hält uns davon ab, dass es sich um eine reine Wohltätigkeitsveranstaltung handelt. Es ist also meine Zeit wert, aber nur, wenn Sie es ernst meinen.”

“Wenn Sie es nicht ernst nehmen und so arbeiten können, als würden Sie wichtige Produktionstexte schreiben, wie können wir Sie dann richtig einschätzen und entscheiden, ob wir Ihnen eine Stelle anbieten sollen? Und selbst wenn wir Ihnen keinen Job anbieten, wenn Sie es immer noch nicht ernst nehmen, wie wollen Sie sich dann diese Fähigkeiten aneignen und unter der wertvollen Leitung von jemandem üben können, der mehr Erfahrung hat als Sie?”

“Wenn ich Sie wäre, würde ich mein Bestes tun, dem Beispiel der Leute zu folgen, die Sie führen und die, in gewisser Weise wohltätig, unprofitable Zeit aus ihrer Arbeit herausnehmen, um in Sie zu investieren. Bedenken Sie, dass Sie von diesem Praktikum profitieren werden, ob wir Sie einstellen oder nicht! Ich würde es persönlich begrüßen, wenn Sie dies etwas ernster nehmen würden. Tun Sie es für sich selbst! Wenn Sie es nicht für sich selbst tun wollen, dann tun Sie es aus Respekt oder einfach nur aus Dankbarkeit für die Zeit, die ich von meiner normalen produktiven Arbeit weggenommen habe, um in Sie und Ihre Zukunft zu investieren”

Es ist wahrscheinlich angebracht, das Verhalten an sich und den Grund, warum Sie eine etwas große Sache daraus machen, etwas direkt anzusprechen. Sie könnten so etwas in Erwägung ziehen wie:

“Wozu auch immer es gut sein mag, diese Art von Handlung wird in der Unternehmenswelt als Respektlosigkeit oder sogar als Spott angesehen. Ich bin sicher, dass Sie es nicht so gemeint haben [auch wenn Sie es nicht glauben, sagen Sie es], aber bitte folgen Sie in Zukunft einfach meinen Anweisungen, ohne abfällige Dinge in den Code zu schreiben.”

Das “Aus” des Praktikanten mit den Worten “Oh ja, ich wollte nicht respektlos sein” lässt ihn sein Gesicht wahren und die Beziehung so schmerzlos wie möglich reparieren. Es ist nicht nötig, ihm ein Geständnis zu entlocken, dass er es respektlos gemeint hat, oder eine riesige Entschuldigung einzufordern. Es geht hier nicht um ein Power-Over, sondern um ein erfolgreiches Praktikum.

Wenn nach all dem das negative Verhalten anhält, können Sie es offensiver angehen. Es gibt keinen Grund, warum Sie einem Praktikanten kein Leistungsziel vorgeben können, wie Sie es bei einem problematischen Mitarbeiter tun würden, oder keine andere Strategie anwenden können, die Sie bei einem normalen Mitarbeiter anwenden würden. Aber denken Sie daran, dass die Praktikanten KEINE Erfahrung in der Arbeitswelt haben und Sie ihnen ein oder zwei Pausen geben sollten, während Sie sie sanft, aber bestimmt an die Standards der professionellen Arbeitswelt gewöhnen.

12
12
12
2017-07-11 18:52:55 +0000

Die fraglichen Praktikanten verschwenden Ihre Zeit und Ihre Geduld. Ihre Zeit und Geduld sind teure und begrenzte Ressourcen für das Unternehmen und die Praktikanten, die von der Investition des Unternehmens in sie profitieren, eine Investition, die durch die Ressourcen des Unternehmens begrenzt ist.

Ihre Bereitschaft, unnötig Unternehmensressourcen zu verschwenden, ist ein relevanter Teil ihrer Leistungsbewertung und kann zu einer vorzeitigen Beendigung ihres Praktikums führen, um Unternehmensressourcen nur für diejenigen Praktikanten zu verwenden, die tatsächlich daran interessiert sind zu lernen, wie man ein wertvoller, verantwortungsbewusster und zuverlässiger Teil des Arbeitsplatzes ist, dem sowohl Aufgaben als auch Anweisungen anvertraut werden können.

Ich würde dies allen Praktikanten mitteilen, indem ich einen Beispielcode zeige, seinen Autor nicht erwähne, nicht mehr als 2 Minuten darauf verwende und, falls der Code später repariert wird und sich ähnliche Vorfälle nicht wiederholen, ihn nicht noch einmal erwähne.

Wenn der Warnschuss unbeachtet bleibt, ist der nächste Schritt ein offenes Gespräch nur mit dem betreffenden Praktikanten und möglicherweise einem Vorgesetzten von Ihnen (stellen Sie jedoch sicher, dass er in Ihrem Boot sitzt). Dann müssen Sie entscheiden, ob Sie es den anderen Praktikanten schulden, denjenigen zu entfernen, der ihre Chancen auf ein erfolgreiches Praktikum sabotiert.

9
9
9
2017-07-11 17:58:26 +0000

Das klingt, als gäbe es hier zwei Hauptthemen: 1) Sie sind respektlos, und 2) der Name der Funktion ist immer noch scheiße, auch wenn er jetzt länger ist.

Sie wegen Scherzen zu tadeln, wird sie wahrscheinlich nicht dazu bringen, Ihre Autorität mehr zu respektieren, also würde ich mich auf das Thema konzentrieren, als ob es irgendeine andere schlecht benannte Funktion wäre. Ich würde mich nicht unbedingt dumm stellen und so tun, als wüsste ich nicht, dass es ein Witz ist, aber ich würde sie fragen, warum sie den Namen gewählt haben, den sie gewählt haben:

“Es scheint, dass es einige überflüssige Wörter in diesem Funktionsnamen gibt, die nicht helfen zu erklären, was die Funktion tut.”

Auf diese Weise ist es eine Lerngelegenheit für sie, was einen guten Funktionsnamen ausmacht, und Sie konfrontieren sie nicht direkt damit. Als zusätzlichen Bonus können sie gestehen, dass sie nur herumgealbert haben, und sich vielleicht schämen, dass sie die Zeit aller verschwendet haben.

5
5
5
2017-07-11 20:35:15 +0000

** Wenn Sie die Leute daran erinnern müssen, dass Sie das Sagen haben, dann waren Sie es nie.**

Es wäre besser, einen Code-Walkthrough durchzuführen, bei dem der Entwickler den Verantwortlichen seinen Code erklären muss.

  1. Damit wird die persönliche Verantwortung für das Ergebnis des Projekts eingeimpft

  2. Bietet sofortiges professionelles Feedback

  3. Geben Sie dem Entwickler ein Gefühl der Dringlichkeit für die Fertigstellung des Projekts

Nutzen Sie Ihre Führungsqualitäten als Teil des Teams, um die Standards Ihrer Organisation aufrechtzuerhalten. Helfen Sie dann den jüngeren Mitarbeitern, diese Standards zu erfüllen, und vermeiden Sie die Peinlichkeit, minderwertige Arbeit zu präsentieren.

3
3
3
2017-07-12 14:49:30 +0000

Sagen Sie dem Täter (persönlich oder per E-Mail) einfach, dass das Praktikum kaum ein geeigneter Ort für solche Scherze ist und dass er es ernst nehmen muss, wenn er eine Karriere starten will.

Bitten Sie ihn, den Code zu reparieren, oder (wenn Sie etwas Autorität zeigen wollen) rollen Sie seine Änderungen in der Versionskontrolle einfach zurück.

3
3
3
2017-07-11 17:57:48 +0000

Offensichtlich müssen Sie sie dazu bringen, aufzuhören, aber ihnen einfach nur zu sagen, dass sie aufhören sollen, zeigt vielleicht nicht, warum.

Ich weiß, dass die 80-Zeichen-pro-Zeile-Richtlinie keine feste Regel ist, auf keinen Fall, aber zu versuchen, sich daran zu halten, ist eine gute Praxis, also ist es ziemlich dumm, einen 48-Zeichen-Variablennamen zu haben.

Ich würde vorschlagen, ihnen zu sagen, dass sie versuchen sollen, diese Richtlinie von jetzt an zu befolgen, aber erlauben Sie ihnen auch nicht, die Variablennamen zu ändern, die sie gewählt haben.

Sie werden versuchen, ihnen eine neue Übung in den Kopf zu hämmern (vorausgesetzt, sie halten die Zeilen nicht bereits kurz), Praktikanten, die nicht verstehen, warum lange Variablennamen schlecht sind, werden es bald herausfinden, und die “schlauen” Praktikanten werden bald entdecken, dass sie nicht so schlau sind, wie sie dachten.

Für erfahrenere Programmierer ist es offensichtlich, warum convertToMillilitersBecauseIAmUsingSuchCleanCode besonders schlecht ist, aber anstatt ihnen zu sagen “das ist schlecht”, zwingen Sie sie dazu, herauszufinden, warum. Ich wette, Sie werden viel weniger wortreiche Namen finden, und mit etwas Glück auch weniger zukünftige Versuche, schnippisch zu sein.

3
3
3
2017-07-12 06:17:32 +0000

Dies muss nicht unbedingt “Eine Größe passt für alle” sein. Alle Größen passen für einige:

Jeder der vorgeschlagenen Ansätze kann großartig funktionieren und je nach den Umständen der beste Ansatz sein. Hier ist meine Antwort auf jeden der Ansätze, nach denen ich gefragt wurde:

Sollte ich mit

  • lachend darauf reagieren (“Ja, es ist lustig, aber bitte entfernen Sie es”)

Dies ist eine großartige Idee, wenn: Sie haben ein ausgezeichnetes Verhältnis zu diesen Kollegen, die sich mit

gut angefreundet haben - Sie bitten nur höflich darum, es zu entfernen

Dies ist eine großartige Idee, wenn: Sie direkt sein wollen, damit es keine Missverständnisse gibt

  • und sagen, dass ich es nicht mag, wenn jemand meine Zeit verschwendet und die Überprüfung des Codes ernster nehmen sollte

Dies ist eine großartige Idee, wenn: Sie Ärger kommunizieren wollen und an einem autoritären Ansatz festhalten wollen

(Ich bin geneigt zu glauben, dass Sie all diese Ansätze in einer nicht-offensiven, höflichen, lustigen Art und Weise kombinieren könnten, die tatsächlich ein bisschen Ärger vermittelt. “So etwas muss aufhören, weil es mich einfach [Scheinschrei] ” dazu bringt, könnte eine humorvolle Art sein, das zu erreichen.)

Mir persönlich gefällt die freundliche Methode. Ich glaube an diese Art, Dinge zu tun. Ich gebe jedoch bereitwillig zu, dass es Zeiten gibt, in denen solche Ansätze weniger effektiv sind.

Aber was ist das Beste? Ihre Grundfrage lautet: “Wie soll ich darauf reagieren? "Ich muss etwas erreichen. Sollte ich ein Einrad, einen Pogostick, ein Fahrrad oder einen Bus benutzen?”

Jeder dieser Transportansätze ist vielleicht der beste. Ähnlich verhält es sich bei der Beantwortung der Frage, wie Sie reagieren sollten: Ihre beste Reaktion ist vielleicht nicht meine beste Reaktion.

Dies ist ein Hauptgrund dafür, dass, auch wenn die unterschiedlichen Antworten scheinbar übereinstimmen, dass das Verhalten der Praktikanten nicht für die Produktionsergebnisse geeignet ist, die unterschiedlichen Antworten unterschiedliche Ansätze zu begünstigen scheinen. Wie bereits erwähnt, haben wir vielleicht keinen einzigen “Einheitsgrößen-Ansatz”, der universell für alle am besten funktioniert.

Wir haben es hier mit Menschen zu tun, daher funktioniert das, was in einigen Szenarien am besten funktioniert, in anderen Szenarien vielleicht nicht so gut. Einer der Schlüsselfaktoren sind Sie. Können Sie streng sein, ohne Brücken niederzubrennen? Können Sie sich mit ihnen anfreunden, indem Sie leichtherzig sind und dennoch genügend Nachgiebigkeit und Inspiration gewährleisten, um die gewünschten Ergebnisse zu erzielen? Was für mich am besten funktioniert, könnte für Sie schrecklich schrecklich funktionieren. Letztlich müssen Sie sich ein Urteil darüber bilden, welchen dieser Ansätze Sie wählen sollten.

Flexible Lehre: Verpflichten Sie sich nicht auf nur einen Ansatz.

Wählen Sie einfach die Methode, mit der Sie sich am wohlsten fühlen. Achten Sie darauf, dass Sie es nicht übertreiben (schlechter/offensiver Humor oder die Schaffung eines unangenehm bedrohlichen Umfelds in dem Bemühen, streng zu sein).

Ganz gleich, für welchen Ihrer ausgezeichneten Vorschläge Sie sich entscheiden, behalten Sie die Ergebnisse genau im Auge.

Es ist sehr gut möglich, dass Sie eine Ermessensentscheidung treffen, die nicht wie erhofft funktioniert. Solange Sie keine größeren Probleme verursacht haben, kann dies sehr gut verwertbar sein, wenn es positiv und schnell gehandhabt wird. Das ist ein Grund, warum Sie sich nicht allzu sehr darum bemühen sollten, die perfekteste Entscheidung zu treffen. Wenn die Dinge nicht gut laufen, kann sich Ihre Situation gut entwickeln. Menschen sind verschieden, und das Lernen kann unvorhersehbar sein, und es muss keine Schande sein, wenn ein erster Ansatz modifiziert werden muss. Solange Sie sich schnell erholen, kann das kein Problem sein.

Der Schlüssel ist, Änderungen vorzunehmen, sobald Sie unerwünschte Ergebnisse finden. Rechnen Sie damit, dass Sie sich schnell anpassen müssen. Wenn irgendein Ansatz nicht funktioniert, sollten Sie sehr bereit sein, den Ansatz schnell zu ändern oder ihn sogar ganz aus dem Fenster zu werfen. Wenn das, was Sie tun, nicht funktioniert, stellen Sie fest, ob Sie wahrscheinlich kurz vor einem Durchbruch stehen oder ob Sie etwas anderes ausprobieren müssen. (Feedback einzuholen wird bei dieser Entscheidung helfen.) Wenn Sie etwas anderes ausprobieren müssen, dann tun Sie es.

Solange Sie schnell handeln (bevor sich langfristige Gefühle wie Bitterkeit bemerkbar machen), können kleinere Unvollkommenheiten leicht als unbedeutend im Vergleich zu den positiven Ergebnissen, die Sie insgesamt erzielen, beiseite geschoben werden. (Vergewissern Sie sich nur, dass die Probleme unbedeutend sind, wenn die Dinge nicht perfekt laufen. Größere Fehler sind vielleicht etwas schwerer zu vergessen. )

Wenn Sie z.B. feststellen, dass sie anfangen, Sie zu hassen, die Umwelt zu fürchten usw., sollten Sie jedes Missverständnis ausräumen. Versichern Sie ihnen, dass Sie auf ihrer Seite stehen. Ermutigen Sie sie zu gewünschtem Verhalten usw.

2
2
2
2017-07-11 16:23:11 +0000

Vor zwei Jahren war ich in einer ähnlichen Position wie die Praktikanten in Ihrem Unternehmen. Ich kann mir ein Szenario vorstellen, in dem ich etwas Ähnliches getan hätte. Ich glaube, einige Praktikanten haben ein Problem mit Ihrer Autorität; sie sind pedantisch und\oder unprofessionell. Dies ist hauptsächlich auf den mangelnden Respekt meiner Generation gegenüber Älteren und Personen in höheren Positionen zurückzuführen. Ich würde folgende Methoden versuchen, um die Situation zu lösen:

  • Verdienen Sie sich den Respekt der Praktikanten, indem Sie den “Anführer”, “Alpha”, überlisten.

  • Verwenden Sie den pedantischen Funktionsnamen als Lektion für alle, optimale Länge des Funktionsnamens: Goldlöckchen-Zone.

  • Weisen Sie auf einen Fehler in der Funktion “convertToMillilitersBecauseIAmUsingSuchCleanCode” hin und schlagen Sie eine Umbenennung in etwas Angemessenes vor (/erniedrigend)

  • Nehmen Sie keine Notiz, ignorieren Sie den Funktionsnamen; konzentrieren Sie Ihre Zeit auf die Personen, die lernen wollen.

Ich würde die Namen der unprofessionellen Praktikanten als Vorsichtsmaßnahme notieren.

2
2
2
2017-07-13 12:57:23 +0000

Sollte ich reagieren, indem ich

  • lachend darauf reagiere (“Ja, es ist lustig, aber bitte entfernen Sie es”)
  • höflich darum bitte,
  • höflich darum bitte,
  • zu entfernen und zu sagen, dass ich es nicht mag, wenn jemand meine Zeit verschwendet und die Überprüfung des Codes ernster nehmen sollte

Wie wäre es mit “ *Verstehen, warum sie das getan haben? *

Wann immer jemand etwas tut, was Sie nicht erwarten oder wünschen, können Sie entweder darauf reagieren, um ihn dazu zu bringen, das zu tun, was Sie wollen, oder Sie können versuchen zu verstehen, warum er genau das getan hat.

Es könnte nützlich sein, zu verstehen, warum. Wenn sie von Natur aus verspielt sind, aber ihre Frustration über etwas nicht zum Ausdruck bringen können, dann kann man sie auf diese Weise kanalisieren. Wir sind uns alle einig, dass dies kein positiver Weg ist, um Frustration und Verspieltheit zu kanalisieren.

Ein alternativer Ansatz

Was ist also ein positiver Weg, Frustration und Verspieltheit zu kanalisieren? Ich habe in Firmen gearbeitet, in denen die Leute manchmal in 10 % der Fälle an Projekten arbeiteten, wie z.B. einen Mikrocontroller so zu programmieren, dass er ein Selfie mit einem dslr nimmt. Dabei hatten sie nicht nur freie Hand, sondern bekamen auch die Verantwortung übertragen, dies in ein lieferbares Produkt zu verwandeln. Es ging von einem eintägigen Hackathon zu Code-Beispielen, die jetzt auf der Website des Unternehmens veröffentlicht werden. Man kann dieses Beispiel zu einer Fernbedienung für Tiefseekameras machen, die mit einem Knopfdruck eingeschaltet werden kann.

Ich will damit sagen, dass Streiche wie dieser ein Hinweis auf ungenutztes Potenzial sein können. Wenn Sie Praktikanten wollen, die dem Standard entsprechen, den Sie in Ihrem Unternehmen haben, ist dieses Potenzial nicht für Sie, und in diesem Fall sollten Sie in Erwägung ziehen, sie gehen zu lassen. Wenn Sie jedoch sehen, wie wichtig es ist, die Dinge aufzurütteln, bringen Sie diese Witzbolde dazu, mit ihren Streichen etwas Nützliches zu schaffen. Letztendlich liegt es an Ihnen. Wer sollen diese Praktikanten sein?

2
2
2
2017-07-13 15:06:47 +0000

Als professioneller Softwareentwickler seit fast 30 Jahren, würde ich sagen, dass die hoch bewerteten Antworten meistens richtig sind.

Als professioneller Softwareentwickler seit fast 30 Jahren werde ich jedoch sagen, dass Kodierungsrichtlinien fast immer über-präskriptiv sind. Noch schlimmer ist, dass dies oft von Leuten aufgegriffen wird, die mehr mit ihrer Autoritah als mit der Produktion von lesbarem Code beschäftigt sind. Diese Art von passiv-aggressivem Verhalten von jungen Ingenieuren ist genau das, was man typischerweise sieht, wenn das passiert…

Alberne Dinge in Code-Kommentaren oder sogar in der Benennung von Identifikatoren unterzubringen, ist wirklich eine altehrwürdige Tradition unter Software-Entwicklern. Hier ist ein Beispiel für standard-induzierte Protestnamengebung aus meiner eigenen Jugendzeit (die 48 Stimmen erhielt).

Wenn es hier ein Problem gibt, dann sollte es sein, dass es in Ihrer Umgebung Probleme mit der Lesbarkeit/Wartung des Quellcodes gibt. Ich behaupte nicht, dass die wichtigsten Antworten hier falsch sind. Sie sind nicht falsch. Aber wenn Sie diese Art von Verhalten bei mehreren Junior-Ingenieuren sehen, dann sollten Sie nach der Säuberung der Leichen wirklich untersuchen, ob es einen zugrunde liegenden Grund geben könnte, warum Ihre Kanarienvögel immer wieder sterben.

Das Endziel muss die Codequalität sein. Kodierrichtlinien sollten einfach ihr Werkzeug sein, um ihnen dabei zu helfen, von Entwicklern für Entwickler gebaut zu werden, und nicht irgendeine Art autoritäres Programm, wie man Programme schreibt.

1
1
1
2017-07-14 20:41:26 +0000

Es klingt, als hätten Sie ein sehr gutes Beispiel, um ihnen zu zeigen, warum die Verwendung dieser Art von Kodierungskonvention selbst für kleine Projekte wie dieses unangemessen ist.

**Sie haben es gesehen.

Selbst wenn ihr Projekt nicht direkt von der Firma verwendet wird, soll es als eine Bewertung ihrer Fähigkeiten und zum Teil als Lernerfahrung für diese Praktikanten dienen, die ihren Weg in Ihre Firma finden wollen.

Ich würde nicht zu hart mit ihnen umgehen - schließlich ist dies ist nur ein Versuch für sie - aber ich möchte definitiv darauf hinweisen, dass solche Kodierungspraktiken sie in Zukunft in Schwierigkeiten bringen könnten, besonders wenn ihr nächster Chef nicht so geduldig mit ihnen ist wie Sie.

0
0
0
2017-07-13 00:40:21 +0000

Zunächst einmal glaube ich nicht, dass dies so schlecht ist. Sie haben einen Witz über ein Thema (Namenskonventionen) in den Code eingefügt, das sie wahrscheinlich nicht ganz verstehen. Das Einfügen einiger interner Witze in den Code ist nichts Neues. Sie könnten den Code auch als “internes Blatt” betrachten.

Ich stimme auch nicht der Ansicht zu, dass sie damit Ihre Zeit verschwenden. Wenn sie eine Zusage machen, nur um eine Methode umzubenennen, dann ja, sie verschwenden damit Ihre Zeit, und die Änderung sollte abgelehnt werden. Aber wenn sie eine neue Methode benötigten und einen schlechten Namen wählten, wäre die Zeit für eine Überprüfung bei beiden Namen ähnlich. Ich weiß nicht, ob Sie Pre-Commit oder Post-Commit überprüfen, aber wenn jemand Code genehmigt/zusammengeführt haben möchte, dann arbeitet er eigentlich gegen sich selbst, da er einfach Roundtrips hinzufügt, um den Code tatsächlich akzeptiert zu bekommen.

Es ist auch trivial für Sie, mit falschen Namen negativ zu bewerten, ohne wirklich darauf zu achten, was der Code tut. Das Problem ist, dass Sie sich über diese Namen verärgert fühlen.

Nun zur eigentlichen Frage, was zu tun ist, empfehle ich, darauf hinzuweisen, dass sie einige Probleme mit Namenskonventionen hatten, und sie zu bitten, die Arbeit der letzten Woche zu überprüfen, um zu sehen, ob sie Eigennamen verwendet haben, und zu überlegen, ob sie sie in ein paar Jahren leicht verstehen würden / ob sie neu in dieses Projekt gekommen sind. Lassen Sie sie einen kurzen Bericht über die Funktionen, die sie in dieser Woche hinzugefügt haben, verfassen und kurz begründen.

Im Idealfall wäre das etwa eine Zeile pro Funktion, z.B.

convertGalToml: Konvertiert Gallonen in Millionen Liter. Bei der Milliliter-Abkürzung wurde nicht die Kamelschreibweise verwendet, um nicht mit Megalitern verwechselt zu werden.

Es wird erwartet, dass sie beim Durchsehen des Codes neue Probleme bemerken oder sich einen besseren Namen ausdenken, z.B. convertGalToml in convertGal2ml umbenennen.

Ich vermute, dass Ihr Joker den Punkt kapiert und ihn stillschweigend umbenennt.

Der Punkt ist, Funktionsnamen sind Dokumentation. Obwohl es sich um ein eher technisches Publikum handelt als z.B. das Benutzerhandbuch, sollten sie sich wohl fühlen, ihre Wahl vor ihren Kollegen zu rechtfertigen.

0
0
0
2017-07-12 02:31:19 +0000

Mein Bauchgefühl sagt mir, dass die Praktikanten dies in gutem Glauben getan haben, weil sie mit Namen wie convert wirklich kein Problem sehen. Ich würde eine kleine Summe Geld darauf wetten, dass die sarkastischen Namen nicht aus dem Wunsch heraus entstanden sind, rebellisch zu sein, sondern aus Frustration darüber, dass sie nicht wissen, wie sie einen besseren Namen finden können, sondern nur einen längeren Namen. Und das - so ungefähr - ist das, was Sie ihnen gesagt haben, richtig? Kurz schlecht, lang gut.

Wenn Sie wollen, dass sich diese Personen verbessern, müssen Sie in der täglichen Besprechung einfach genau besprechen, warum convert ein schlechter Name und convertInchesToCentimeters ein besserer Name ist. Wenn Sie ein Beispiel aus Ihrer Erfahrung haben, dass eine schlechte Namenswahl Probleme verursacht, dann wird ihnen das helfen. Dieses “Warum” wird es ihnen ermöglichen, von nun an gute Namen zu wählen - egal, ob diese guten Namen lang oder kurz sind.

Lassen Sie sie auch wissen, dass es in Ordnung ist, Sie oder ihre Altersgenossen um Hilfe zu bitten oder sich mit ihnen in angemessenem Rahmen zu beraten, dass dies kein Test ist, bei dem jeder allein arbeiten muss, sondern eine Zusammenarbeit. (Ich hoffe, dass das stimmt!) Vielleicht können sie dann Fragen stellen und miteinander reden und Frustrationen frühzeitig aus dem Weg räumen, anstatt darauf zu warten, dass passiv-aggressives Zeug wie dieses bei der Codeüberprüfung auftaucht.

Nur wenn ein solches Verhalten anhält, würde ich es für notwendig erachten, zu erklären, ja, dies ist keine wirkliche Anwendung, aber diese Übung und die Stilrichtlinien sollten aus mehreren Gründen ernst genommen werden:

  • Es lohnt sich, meine Zeit mit Ihnen für diese Mühe zu verwenden, wenn ich an “echten” Bewerbungen arbeiten könnte, also geben Sie sich bitte auch Mühe
  • Diese Übung bereitet Sie darauf vor, an einem echten Projekt zu arbeiten, das seriös ist und bei dem Sie die Stilrichtlinien befolgen müssen
  • Diese Übung ermöglicht es uns, zu entscheiden, wer von Ihnen, wenn überhaupt, Stellenangebote auf die Zeit nach Beendigung Ihres Praktikums ausdehnen sollte

Obwohl nicht ganz falsch, denke ich, dass man ihnen Respektlosigkeit vorwerfen sollte, usw. an diesem Punkt wird das Verhalten wahrscheinlich zum Schweigen bringen, aber es wird ihnen auch nicht helfen zu verstehen, warum sie bessere Namen brauchen oder wie sie sich bessere Namen ausdenken können. Wenn Sie diesen Weg einschlagen, werden Sie vielleicht feststellen, dass sie sich einfach längere schlechte Namen einfallen lassen und Ihrem stählernen Blick ausweichen.

-3
-3
-3
2017-07-15 15:01:55 +0000

Sie sind nicht ihr Manager, es ist sogar egal, ob Sie sie interviewen oder nicht. Sie sind ein Ingenieur wie ich,

Damit Sie wissen, was zu tun ist, sprechen Sie mit Ihrem Vorgesetzten und schlagen Sie dann eine Code-Überprüfung vor. Dann raten Sie ihnen, solchen Code nicht über ein System wie code collaborator zu schreiben. Sie müssen ihnen nicht einmal eine E-Mail schicken oder mit ihnen interagieren oder diese Dinge persönlich nehmen. Führen Sie ein Benotungssystem ein, das auf dieser Code-Überprüfung basiert. Versuchen Sie nicht, sie zu kontrollieren oder ihr Manager zu sein, oder versuchen Sie nicht, die Leute zu managen. Das ist nicht Ihre Sache.

Sprechen Sie mit Ihrem Vorgesetzten und behalten Sie das Privileg, Commits nach einer Überprüfung abzulehnen oder zu genehmigen, für sich. Angenommen, jeder Praktikant hat anfangs 10 Punkte, und er/sie sollte durch Ihre Benotung 100 Punkte erhalten, und wenn er/sie wirklich Ihrem Team beitreten möchte, wird er/sie motiviert sein, dies zu erreichen. Um keine Punkte zu verlieren.

Wenn ich ein Praktikant war und unter Ihnen arbeite und Sie nur ein leitender Ingenieur sind, dann hasse selbst ich es, wenn Sie mein Personalmanagement machen. Es ist NICHT Ihr Job.

Es klingt für mich, als wären Sie zu weit gegangen und es ist außer Kontrolle geraten. Lernen Sie diese Lektion als Ingenieur. Sie sind ein Ingenieur, nicht ihr Manager, um Menschen zu managen.

-4
-4
-4
2017-07-15 01:10:02 +0000

Das Verhalten der Praktikanten mag zwar unprofessionell sein, aber es ist auch unprofessionell für das Management, nicht zu bedenken, dass sie sich irren könnten. Es liegt auf der Hand, dass convert in vielen Zusammenhängen zu kurz oder zu zweideutig ist, aber convertGallonsToMilliliters ist viel zu lang für einen Identifikationsnamen. Anstatt willkürlich und pauschal Anforderungen an die Benennung zu stellen, sollten Sie Ihre Praktikanten auffordern, zu rechtfertigen, wenn ein von ihnen gewählter Name wirklich mehrdeutig ist (was sie nicht tun können), und sich etwas Vernünftiges einfallen lassen, das die Lesbarkeit des Programms verbessert, anstatt es zu behindern.

Das kommt mir wirklich vor wie ein Fall des gängigen Musters “warum respektieren meine Untergebenen mich nicht”, bei dem es in Wirklichkeit darum geht, “was ist mit meiner eigenen Einstellung, es so zu gestalten, dass die Leute meine Position nicht respektieren?