Das Team nimmt meine Codeüberprüfungskommentare nicht ernst

Ich bin ein Softwareentwickler auf mittlerer Ebene in einem kleinen Softwareunternehmen. Ich bin seit 8 Monaten hier und aufgrund meiner Herangehensweise an Code-Reviews wurde ich schon früh in die obligatorische Reviewer-Liste aufgenommen.

Ich kam aus einer ziemlich großen Organisation hierher, in der die Fluktuationsrate sehr gering war und jeder Entwickler extrem in den Softwareentwicklungsprozess involviert war. Kodierungsstandards wurden gewissenhaft befolgt und die Kodierungsqualität war alles.

Ich bin zu diesem Unternehmen gekommen, um etwas anderes zu lernen. Da ich ein kleineres Unternehmen bin, dachte ich, ich würde mehr lernen als bei meinem letzten Job. Seit einigen Monaten bemerke ich bei meinen Teammitgliedern eine nachlässige Haltung in Bezug auf Dokumentation, Codequalität und die Herangehensweise an Codeüberprüfungen ist erschreckend. Da ich einer der Rezensenten der Code-Reviews bin, ist es für mich sehr offensichtlich. Ich muss sie ständig daran erinnern, die vereinbarten Code-Standards zu befolgen, Dinge zu dokumentieren und einfach die Verantwortung zu übernehmen. Ich bin nicht in der Position, sie ausdrücklich darum zu bitten. Ihre Einstellung beginnt mich zu nerven und stresst mich fast. Diese Einstellung ist auf allen Ebenen gleich, sei es ein Junior-Entwickler oder ein Senior-Entwickler als ich.

Ich kann die grundlegenden Fehler, die in den Reviews gemacht werden, nicht einfach ignorieren und diesen Code in die Produktion gehen lassen. Ein schlechter Programmierer, aber Senior-Entwickler, kam zu mir, um mich zu bitten, mit Code-Reviews aufzuhören.

Ich habe bereits mit meinem Manager (der auch ihr Manager ist) über all dies gesprochen, aber aus seiner Antwort klang für mich, als hätte er keine Kontrolle über sie (er hat ein paar Wochen nach mir angefangen), also ist er relativ neu.

Wenn Sie in meiner Situation wären, was würden Sie tun? Würdest du deine Einstellung dahingehend ändern, dass es dir egal ist?

Einige zB von Problemen, die ich in den Code-Reviews sehe:

  1. Neu erstellte ungenutzte Methoden/Variablen, die so belassen werden, wie sie sind.

  2. Namenskonventionen für neue Klassen, Eigenschaften, Methoden nicht befolgt. Eigenschaften zum Beispiel bleiben in Kleinbuchstaben.

  3. Offensichtliche Fehler werden ignoriert und sie geraten in Argumente wie den Back-Off-Kommentar.

„Ich bin nicht in der Lage, sie ausdrücklich darum zu bitten“, aber ist das nicht ein Code-Reviewer?
@Kate Gregory - Ja, irgendwie, aber nicht so, dass er sagt, er sieht aus, ob Sie es entweder richtig machen oder ich Sie auf ein PIP setze
was versuchst du zu erreichen?
@aaaaa sagt, Monica wieder einzusetzen - ich möchte Konsistenz im Code erreichen und dumme Fehler in der Produktion vermeiden.
@ user163824 Das ist nicht wirklich ein /workplace-Ziel. Es scheint, dass Sie einen Auftrag zur Codeüberprüfung erhalten haben, aber Sie sind weder Eigentümer des überprüften Codes, noch werden Ihre Ansichten von den anderen Entwicklern nicht wirklich respektiert. Haben Sie sich jemals die Zeit genommen, in der PR zu erklären, warum etwas besser gemacht werden könnte und sollte, vielleicht sogar selbst etwas geschrieben, nur um die Wichtigkeit zu demonstrieren?
@aaaaasaysreinstateMonica, keine Ahnung, wenn OP Schwierigkeiten hat, das Schreiben von besserem Code über Code-Reviews zu fördern, dann wird das, was vor sich geht, zumindest teilweise die Schuld des OP sein. Sachen sind nie schwarz und weiß.
Schieben Senioren zurück, wenn Sie „grundlegende Fehler“ kommentieren, oder schieben sie Teile der Codierungsrichtlinien zurück, denen sie nicht widersprechen? Wenn letzteres der Fall ist, scheinen dies mindestens zwei verschiedene Probleme zu sein
Könnten Sie mindestens ein Beispiel für diese Fehler nennen?
@ user163824 Welche Auswirkungen hat die Codeüberprüfung auf den gesamten Entwicklungsprozess? Kann der zur Überprüfung eingereichte Commit/Code als Ergebnis der Codeüberprüfung abgelehnt/zur Überarbeitung gesendet werden?
@Kate: Nein. Der Prüfer kann den Entwickler nicht anweisen , eine Änderung vorzunehmen. Die Frage ist „ist die Änderung eine vereinbarte Verbesserung, die die zusätzliche Arbeit wert ist“.
@AlexanderM Normalerweise besteht die Aufgabe des Prüfers darin, die Änderung zusammenzuführen, und wenn er dies nicht tut, wird sie nicht zusammengeführt. Wenn der Entwickler zustimmt, gut. Wenn der Entwickler stark anderer Meinung ist, hat sein Manager ein Problem.
OP, wie steht Ihr Manager zu dem Problem? Stimmt er Ihnen darin zu, dass der Codequalität mehr Aufmerksamkeit geschenkt werden sollte? Kann er dieses Obermaterial in die Kette bringen?
Eine teilweise Lösung dafür, die Punkt 2 und vielleicht 1 ansprechen würde, wäre das Hinzufügen eines Checkstyle / Linter-Schritts in Ihren Build-Prozess. Auf diese Weise kann Ihre Pipeline nicht erstellt werden, wenn dieser Schritt fehlschlägt, und die PR wird automatisch abgelehnt. Dies würde erfordern, dass Sie Ihre CI/CD-Prozesse überprüfen und mit Ihren Kollegen besprechen, wie streng der Linter / Checkstyle sein sollte.
@ gnasher729 Wenn dies der Fall ist, sehe ich das Problem hier nicht. Wenn Sie der Meinung sind, dass der Code Ihren Standards nicht entspricht, schreiben Sie eine Bewertung, in der Sie auf jeden einzelnen Punkt hinweisen, von dem Sie glauben, dass er falsch ist, und führen Sie ihn nicht zusammen, bis die Probleme behoben sind. Wenn die Leute anfangen, Sie aufzudrängen, können Sie einfach erklären, dass Sie solchen Code nicht genehmigen können, da er gegen Ihre professionellen Standards verstößt und den Zweck der Überprüfung zunichte macht (übrigens habe ich das in einer ähnlichen Situation getan). Natürlich würde es die Menschen nicht über Nacht verbessern, aber langsam und sicher würden Sie entweder dorthin gelangen.

Antworten (9)

Ihre Einstellung beginnt mich zu nerven und stresst mich fast. Diese Einstellung ist auf allen Ebenen gleich, sei es ein Junior-Entwickler oder ein Senior-Entwickler als ich.

Ich weiß nicht, ob es die Kultur ist oder ob ich eine Frau in einem männlich dominierten Team bin, die die Reibung verursacht.

Für mich scheint dies ein kulturelles Missverhältnis zu sein.

Sie kamen aus einem großen Unternehmen, in dem sich die Leute im Allgemeinen an die Regeln hielten. Sie befinden sich jetzt in einem kleineren, freizügigeren Unternehmen. Und es stört dich.

Ich habe bereits mit meinem Manager (der auch ihr Manager ist) über all dies gesprochen, aber aus seiner Antwort klang für mich, als hätte er keine Kontrolle über sie (er hat ein paar Wochen nach mir angefangen), also ist er relativ neu.

Wenn Sie in meiner Situation wären, was würden Sie tun?

Zuerst würde ich wahrscheinlich darum bitten, aus dem Code-Review-Team entfernt zu werden, da dies der Kern Ihres Stresses zu sein scheint.

Dann würde ich entweder lernen, die Kultur so zu akzeptieren, wie sie ist, während ich immer noch hervorragende Arbeit leiste, oder ich würde ein neues Unternehmen finden (vielleicht ein größeres, strengeres Unternehmen, das formelleren Regeln folgt) und dieses verlassen.

Würdest du deine Einstellung dahingehend ändern, dass es dir egal ist?

Absolut nicht.

Ich habe mich immer gekümmert. Wenn die Kultur um mich herum so wäre, dass ich aufhören müsste, mich zu kümmern, um miteinander auszukommen, bin ich gegangen.

Ich bin mit dieser Antwort nicht einverstanden. Vor den Code-Reviews davonzulaufen und sich einen neuen Job zu suchen, wird OP sicherlich entlasten, aber es wird dem Unternehmen nicht nützen und sollte daher nur der letzte Ausweg sein. Es gibt nichts in der Frage, das Aufschluss darüber gibt, wie viel Fokus auf Qualität im oberen Management liegt, was einen Unterschied machen könnte, wenn das Unternehmen bereit ist, sich an der Kultur von OP oder OP auszurichten, das sich an der des Unternehmens ausrichten muss, oder gehen weg.
Diese Antwort trifft sozusagen den Nagel auf den Kopf. Schlagen Sie keine Schlachten, die Sie nicht gewinnen können, das war für mich eine der wichtigsten Lektionen in der Arbeit (und im Leben). Das bedeutet nicht, dass Sie Ihre Standards aufgeben. Nur bei der gewaltigen Aufgabe, andere zu überzeugen. Wenn Sie wirklich nicht mit der Umwelt leben können, ist es gesünder, sie zu verlassen. Übrigens, wer auch immer Sie als Neueinstellung zum Pflichtprüfer gemacht hat, ist ein totaler Sadist.

Um die Frage zusammenzufassen, wie sie jetzt lautet:

  1. Ich möchte Konsistenz im Code erreichen und dumme Fehler in der Produktion vermeiden
  2. Ein Teil meiner Arbeit ist Code-Reviewer
  3. Ich muss sie ständig daran erinnern, die vereinbarten Kodexstandards einzuhalten
  4. Ich kann die grundlegenden Fehler nicht einfach ignorieren
  5. Mein Vorgesetzter hat keine Kontrolle über das Team

Fragen Sie Ihren Vorgesetzten, was genau Ihre Aufgabe ist. Ist es „Code Quality Advocate“ oder „Code Reviewer“? Es ist wahrscheinlich letzteres, also lassen Sie das (3)-Verhalten fallen.

Was ist der Prozess der Codeüberprüfung? Ist es commit->review->comment/accept? Dann tun Sie genau das. Leiten Sie alle Trauer des Teams an Ihren Vorgesetzten weiter. Sie haben Sie mit einer wichtigen Aufgabe beauftragt, Sie scheinen über einen angemessenen Hintergrund zu verfügen. Ihre Aufgabe ist es, Ihnen bei diesen Aufgaben zu helfen.

Es besteht die Möglichkeit, dass Sie Ihre Arbeit nicht sehr gut machen, z. B. hängen Sie an Einrückungen, Namenskonventionen oder etwas anderem, das für den aktuellen Stand des Projekts oder Produkts ungeeignet ist. Aber das ist das Problem, das Ihnen Ihr Vorgesetzter erklären muss. Wenn es schriftliche Dokumente gibt, versuchen Sie, diese in Ihren Kommentaren zu verlinken, und gehen Sie gemeinsam mit dem Vorgesetzten die Richtlinien durch, um herauszufinden, wie Sie Ihre Arbeit besser machen können .

Ich glaube, Sie haben sich ein wenig verlesen, das OP ist ein Ingenieur des Unternehmens, der ebenfalls in die Gutachterliste aufgenommen wurde. Aber nirgends sagt sie, dass dies ihre Hauptaufgabe oder gar ihr Fokus ist. Es ist ziemlich normal, dass die meisten, wenn nicht alle Entwickler zumindest für ihre Projekte Teil des Review-Prozesses sind.
@TymoteuszPaul Ja, ich wollte mich auf die Tatsache konzentrieren, dass OP eine bestimmte Aufgabe hat, mit der sie Probleme hat. "Job"~"Aufgabe" hier. aus Gründen der Übersichtlichkeit bearbeitet, danke

Ein technischer Code-Reviewer erlangt Autorität, indem er im Wesentlichen weise und richtig ist und erklären kann, warum er weise und richtig ist. Nicht durch Managementbefehl.

Sie müssen also Herzen und Köpfe gewinnen.

Als erfahrener Code-Reviewer habe ich eine starke Meinung zu richtig und falsch, wenn es um Code geht. ("Die Hölle ist der Code anderer Leute", um Sartre falsch zu zitieren).

NICHTSDESTOTROTZ:

Ich achte sehr darauf, „Sie müssen das beheben, weil der Code nicht funktioniert“ von „Ich würde einen anderen Stil bevorzugen“ zu unterscheiden (die jeweils in unterschiedlichen Graden der Beharrlichkeit auftreten). Konzentrieren Sie sich auf das, was kaputt ist. Mit der Zeit nehmen Leute freiwillig meine Vorlieben auf - weil sie gut sind, nicht weil ich es sage (ich bin nicht allwissend, ich habe gerade genug Mist erlebt, um Vorschläge zu haben, wie man es vermeiden kann).

„Mach das, weil es der Codierungsstandard ist“ wird niemanden überzeugen. Konsistenz ist eine gute Sache, aber dennoch ist die Begründung für die jeweilige Konvention erforderlich. Andernfalls bedeutet Beständigkeit nur, weiterhin Dinge falsch zu machen, weil Sie sie immer falsch gemacht haben.

Ich kann die grundlegenden Fehler, die in den Reviews gemacht werden, nicht einfach ignorieren und diesen Code in die Produktion gehen lassen.

Dann nicht. Wenn Sie einen Fehler gefunden haben, schreiben Sie ihn als Ticket auf und akzeptieren Sie den Code nicht, bis er behoben wurde. Ich habe Artikel unter Mängeln geschrieben, bis es behoben wurde.

Ich bin nicht in der Position, sie ausdrücklich darum zu bitten

Dann machst du keine Codeüberprüfung.

Wenn Sie nicht ihr Vorgesetzter sind, hört Ihnen niemand zu – es ist ein grundlegendes menschliches Verhalten, auf das die meisten Menschen sogar stolz sind. Vor allem in kleinen Unternehmen. Wie Sie sagten, ignorieren sie sogar Ihren (männlichen) Vorgesetzten. Da muss man sich keinen Stress machen.


Wenn mir jedoch einige Details fehlen und Sie sicher sind, dass Sie aufgrund Ihres Geschlechts diskriminiert wurden, dann haben sie kein Recht, Sie aufgrund Ihres Geschlechts zu stressen, und hier ist das Muster, dem Sie folgen sollten:

  1. Erstellen Sie ein Ticket oder eine Dokumentation für den Fehler, den Sie gefunden haben, und dokumentieren Sie, dass er von anderen ignoriert wurde.
  2. Dokumentieren Sie dann einen Fehler, der von einem männlichen Entwickler gefunden wurde, und stellen Sie fest, dass er wie gewünscht behoben wurde. (Wenn es mehrere Rezensenten gibt, wie Sie sagten, ist es besser - sammeln Sie die Tickets, die gelöst und ignoriert werden.)
  3. Stellen Sie sich Ihrem Vorgesetzten mit dem Ausdruck dieser 2 Beweise und fragen Sie nach dem Grund, warum Ihr Fehler ignoriert wurde und Sie sich anders verhalten haben.

Diskriminierung aufgrund des Geschlechts ist ein ernstes Problem, das nicht auf die leichte Schulter genommen werden sollte. Sie sagten, Sie seien „gestresst“, was bedeutet, dass etwas nicht stimmt – und zögern Sie nicht, das Problem zu eskalieren, bis Sie vollkommen zufrieden sind.

Sie haben einen ziemlich wilden Sprung gemacht, um zuzugeben, dass sie auch die männliche Person im Team ignorieren, aber irgendwie haben Sie es geschafft, zu vermuten, dass Geschlechtsdiskriminierung im Spiel ist, und nicht nur ein Problem mit OP selbst.
@TymoteuszPaul Ich habe eine Bearbeitung vorgenommen, um es klarer zu machen - meine Absicht war, falls OP einige Details nicht erwähnt hat und sie sich der Diskriminierung sicher ist.

Fragen Sie Ihren Vorgesetzten, was in Code-Reviews von Ihnen erwartet wird (möglicherweise mit einigen anonymisierten Beispielen aus Ihren Reviews), lassen Sie es öffentlich und konkret dokumentieren und folgen Sie dem so gut Sie können. Wenn sie diese Standards weiterhin nicht einhalten, liegt es an Ihrem Vorgesetzten, die Regeln durchzusetzen, nicht an Ihrem Problem.

Wenn Ihre Standards höher sind als die Ihres Vorgesetzten, müssen Sie Ihre Standards lockern. Es ist eine Schande, aber das Wichtigste ist, dass Ihnen das Thema aus den Händen genommen wird. Unklare Erwartungen verursachen bei der Arbeit übermäßigen Stress. Sie sollten Druck auf Ihren Vorgesetzten ausüben, um das Problem zu lösen.

Ich denke, der Fokus darauf, was Ihre Autorität ist und wie Sie die Leute dazu bringen, sich daran zu halten, ist falsch.

Der Zweck der Codeüberprüfung besteht darin, Fehler zu finden und die Codequalität zu verbessern, nicht darin, perfekten Code zu produzieren. Darauf zu bestehen, dass der Code perfekt ist, bevor Sie sich von der Codeüberprüfung abmelden, ist der beste Weg, um schlechte Gefühle zu schüren und eine Pattsituation zu schaffen, in der Sie den Code nicht abmelden und die Entwickler sich weigern, Ihnen zuzuhören.

Code Review ist vor allem ein kollaborativer Teamprozess. Es muss auf eine Weise erfolgen, die die Teamentwicklung und Beziehungen fördert oder zumindest keinen Schaden anrichtet. Sonst haben Sie am Ende ein Team, das sich hasst, und dann wird keine Software entwickelt, guter Code hin oder her. Wenn Sie also Code überprüfen, müssen Sie sich immer zuerst an den Menschen erinnern:

Erhöhen Sie den Code um ein oder zwei Buchstaben, nicht von einem F auf ein A

Leute, die Code in F-Qualität produzieren, tun das nicht absichtlich. Entweder sind sie unerfahren oder wissen es einfach nicht besser. Sie können nicht von einem Junior-Entwickler (oder einem Senior-Entwickler mit lebenslangen schlechten Gewohnheiten) erwarten, dass er all seine Gewohnheiten an einem Tag ändert. Darüber hinaus ist dies ein unvernünftiger Standard, da kein Code jemals wirklich perfekt ist: Selbst Sie machen Fehler und verpassen Dinge. Konzentrieren Sie sich auf zwei oder drei Hauptmängel und beheben Sie diese in Ihrer Codeüberprüfung, sodass der Code von einem F zu einem C wird. Vertrauen Sie darauf, dass Ihre Entwickler mit der Zeit besser werden, und sobald sie C-Level-Code produzieren, können Sie sich Sorgen machen zu einem B oder A gehen.

Binden Sie Feedback an Prinzipien, nicht an Meinungen

Die Leute haben unterschiedliche Meinungen darüber, wie man Code erstellt – das ist in Ordnung. Wenn Sie darauf bestehen, dass Dinge geändert werden, nur weil Sie die Dinge anders gemacht hätten, dann wirkt Ihr Feedback willkürlich und bedeutungslos. Binden Sie das Feedback stattdessen an bestimmte Prinzipien: „Das ist nicht skalierbar“, „Das ist nicht modular“, „Es passiert zu viel in dieser einen Klasse oder Funktion“, „Der Styleguide sagt, es soll so gemacht werden.“

Formulieren Sie Feedback als Anfragen, nicht als Befehle

Du würdest deinem Kollegen nicht sagen, dass er dir einen Kaffee holen soll. Verwenden Sie inklusive Sprache, "Wir sollten hier eine Fehlerprüfung hinzufügen."

Teilen Sie große Rezensionen in kleine Rezensionen auf

Ermutigen Sie Ihre Entwickler, kleine Änderungssätze einzureichen und sie schnell zu überprüfen. Wenn Sie 500 oder 1000 Codezeilen erhalten und eine Woche später mit fünf Seiten voller Änderungen zurückkommen, ist das unglaublich demoralisierend. Wenn Ihre Entwickler wissen, dass kleine Änderungen an diesem Nachmittag oder am nächsten Tag genehmigt werden, erhalten Sie kleine Änderungssätze und Ihr Feedback wird automatisch klein und überschaubar sein.

Halten Sie die Zustimmung nicht wegen trivialer Änderungen auf

Ihre Kollegen sind Profis. Vertrauen Sie auf ihre Professionalität. Wenn Sie nur ein paar Kommentare haben, sagen Sie "X, Y und Z sind geringfügige Änderungen, die die Dinge verbessern würden, aber ich stimme dieser Änderung vorerst zu."

Loben Sie nach Möglichkeit aufrichtig

Aber nur, wenn es wirklich aufrichtig ist. Du willst nicht die Person sein, die nur Schlechtes zu sagen hat. Diese Person sucht nur nach Gründen, andere Leute niederzuschießen. Du möchtest Mentor werden.

Ich bin in genau einem Punkt anderer Meinung: „Inklusive Sprache verwenden“ . Dies gibt dem überprüften Code im Grunde die Möglichkeit, abgeschoben zu werden. "Sicher, jemand, der irgendwann mehr Freizeit hat, als ich gerade habe, kann an dieser Tech-Schuld arbeiten."
@AthomSfere Letztendlich hängt die Entscheidung, es jetzt oder später zu tun, davon ab, ob der Codeprüfer eine Überarbeitung akzeptiert oder erfordert. Wenn Ihre Codeüberprüfer nicht befugt sind, Änderungen abzulehnen, kann alles verschoben werden.
Und obwohl ich zustimme, bedeutet „Nicht aufschieben der Genehmigung wegen trivialer Änderungen“, dass Sie nicht im Unklaren darüber sein können, wer die Änderungen wann vornehmen muss. *Diese Schleife ist möglicherweise nicht terminierend. Bitte aktualisieren Sie den Code, damit ich den PR genehmigen kann" ist viel, viel besser als "Jemand muss diese potenziell nicht terminierende Schleife reparieren". Das erste Szenario sagt 1) Wer muss die Änderung vornehmen und 2) Was bedeutet es konkret? Die Aufgabe ist noch nicht abgeschlossen Natürlich, wie ich es in der Vergangenheit getan habe: Öffnen Sie Tech Debt Stories, wenn sie irgendwann von jemandem erledigt werden müssen.

Sie versuchen, eine eingebettete Vorgehensweise zu ändern, die wahrscheinlich aufgrund der Anreizstruktur des Unternehmens entstanden ist

Mein Unternehmen hat technisch gesehen Codierungsstandards, Codeüberprüfungen, Dokumentationspläne usw. Ob jemand sie befolgt, hängt davon ab, wie nahe wir dem Ende des Sprints sind. Bis zum Ende der ersten 5 Tage werden Unit-Tests, Code-Reviews und SQLs in ihren Tickets organisiert. Bei der verbleibenden Sprintzeit wird es brenzlig. Fehler im Frontend sind im Allgemeinen von größerer Bedeutung als Fehler im Backend.

Warum das? Die Entscheidungsträger sind nicht technisch versiert und priorisieren im Allgemeinen das, was der Kunde sieht und die Funktionen aus der Tür kommen. Wir haben auch externe Kunden, die wir zufriedenstellen müssen. Ich hatte noch keine formelle Leistungsbeurteilung, aber das Unternehmensziel in Bezug auf Software scheint sehr darin zu bestehen, Funktionen in die Produktion zu bringen. Wir haben alle Arten von älterer Software, die ständige Unterstützung durch Softwareentwickler erfordern, also war dies lange Zeit die Einstellung.

Die Herausforderung besteht darin, dass Dinge wie Codeüberprüfung und -tests keine institutionellen Ziele sind, sondern nur Teamziele und die Institution Vorrang hat.

Unabhängig davon, ob das Management in Ihrem Unternehmen dies erkennt oder nicht, sind es wahrscheinlich diejenigen, die dieses Verhalten fördern, indem sie belohnen, worüber sie sich beschweren und was sie priorisieren.

Es gibt sehr wenig, was Sie dagegen tun können, da Sie hier im Wesentlichen gegen das Management vorgehen.

Ich mag Joes Antwort sehr, aber ich werde auf ein paar sehr alarmierende Anzeichen für mich eingehen.

Ich muss sie ständig daran erinnern, die vereinbarten Code-Standards zu befolgen, Dinge zu dokumentieren und einfach die Verantwortung zu übernehmen.

Wenn Entwickler Codierungsstandards ignorieren, dann nur selten, weil sie schelmisch finster wirken wollen, sondern fast immer, weil die Codierungsstandards für ihren Zweck ungeeignet sind. Was haben Sie getan, um das Problem zu lösen oder zumindest zu versuchen, den Kern des Problems herauszufinden, außer die Leute ständig daran zu erinnern, ihnen zu folgen?

Ich bin nicht in der Lage, sie ausdrücklich darum zu bitten, und daher scheinen sie zu denken, dass ich die Mutter bin, die sie einfach ignorieren können, wenn sie schreit.

Code-Reviews in Teams sind keine Seminare, in denen einer dem anderen sagt, wie es geht. Es ist eine Zusammenarbeit, um eine bessere Qualität zu erreichen, indem eine offene Diskussion zwischen den Personen geführt wird, die an dem Projekt arbeiten. Wenn Sie sich wie eine nörgelnde Mutter verhalten, anstatt sich die Zeit zu nehmen, es zu erklären und mit den anderen Entwicklern einen Konsens zu suchen, warum sollten Sie überrascht sein, dass sie einfach anfangen, Ihr Feedback zu ignorieren?

Wie Sie selbst betonen, sind Sie nicht ihr Chef, Sie sind nur ein weiterer Entwickler, also handeln Sie so und wenn Sie jemanden davon überzeugen wollen, etwas auf Ihre Art zu tun, verwenden Sie Logik, Charme und Vernunft, anstatt den Stock, der Sie nie waren gegeben.

Ich kann die grundlegenden Fehler, die in den Reviews gemacht werden, nicht einfach ignorieren und diesen Code in die Produktion gehen lassen. Ein schlechter Programmierer, aber Senior-Entwickler, kam zu mir, um mich zu bitten, mit Code-Reviews aufzuhören.

Das ist ein Zeichen dafür, dass Sie zumindest teilweise das Problem sind. Ignorieren Sie es nicht, wenn sich ein leitender Mitarbeiter des Teams die Zeit nimmt, Ihnen so ein heftiges Feedback zu geben. Es stimmt eindeutig etwas nicht mit der Art und Weise, wie Sie rüberkommen, zumindest im Kontext dieses Teams.

Ich weiß nicht, ob es die Kultur ist oder ob ich eine Frau in einem männlich dominierten Team bin, die die Reibung verursacht.

Ich weiß nicht, woher du diese Idee überhaupt hast. Nur weil du eine Frau bist, bedeutet das nicht, dass dir deswegen immer wieder weniger als perfekte Interaktionen passieren.

Codequalität spielt keine Rolle. Verkäufe tun. Die Herstellung eines neuen Produkts tut es, weil es den Umsatz ankurbelt. Schreiben Sie den Code hundertmal neu, und Ihre Verkäufe werden nicht steigen.


Wenn Sie diese Idee im Hinterkopf gefeiert haben, müssen Sie auch wissen, dass Codequalität einen Wert hat. Dadurch können neue Produkte schneller entwickelt und Fehler früher behoben werden. Eine gewisse Codequalität ist also nützlich.

Ich argumentiere, dass die Menge an Codequalität so sein sollte, dass die Zeit, die für die Codequalität aufgewendet wurde, etwas weniger war als die Zeit, die beim Hinzufügen neuer Funktionen eingespart wurde (aufgrund der verbesserten Codequalität).


In einem kleinen Unternehmen müssen Sie ein wenig darüber nachdenken, ob Ihre Argumente zur Codequalität dem Wachstum schaden. Einer kleinen, aber schlechten Codebasis können ziemlich schnell Dinge hinzugefügt werden, bis sie einen Punkt erreicht, an dem sie nicht mehr klein ist und Dinge nicht mehr schnell hinzugefügt werden. An diesem Punkt kommt es auf die Codequalität an – denn die Codequalität hat ein eindeutiges Ergebnis (weniger Zeit zum Hinzufügen neuer Dinge).

Aber bis zu diesem Zeitpunkt, während die Codebasis relativ klein ist, trägt die Codequalität nur zu einem marginalen Wert bei. Um Ihre Argumente zur Codequalität vorzubringen, sollten Sie sich überlegen, welche Geschäftsziele/Bugs jetzt und im nächsten Jahr am dringendsten sind, und in diesen Fällen für eine bestimmte Codequalität (Wiederverwendung, Benennung, Klarheit usw.) argumentieren Bereiche. Sie können dies dann Ihrem Vorgesetzten vorlegen - "Hey, die xyz-Komponente wird als das große Ding für unser Produkt angesehen, wir sollten jetzt proaktiv sein, um sie sauber zu halten, damit sie später keine Probleme verursacht".

Sie werden nicht in der Lage sein, überall Codequalität zu erstellen, aber wenn die Idee einsinkt, wird es einfacher zu warten.


Es wird immer schlampigen Code geben (und deshalb sind vollständige Integrationstests so nützlich - weil Sie ihn bereinigen können), aber er kann im Allgemeinen bereinigt werden. Code-Qualitätsargumente sollten im Kontext der Umsatzsteigerung bestehen, ansonsten sind sie rein theoretischer Natur.

„Die Qualität des Codes spielt keine Rolle. Der Verkauf zählt. Ein neues Produkt zu entwickeln, tut es, weil es den Verkauf ankurbelt.“ Sie werden herabgestuft, weil wir hauptsächlich Entwickler sind, aber das ist wirklich, wie das Management diese Dinge im Allgemeinen betrachtet.
@MatthewGaiser Ja, ich weiß, ich bin auch ein Entwickler - und bis ich anfing, meine eigene Firma zu leiten, hatte ich nicht wirklich die gleiche Einstellung. Letztendlich können Sie keine Gehaltsabrechnung machen, ohne Verkäufe zu tätigen. Verkäufe sind wichtig , da Entwickler wirklich nicht gerne umsonst arbeiten.
@MatthewGaiser Sie werden herabgestuft, weil sie mit einer schlechten absoluten Aussage beginnen. Die Aufgabe des Entwicklers, das Management davon zu überzeugen, dass technische Schulden eine reale Sache mit Konsequenzen sind. Es gibt viele Geschichten von Softwareunternehmen, die nach ein oder zwei Jahren plötzlich an ihre Grenzen stoßen, wenn ihr Entwicklerteam von 10 auf 50 anwächst oder ihre Benutzerbasis über Nacht explodiert. Wenn bharal nur auf den zweiten Punkt starrte (achten Sie darauf, wo und warum Sie Zeit mit der Codewartung verbringen, insbesondere als kleines Unternehmen), würde niemand ablehnen.
Ich bin auch ein Entwickler und habe die Wahrheit dieser Aussage erkannt, also habe ich positiv gestimmt.