Wie würden Sie bei einem neuen Job mit unflexiblen schlechten Codierungsstandards umgehen? [Duplikat]

Ich arbeite erst seit etwas mehr als 3 Monaten in meiner jetzigen Position und habe das Gefühl, dass einige der geltenden Codierungsstandards gegen meine persönlichen Best Practices verstoßen. Der größte Konflikt scheint beim Schreiben von SQL-Code zu sein. Ich möchte meinen Code sehr lesbar, leicht verständlich und leicht zu testen machen, aber anscheinend ist das nicht Teil der Standards hier und ich werde gebeten, Elemente zu entfernen, die ich an Ort und Stelle gesetzt habe Förderung meiner Best Practices, was es wiederum einfacher und schneller für mich macht, und ich bin sicher, dass andere hinter mir kommen, um es zu verstehen und zu testen.

Der Vollstrecker ist mein Manager und sehr streng in Bezug auf die Standards und macht es fast unmöglich, sich zu Wort zu melden, und ignoriert völlig alle Gründe für meine Handlungen, die auf "das sind keine Standards" zurückgreifen. Warum können sie es dann nicht sein? Warum sie nicht zum Standard machen? Was ist so falsch daran, leicht verständlichen Code zu haben, der das Testen und Optimieren erleichtert?

Der andere Teil meiner Frustration kommt von dem Gefühl, dass ich die einzige Person bin, der diese Standards auferlegt werden. Ich habe viele Male Code gefunden, der mich zusammenzucken lässt und noch nicht unseren Standards entspricht. Er existiert und wurde kürzlich geschrieben.

Im Moment ist dies meine größte Sorge bei meiner Arbeit. Ich mag es, dass wir Standards haben und dass sie durchgesetzt werden, aber ich mag die Inflexibilität und Engstirnigkeit der Standards nicht und es wird sehr frustrierend.

Darüber hinaus hörte ich heute Morgen eine neue Zeile: „[Name des Regisseurs] mag es nicht …“, obwohl er keinen Code mehr schreibt und ich der Meinung bin, dass sein persönlicher Programmierstil keine mögliche Verbesserung der Standards diktieren sollte.

Was würden Sie tun? Ich fühle mich, als würde ich zwischen einem Felsen und einer harten Stelle stecken.

In diesem Beitrag geht es jedoch weniger darum, was meine Standards sind, als vielmehr darum, wie man mit einem Konflikt von Standards umgeht, insbesondere wenn Sie das Gefühl haben, dass sie die Geschwindigkeit, mit der Sie arbeiten, beeinträchtigen.

Ich kann nicht sagen, ob Sie um Hilfe bei Codierungsstandards bitten (hier nicht zum Thema, versuchen Sie es mit Programmierern) oder ob Sie fragen, wie Sie Ihren Manager davon überzeugen können, sich zu ändern (in diesem Fall sind die detaillierten Codierungsprobleme irgendwie ablenkend ). Auf jeden Fall gehören Diskussionen über SQL-Codierungsstandards hier nicht in die Kommentare (weil es um SQL-Codierungsstandards geht und weil es sich um Diskussionen handelt), also lösche ich diese. Ich schlage vor, Ihre Frage so zu bearbeiten, dass sie sich auf den arbeitsplatzspezifischen Aspekt konzentriert. Vielen Dank.
Ich stimme zu und werde aktualisieren, wenn ich kann.
Denken Sie daran, dass es bei Codierungsstandards darum geht, Konventionen für die gesamte Codebasis festzulegen, damit der Programmierer, der den Code fünf Jahre nach Ihrem Ausscheiden aus dem Unternehmen pflegen muss, nicht die idiosynkratischen Konventionen jedes Programmierers herausfinden muss. Sie werden nicht weniger effizient, wenn Sie die Standards befolgen – Sie investieren diese Zeit im Wesentlichen in die Dokumentation Ihrer Arbeit. (Ja, ein guter Programmierer sollte in der Lage sein, jeden gängigen Stil zu lesen. Andererseits habe ich einige Programmierer gesehen, die, sich selbst überlassen, so eigenwilligen Code geschrieben haben, dass der Debugger kaputt ging!)
@Tony - Siehe meine Frage dazu, wie man neu ist und sich für Veränderungen einsetzt ( Wie schnell sollte ich mich dafür einsetzen, dass ich nach dem Beginn einer neuen Stelle Veränderungen vornehme? ). Könnte nützlich sein.

Antworten (5)

Sie sind weder eine besondere Schneeflocke noch arbeiten Sie in einem Vakuum

meine Best Practices

Wenn Sie nicht Ihr eigener Vorgesetzter sind, können Sie nicht vorschreiben, welche Standards Sie verwenden. Und selbst wenn Sie es sind, werden Sie wahrscheinlich für andere arbeiten und müssen sich dennoch an deren Standards halten.

Dies ist ein wesentlicher Teil der Realität, für andere zu arbeiten.

Denken Sie auch daran, dass Standards in vielen Fällen eine lange Geschichte haben. Vielleicht hat ein früherer Entwickler etwas getan, das eine Menge Probleme verursacht hat, als der Entwickler gegangen ist. Vielleicht hatte ein Manager einen Machttrip. Dies wird nie sofort klar sein, besonders als neue Person.

Der andere Teil meiner Frustration kommt von dem Gefühl, dass ich die einzige Person bin, der diese Standards auferlegt werden.

Ich vermute, das liegt zum Teil, wenn nicht sogar ganz an Ihrer Einstellung. Es gibt viele andere Faktoren als nur Ihre Arbeit, die die Perspektive Ihres Chefs auf Sie beeinflussen.

An diesem Punkt ist es wahrscheinlich, dass Ihr Chef Sie für einen problematischen Mitarbeiter hält. Alles in Ihrer Frage lautet: "Ich habe Recht, warum verstehen und glauben mir die Idioten, mit denen ich arbeite, nicht! Es ist so offensichtlich!"

Was würden Sie tun?

Wenn Sie an Ihrem Arbeitsplatz maßgeblichen Einfluss haben möchten, lernen Sie, Büropolitik zu „spielen“.

Ein weiterer Realitätscheck: Wenn Sie anfangen wollen, Menschen zu beeinflussen, müssen Sie dies auf effektive Weise tun. Das bedeutet, dass menschliche Fähigkeiten wichtiger sind als technisches Wissen. Bevor Sie dem nicht zustimmen, stellen Sie fest, dass Ihre gesamte Frage auf dieses Problem zurückzuführen ist. Wenn technische Fähigkeiten / Perspektiven von größter Bedeutung wären, hätten Sie diese Frage nicht stellen müssen.

Dies ist die gefürchtete "politische" Komponente der Arbeit, vor der die meisten Techniker zurückschrecken.

Eine Schlüsselkomponente der Politik ist die Erkenntnis, dass das „Wie“ wichtiger ist als das „Was“.

Die Leute werden vergessen, was du gesagt hast

Die Leute werden vergessen, was du getan hast

Aber die Leute werden nie vergessen, wie du ihnen das Gefühl gegeben hast.

Neue Leute mit dem Management zu streiten (insbesondere wenn Direktoren sich einmischen) ist fast immer kein guter Karriereschritt. Das ist etwas anderes, als konstruktiv zu widersprechen.

Handlungsschritte

  1. Sprechen Sie mit Ihrem Vorgesetzten. Geben Sie an, dass Sie den Streit entschuldigen, und fragen Sie, ob Sie die aktuellen Standards durchsprechen können
  2. Hören Sie in diesem Gespräch auf zu streiten. Verstehen Sie das „Warum“ dessen, was Ihr Vorgesetzter vorschlägt. Gehen Sie nicht automatisch davon aus, dass Sie ein Idiot sind.
  3. Hören Sie, was Ihr Vorgesetzter zum „Warum“ sagt. Wenn Sie das nicht verstehen, versuchen Sie, das Warum zu verstehen – versuchen Sie nicht einmal, dem zu widersprechen oder „aber, aber, aber“ zu sagen. Menschen werden im Allgemeinen defensiv, wenn Menschen mit ihnen streiten. Und werden Sie viel bereitwilliger zuzuhören, wenn Sie zuerst zuhören und zu verstehen versuchen.
  4. Nachdem Sie vollständig verstanden haben, warum Ihr Vorgesetzter diese Standards möchte (Sie sollten wahrscheinlich so etwas sagen wie: "Also, wenn ich es richtig verstanden habe, sind die Gründe für diese Standards X, Y, Z" - wenn Sie dies nicht tun können, benötigen Sie weitere Informationen) , fragen Sie so etwas wie: „Wäre es in Ordnung, wenn ich erkläre, was ich getan habe und warum, um festzustellen, ob sie in den Standard aufgenommen werden könnten?“

Gehen Sie in diesem Gespräch vorsichtig vor. Wenn Sie ein gewisses Maß an Argumenten haben, werden Sie wahrscheinlich schwer verlieren, vorausgesetzt, Sie haben eine Vorgeschichte mit Ihrem Vorgesetzten.

Schöner Beitrag, meine Einstellung hat sich anscheinend von den Antworten, die ich bisher erhalten habe, falsch dargestellt, aber trotzdem sehe ich in dieser Antwort immer noch einen Wert. Um es klar zu sagen, ich argumentiere nicht mit dem Management oder irgendjemandem. Mein Vorgesetzter macht mir ständig Komplimente für meine Fähigkeiten, die Qualität meiner Arbeit und ja sogar für meine Fähigkeit, Standards mehr als andere zu befolgen. Meine Umgangsformen sind nicht schlecht, obwohl ich hauptsächlich den Kopf gesenkt bleibe und einfach Code hacke. Ich habe jedoch eine Schwäche für Politik und akzeptiere, dass ich lernen muss, sie besser zu spielen.
@Tony Manchmal besteht das Hauptproblem der Menschen darin, zu erkennen, dass ihre Haltung feindselig / argumentativ ist. Ich kann die Anzahl der Gespräche nicht zählen, die ich geführt habe, entweder über mich selbst oder über andere, die im Grunde lauten: „Du warst wirklich konfrontativ“, gefolgt von „Wirklich? wieso?“. Dies ist auch ein großer Teil der Politik, um die Wirkung/das Image zu verstehen, das Sie präsentieren.
@ Tony, es ist auch erwähnenswert, dass Sie ziemlich neu im Unternehmen sind. Ihre Fähigkeit, Veränderungen zu beeinflussen, ist also begrenzt. Ich gehöre, wie Sie scheinen, zu den Menschen, die in ein Unternehmen eintreten und ständig nachforschen und anstacheln, um zu versuchen, die Dinge in eine bessere Richtung zu lenken. Ich werde sagen, obwohl es politisch gesehen ein sehr heikler Tanz ist, und es ist fast ausschließlich Politik. Jede Änderung, die Sie vornehmen möchten, wird auf irgendeinen Widerstand stoßen, einige sind leicht zu überwinden, andere werden eine lange Zermürbungskampagne sein, um die Opposition zu zermürben. Wählen Sie Ihre Schlachten, einen Kampf nach dem anderen, treten Sie sanft auf und behalten Sie die Metriken bei.
Ich markiere dies als Antwort, da ich der Meinung bin, dass es trotz einiger Missverständnisse gut geschrieben wurde und im Allgemeinen ein gutes Feedback liefert, das auch andere Personen in anderen Branchen nützlich finden könnten.
@Tony Möglicherweise finden Sie diese Frage auch nützlich.
Ihr Schlagzeilensatz sollte der Slogan der Website sein oder im Feld „Frage stellen“ oder so ähnlich vorbelegt sein :)
Ich stimme dem zu, außer dass ich es nicht einmal auf die Ebene der "Politik" erheben würde. Meiner Ansicht nach geht es in der Politik darum, die verschiedenen Beziehungen zwischen einer Gruppe von Menschen zu verstehen (und vielleicht zu manipulieren). Hier geht es nur um die grundlegende Fähigkeit, mit einer Person (Ihrem Chef) auf eine vage produktive Weise zu interagieren :-)

Tolle Antworten oben, aber ich möchte noch einen Punkt hinzufügen.

Gut, schlecht oder nicht, diese Standards haben eine Geschichte. Wenn sie befolgt werden, gibt es wahrscheinlich eine bedeutende Codebasis, die nach diesen Standards geschrieben wurde. Ihr Antrag auf Änderung der Standards würde dazu führen, dass die gesamte Codebasis erneut überprüft werden müsste, um den alten Code neu zu strukturieren. Dies kann ein erheblicher Aufwand sein und erhöht das Risiko für unbeabsichtigte Codeänderungen. Wenn das Team den alten Code nicht berührt, verlassen Sie jetzt zwei (oder mehr) Standards.

Wenn Sie mehr als einen Standard haben, haben Sie meiner Erfahrung nach wahrscheinlich wirklich keinen.

Immer wenn ein neuer Standard eingeführt wird, wird dieser Standard normalerweise nicht auf Legacy-Code angewendet, bis dieser Legacy-Code eine logische Aktualisierung erfordert (also ein neues Feature oder ein Bugfix). Code zu ändern, nur um einen neuen Standard einzuhalten, ist gefährlich und unverantwortlich.
Ich würde dem Legacy-Code zustimmen, aber es gibt viele aktuelle Projekte, die eine mehrjährige Geschichte haben, die beeinträchtigt werden könnte. Eine der Apps, die mein Team erstellt hat und derzeit verbessert, hat über 200.000 Codezeilen. Wenn jemand einen neuen Standard für diesen Code vorschlagen würde, wäre die Antwort sehr wahrscheinlich nein.
Ich stimme zu, und die Standards scheinen hier sehr locker eingehalten zu werden, außer wenn es um mich geht. Ich bekomme immer wieder die Zeile "Andere vor mir haben sie nicht erzwungen, aber ich bin es", was in Ordnung ist, aber ich sehe immer noch Code, der von anderen kommt, die überhaupt nicht konform sind. Die Standards, die ich nicht einmal ändern möchte, bitten nur darum, dass sie zulassen, dass sie einfach kommentarbasiert sind, was ein schnelleres Verständnis ermöglicht. Ich stimme dem, was Sie gesagt haben, aber zu.

Ich weiß, das ist nicht das, was Sie hören wollen, aber die traurige Wahrheit ist, dass Unternehmen (oder besser gesagt die Leute, die sie leiten) nicht immer der Logik oder dem „besten Weg“ folgen. Dies hat verschiedene Gründe, manche vernünftig (Kompatibilität, Konformität, Standardisierung etc.), manche nicht (Angst vor Veränderung, Unverständnis etc.).

Die andere unglückliche Wahrheit ist, dass Sie nicht immer in der Lage sind, dies zu ändern. Manche Dinge werden sich nie ändern, andere Dinge können Sie vielleicht im Laufe der Zeit beeinflussen. Was ich jedoch sagen möchte, ist, dass Sie ein neuer Mitarbeiter sind und es ist klar, dass es eine echte treibende Kraft gibt, die Dinge auf eine bestimmte Art und Weise zu tun. Mein Vorschlag wäre, sich diesen anzupassen, ob Sie wollen oder nicht, und Ihre Position einzuschätzen, wenn Sie weiter in das Unternehmen eingebettet sind.

Sich mit der Geschäftsleitung und den Unternehmensleitern zu streiten, ist in den besten Zeiten ein gefährliches Spiel – selbst wenn Sie an der Spitze des technischen Baums stehen, können (und werden es manchmal) die Leute, die das Unternehmen besitzen und leiten, über Sie herrschen. Das zu tun, wenn man neu ist, grenzt an Selbstmord.

Ich stimme zu, argumentiere nicht und halte mich an die Standards (alle 30 Seiten der C#- und SQL-Standards, die festgelegt wurden). Meine Frustration ist, wenn ich das Gefühl habe, dass die Standards meine Leistung beeinträchtigen. Ehrlich gesagt ist sich das Management meiner Frustration nicht bewusst, da ich es nicht wirklich verbalisiert habe. Ich nicke nur und sage, ja, ok, ich bringe das in Ordnung, möglicherweise nachdem ich gefragt habe, warum, aber die meiste Zeit bin ich gleichgültig und ändere es einfach, da ich neu bin und lerne immer noch alle Standards, aber ich werde selten korrigiert, da ich ihnen ziemlich gut folge. Gute Antwort!

Nur weil der Grund für einen Standard nicht sichtbar ist, heißt das nicht, dass er irrational ist.

Während ich allem oben Gesagten zustimme (über neue Mitarbeiter, die ihre sozialen Fähigkeiten maximieren und die lokale Unternehmenspolitik lernen müssen), ist eine Sache, die helfen kann, Ihr Frustrationsniveau zu senken, zu verstehen, dass einige Codierungsstandards nicht so sehr auf unlogisch und willkürlich basieren Faktoren, sondern auf gültige, aber unsichtbare .

Betrachten Sie Ihr Beispiel, das Sie als beschrieben haben

"Noch ein WTF-Standard, mit dem ich gerade fahre, aber völlig sinnlos erscheint"

Ich habe diesen genauen Standard tatsächlich in zwei verschiedenen Organisationen gesehen, und es gab einen sehr triftigen Grund dafür.

In beiden Fällen entdeckte ich, dass das Management eine bestimmte Software verwendete, um den Code-Entwicklungs- und Evolutionsprozess zu analysieren, und diese Software hatte strenge Erwartungen an die Formatierung der Kommentare (auch bekannt als Standards). Die von Ihnen beschriebenen "TICKET"-Zeilen enthalten möglicherweise nur " Kommentar: " in Ihrer Abteilung, aber später in der Produktion können Live-Vorfälle auftreten, die eine Fehlerbehebung und Änderung der Software erfordern. Techniker und das Management, die an diesen Ereignissen beteiligt sind, können TICKET-Zeilen mit Dingen wie „ Problem: “, „ Fix: “, „ Änderung: “, „ Referenz: “, „ Beweis: “, „ Entscheidung: “ hinzufügen.". Wenn Sie mit der Reparatur/Aktualisierung von Legacy-Code beauftragt werden, sehen Sie möglicherweise selbst einige Zeilen wie diese.

Eine konkrete Sache, die ich Ihnen vorschlagen kann, ist, sich über etwas namens „ITIL“ und/oder „ITSM“ zu informieren. Dies sind Sammlungen erstklassiger Best Practices für die IT, sowohl aus technischer Sicht als auch aus Managementperspektive. Ich mache Ihnen keinen Spaß, dass es anfangs sehr schwer sein kann, sie zu verstehen, wenn Sie ein reiner Technikfreak (Nicht-Management) sind, aber auf lange Sicht wird es Ihre Fähigkeit, das „große Ganze“ zu sehen, dramatisch verbessern und es kann als ein betrachtet werden marktfähige und/oder förderbare Fähigkeiten, wenn Sie sich entscheiden, bis zur ITIL-Zertifizierung zu gehen.

+1 für valid-but-invisible. Vor allem für einen neuen Mitarbeiter.
Ich stimme dem gültigen, aber unsichtbaren Teil zu, der traurige Teil ist jedoch, dass keine einzige Person dieses Kommentarformat wieder verwendet, nur ich werde gezwungen, während ich andere sehe, die Kommentare hinterlassen, ohne auch nur eine Ticketnummer oder eine echte Beschreibung dessen, was sie sind getan haben. Wie an anderer Stelle erwähnt, habe ich ehrlich gesagt das Gefühl, dass ich der einzige bin, von dem sie erwarten, dass er einem Standard folgt, nur weil ich neu bin, während andere einfach einen kostenlosen für alle haben können. ITIL macht mich traurig, lange Geschichte dahinter, die ich hier nicht teilen werde. Nur eine 8-stündige Präsentation mit jemandem zu sagen, der mit Ihnen spricht, macht einen langen Tag!
Ich mag, was Sie über die anderen Variationen erwähnt haben, die möglicherweise zur Ticket-Idee passen könnten. Für mich würde der Kommentarteil viel mehr Sinn machen, wenn wir ein Set verwenden würden, wie Sie es beschrieben haben, es erleichtert mir tatsächlich das Schlucken.

Alles gute Ratschläge in Bezug auf: Neue Leute sollten keine Wellen schlagen usw. und ja, manchmal ist es am besten, einfach die Nase zuzuhalten und Standards, Richtlinien usw. zu befolgen.

Aber manchmal liegt das Management falsch; Manchmal sind die „Standards“ eines Unternehmens wirklich schlecht oder schlimmer.

Suchen Sie sich in diesem Fall einen anderen Job; Langjährige Erfahrung hat mich gelehrt, dass es unmöglich ist, eine dysfunktionale Organisation zu reparieren. Diese Orte haben eine Kultur der Selbstverstärkung, und wenn Sie zu lange dort bleiben, werden auch Sie kaputt gehen.

Bitte erklären Sie in allen Vorstellungsgesprächen, wie Sie sich einen neuen Job wünschen, dann ist es viel weniger unangenehm, dass Sie das gleiche Problem wieder bekommen :-)
Ja ich stimme zu. Mein Problem ist, dass ich ohnehin zu häufig Jobs überspringe. Am Ende vermasseln sie mich immer oder ich finde etwas, mit dem ich nicht umgehen kann. Da ich erst 3 Monate alt bin, VERSUCHE ich, es hier durchzuhalten. Leider ist dies nicht das einzige Problem, aber in dem Moment, als ich diesen Beitrag schrieb, war es das anstößigste Problem, lol. Ich stimme dem jedoch vollkommen zu, Gehirn fressende Zombies sind schlecht.