it-swarm-eu.dev

Wie können Sie Ihrem Chef sagen, dass sein Programmierstil wirklich schlecht ist?

Ich bin Student und arbeite in meiner Freizeit für ein großes Unternehmen als Java Entwickler. Der Job ist gut, aber das Problem ist, mein Chef schreibt sehr seltsamen Code. Ich ziehe an Ich möchte mich nicht beschweren, aber einige Probleme sind meiner Meinung nach wirklich seltsam. Zum Beispiel:

  • er kennt keine Booleschen. Alle booleschen Bedingungen sind Strings mit dem Namen "YesOrNo" und dann in der Bedingung, die er verwendet, wenn (YesOrNo == "Yes")

  • es gibt viele sehr seltsame Zeichen in Methodennamen und Variablen wie é õ ô oder è

  • alle Schleifen sind Endlosschleifen im Stil von for (;;). Dann wird am Ende der Schleife die Bedingung getestet und wenn die Bedingungen erfüllt sind, Pause; wird genannt.

Ich weiß nicht, ob ich ihm sagen soll, dass ich denke, dass dies keine gute Praxis ist, da er mein Chef ist und entscheidet, wie und was zu tun ist. Andererseits sind einige seiner Beispiele wirklich sehr seltsam.

Irgendwelche Hinweise, wie man damit umgeht? Und ist das nur ich, der denkt, dass das ein schlechter Stil ist?

63

Bitten Sie ihn, Ihnen seinen Code zu erklären

Sagen Sie ihm, dass Sie X noch nie so programmiert gesehen haben, und fragen Sie ihn, warum er es so codiert. Zeigen Sie ihm, wie Sie es codieren, und erklären Sie, warum Sie es so machen (Best Practices, bessere Leistung, geringere Fehlerwahrscheinlichkeit, leichter zu lesen/zu warten für andere Programmierer usw.).

Bereiten Sie alle Ihre Argumente im Voraus vor und konzentrieren Sie sich darauf, warum Ihre Methode am besten ist, anstatt warum seine Methode am schlechtesten ist. Überprüfen Sie anschließend, ob er seine Methode gegenüber Ihrer noch unterstützt.

Wenn er offen für Verbesserungen ist, wird er wahrscheinlich seine Codierungsweise ändern. Wenn er immer noch lieber seinen Codierungsstil als Ihren verwendet, werden Sie seine Meinung wahrscheinlich nicht ändern.

78
Rachel

Fördern Sie die Verwendung automatisierter Tools zur statischen Analyse und Stilprüfung wie Linters und Bug Finder (in der von Ihnen verwendeten Sprache). Wenn jeder in der Firma anfängt, sie zu verwenden (z. B. werden sie vor dem Einchecken beauftragt), wird er nicht herausgegriffen.

Der Grund, warum ich dies vorschlage, ist folgender:

1) Leute nehmen es im Allgemeinen besser, von automatisierten Werkzeugen zu tadeln als ihre Kollegen oder Untergebenen.

2) Diese Tools decken viele Probleme ab, die als schlechter Stil angesehen werden können.

3) Sie könnten möglicherweise die Regeln hinter den Kulissen für seinen schlechten Stil über das hinaus anpassen, was in das Tool eingebaut ist. Erzwingen Sie beispielsweise einen bestimmten Variablenstil.

4) Einige Leute stellen fest, dass ihr Code nicht so gut ist und beginnen sogar mehr auf Dinge zu achten, die nicht von den Lintern abgedeckt werden.

Nicht wenige angesehene Unternehmen (wie mein eigener Arbeitgeber) erzwingen vor dem Check-in einen Flusencheck. Die Ansicht ist, dass schlechter Stil technische Schulden sind. Sie könnten immer das "Nun, wenn X und Y und Z es tun, ist es wahrscheinlich eine gute Idee" verwenden.

39
Uri

Ich denke du solltest ihm so etwas definitiv nicht gerade sagen . Solche Aussagen können leicht eine Abwehrreaktion in ihm hervorrufen, die mit ziemlicher Sicherheit jede Lernmöglichkeit für ihn ausschließt und sogar Probleme für Sie verursachen kann.

Suchen Sie stattdessen nach Möglichkeiten (und versuchen Sie sogar, diese zu schaffen), um beiläufig Codierungsstil- und Redewendungsprobleme zu diskutieren und ihm die "Best Practices" zu nennen, die Sie kennen. Natürlich müssen Sie zuerst sicherstellen, dass das, was Sie vorschlagen, wirklich eine weithin bekannte und akzeptierte Best Practice ist.

Versuchen Sie auch, die gleichen Probleme auch mit anderen Teammitgliedern zu besprechen. Es ist wichtig, den (gesprochenen oder unausgesprochenen) "Konsens" innerhalb des Teams in Bezug auf Codierungsstil und -qualität zu verstehen. (Wenn alle anderen sauberen und qualitativ hochwertigen Code schreiben, haben Sie einen ganz anderen Fall als wenn der Rest der Gruppe aus echten Programmierern besteht, die stolz FORTRAN-Programme in einer beliebigen Sprache schreiben.) Sie erzählen möglicherweise auch mehr über den historischen Hintergrund des Projekts und den Codierungsstil Ihres Chefs, der Ihnen hilft, Ihre Bemühungen besser auszurichten.

Eine andere Möglichkeit besteht darin, ihn zu bitten, Effective Java für Sie zu bestellen, da Sie der Meinung sind, dass Sie es brauchen, um ein besserer Programmierer zu werden. (Falls Sie es noch nicht gelesen haben, brauchen Sie es tatsächlich.) Dann können Sie mit ihm über die wunderbaren Lösungen und Praktiken in diesem Buch sprechen.

Wenn er offen ist, sich zu verbessern, wird er Ihre Vorschläge (und das Buch) aufgreifen. Wenn nicht, können Sie sich zurückziehen, ohne das Gesicht zu verlieren und Ihre Beziehung zu belasten.

24
Péter Török

Wenn Ihr Chef ein cooler Typ ist, fragen Sie ihn einfach: "Alter, WTF?"

21
gruszczy

In allen Fällen, in denen Sie denken, "meins ist besser", sagen Sie niemals jemandem, dass Sie das denken, zeigen Sie es ihm.

Ich wiederhole, SHOW, erzähle nicht.

Du weißt, dass es wahr ist, über Taten zu sagen, lauter, Worte ...

8
Jack Marchetti

Welche Position hat Ihr Chef genau inne? Ist er ein Entwickler, technischer Leiter? Wie viele andere Entwickler gibt es im Unternehmen? Verfügt das Unternehmen über Codierungsstandards und Codeüberprüfungen?

Es ist unwahrscheinlich, dass Ihr Chef seine (IMHO) schlechten Gewohnheiten ändert, aber Sie können möglicherweise eine Peer Group oder die Unternehmensstandards verwenden, um ihn zu beeinflussen. Wenn sein Code tut Standards folgt und die Peers alle gleich sind, sind Ihre Optionen begrenzt.

6
Qwerky

Hier ist meine Empfehlung:

  • Geben Sie Ihren Fall gut an.
  • Wenn Ihr Manager für Ihre Sichtweise nicht empfänglich ist * und Sie das Gefühl haben, dass Sie Recht haben, suchen Sie nach grüneren Weiden und machen Sie keine Ausreden.

Ich empfehle Ihnen aus drei Gründen, grünere Weiden zu suchen:

  1. Auf lange Sicht ist es schädlich für die Karriere eines Programmierers, schlechte Praktiken aufrechtzuerhalten. Das Fortbestehen von schlechten Praktiken erzeugt schlechte Gewohnheiten.
  2. Ein Programmiergeschäft, das für alternative Sichtweisen nicht empfänglich ist, unterdrückt die Vorstellungskraft.
  3. Wenn Sie wissen, dass Sie schlechte Praktiken aufrechterhalten und Ihr Team nicht für alternative Sichtweisen empfänglich ist, wird Ihre Moral zwangsläufig sinken, und dies wird Ihr Leben unglücklich machen. Also verlassen Sie so schnell wie möglich.

* Wichtige Unterscheidung: Die Erwartung, dass jemand für Ihren Standpunkt empfänglich ist, ist nicht dasselbe wie die Erwartung, dass jemand nachgibt Ihrem Perspektive. Ich schätze immer Menschen, die meinen Standpunkt berücksichtigen, während ich wenig Respekt vor Menschen habe, die weich sind und meinem Standpunkt ohne ausreichenden Grund oder nachgeben Beweise dafür.

6
Jim G.

Taten sagen mehr als Worte :

Ein anderer Versuch:

  • Sie müssen führen durch Beispiel.
  • Stellen Sie sicher, dass die Projekte, die Sie ausführen, die besten sind, die Sie ausführen können.
  • Sie müssen Excel in Bezug auf Leistung, weniger Fehler usw.
  • Sobald Sie zeigen können, dass Ihr Ansatz und Stil besser ist als Ihr Chef, es sei denn, er ist sehr arrogant, dann denke ich, dass diese Person natürlich dem folgen wird, was am besten funktioniert.
6
Darknight

Ich würde ihm nur Zeiger in kleinen Dosen geben, wenn Sie sehen, dass er etwas "Schlechtes" tut.

"Hmm, sieh dir diesen Ansatz an. Ich zeige es gerne auf diese Weise, weil bla bla bla."

Tun Sie dies nicht mehr als einmal jeden zweiten Tag. Wenn er Ihren Vorschlag nicht annimmt, erwähnen Sie ihn nie wieder (für ein paar Wochen). Ein paar werden bleiben. Und er wird langsam besser werden.

4
Morons

Bitten Sie Ihren Chef, sich mit einer anderen Art zu vergleichen, die Ihnen beigebracht wurde. Er kann einen legitimen Grund haben. Du wirst es nicht wissen, bis du fragst. Möglicherweise gibt es einen alten Codierungsstandard, den sie beibehalten möchte, oder es ist ihr einfach egal. Geben Sie keinen Hinweis darauf, dass der Chef automatisch falsch liegt. Oh, und mach es privat. Dies ist für Ihre Bildungszwecke.

4
JeffO

Es hängt davon ab, ob. Wenn es sich bei dem Code, den Sie überprüfen, um brandneuen Code handelt, bitten Sie um Codeüberprüfungen, da dies dazu beiträgt, Sie auf den neuesten Stand zu bringen, und zeigt, dass Sie am Lernen interessiert sind. Der Chef kann dies hilfreich finden, da es ihm zeigt, dass Sie das Richtige tun möchten. Wenn es sich um alten Code handelt, über den Sie zufällig gestolpert sind und den Sie beibehalten müssen, sollten Sie langsames Refactoring durchführen. Hier und da eine Typdeklaration, während die anstehende Aufgabe noch erledigt wird. Das Problem hierbei ist nun, dass der String YesOrNo möglicherweise andere Werte wie Maybe annimmt, was zu fehlerhaftem Code führen kann, wenn Sie nicht vorsichtig sind.

4
Woot4Moo

Als erstes würde ich herausfinden, wie er auf Kritiker reagiert. Wenn ich der Boss wäre - nun, ich würde nichts falsch machen, oder? - Ich würde es vorziehen, auf einmal, aber auf respektvolle Weise direkt in meinem Gesicht erzählt zu werden. Je nach Temperament und Kultur kann Ihr Chef unterschiedlich sein.

Aber die meisten von ihnen brauchen etwas Respekt. Ein guter Weg, um zu zeigen, dass Sie ihn respektieren, ist das, was zuvor vorgeschlagen wurde: Sie erklären, was Sie meinen, aber überlassen die Entscheidung ihm: "Dies ist mein Grund, aber vielleicht habe ich etwas übersehen. Nach meiner Erklärung:"

if (YesOrNo == "Yes")
if (YesOrNo == "yes")
if (YesOrNo == "YES")
if (YesOrNo == "oui")
if (YesOrNo.equals ("Yes"))
if ("Yes".equals (YesOrNo)) // might be null

"Was schlagen Sie vor?"

Und Sie können vorher eine Metafrage stellen: "Herr X, wenn ich etwas in Ihrem Code gefunden habe, von dem allgemein berichtet wird, dass es sich um eine verbesserungsfähige Praxis handelt - wie soll ich es Ihnen melden? Auf einmal oder Schritt für Schritt? Oder sollte ich Vermeiden Sie es um jeden Preis zu erwähnen? Verbessern Sie den Code lautlos? "

Es würde von meiner Beziehung abhängen, welchen Wortlaut ich wählen würde und welchen Ansatz.

4
user unknown

Ihr Chef weiß nicht, wie man programmiert, und er sollte es nicht tun. Meine Erfahrung hat mir gezeigt, dass die Annahme, dass jemand, der Chef genannt wird, auch erfahrener oder besser ist als Sie, ein Trugschluss ist. In anderen Dingen mag er besser sein, aber der Punkt des Managements und der Hierarchie besteht darin, die Dinge an die am besten geeignete Person zu delegieren. Ein Chef ist jemand, der die Chance hatte, ein Unternehmen zu gründen, oder der aufgrund seiner Führungsqualitäten, nicht unbedingt aufgrund seiner Programmierkenntnisse, eine Führungsposition innehatte.

Ich hatte einmal einen Chef, der so tat, als hätte ich einen Computer installiert, während er an einen Benzingenerator angeschlossen war, weil er behauptete, Hacker könnten über das Stromnetz eindringen, während die Maschine noch ungeschützt war. Ich gab sofort auf. Ich habe damals eine wertvolle Lektion gelernt: Der Chef hat nicht immer Recht, und manchmal ist das Aufhören die einzig wertvolle Antwort.

Um auf Ihren Fall zurückzukommen, haben Sie vielleicht einen Fall, in dem nur die Suche nach einer anderen Beschäftigung (ja, Krise, yadda yadda ... ich weiß) die beste Heilung sein kann. Verschwenden Sie nicht Ihre kostbare Zeit.

4
Stefano Borini

Versuchen Sie, ihm kurze Teile des Beispielcodes von seriösen Websites/Orten/Büchern usw. zu zeigen, die ähnliche Aufgaben erfüllen.

4
chiurox

Ich lebe in der Branche, in der ich die Fehler meines Chefs nicht finden kann. Also besser, ich würde die Fälle generieren, in denen Fehler im Code erscheinen, und ihn den Fehler sehen lassen, als ich ihm die erforderlichen Änderungen und den möglichen Grund vorschlagen würde [in Ihrem Fall sind Sie sich über den Grund sicher ..: - D] des Fehlers. Jeder Entwickler, ob gut oder schlecht, wird den Fehler erst akzeptieren, wenn er den Fehler sieht.

3
Chris

Ich hatte einmal ein großes Problem mit dem Stil eines Chefs.

Damit gibt es zwei Probleme. Zunächst einmal glaube ich nicht, dass ich es jemals zu seinem Gesicht gesagt habe, aber ich kann mir vorstellen, dass er es wusste. Er blieb professionell, ich nicht, IOW.

Zweitens gab es Gründe für das, was er tat, und ich brauchte nur Zeit, um zu verstehen, wie überkomplex und böse meine "richtigen" "Lösungen" waren.

Von den drei Punkten in der Frage sind Diakritika nicht jedem fremd, und obwohl ich das nicht für die Schleife verwenden würde, ärgert mich die C-Familie ... während die Syntax und wie sie (nicht) passt Mein Einrückungsstil, damit ich vielleicht sehen kann, woher er kommt.

Sogar das Boolesche Ding könnte eine Erklärung in Bezug auf Gewohnheiten haben, die aus einer anderen Sprache stammen (was natürlich keine Rechtfertigung ist).

3
Steve314

Ich denke, das könnte funktionieren -

  1. Bitten Sie Ihren Manager, Ihren Code zu überprüfen, der keinen der Fehler enthält, die er macht.
  2. Dann sehen Sie, ob Ihr Manager Sie fragt, warum Sie es nicht "auf seine" Weise tun
  3. Wenn er diese Frage stellt, könnten Sie ihn fragen, warum das ein besserer Weg wäre.

Auf diese Weise erfahren Sie, warum er seinen Weg für richtig hält.

3
k25

Da war ich schon. Ich war direkt aus der Uni und nachdem ich ungefähr ein Jahr für einen Mann gearbeitet hatte, wurde mir klar, dass ich viel mehr über das Programmieren wusste als er, aber es war seine Sache, und er gab den Ton an - und wollte ihn einfach nicht beleidigen wie auch immer! Ich entschied, dass der beste Weg, dies zu umgehen, darin bestand, die Vorteile gemeinsamer Codierungskonventionen im gesamten Unternehmen zu erörtern, die wir alle auch einhalten sollten, und zu sehen, wie er reagierte. Überraschenderweise hielt er es für eine großartige Idee und bat mich, eine Liste von Standards zu erstellen, die wir beide dann gemeinsam überprüften und fertigstellten usw.

Das Wichtigste dabei ist, dass Sie so fehlbar sind wie er und dass einige seiner Wege besser sind als Ihre eigenen, nur weil einige seiner Wege seltsam/falsch sind.

Aus meiner persönlichen Erfahrung hat es jedoch nicht funktioniert. Obwohl er zwei Tage damit verbracht hat, ein großartiges Dokument mit Standards und Codierungskonventionen zu recherchieren und zu kompilieren, war er bereits auf seine Art festgelegt, sah den Nutzen von Codierungskonventionen oder dem Schreiben von Code, der den Server weniger belastete und unsere Jobs machte, nicht wirklich schneller und einfacher und spart Kosten.

Am Ende ging ich, um einen Ort zu finden, der die Entwicklung etwas ernster nahm. Es war nicht alles schlecht, da die Forschung, die ich zu Codierungskonventionen durchgeführt habe, bis heute wirklich hilft.

3
user16731