Antwort auf einen Bugfix-Vorschlag, der angeblich nur Bugs meldet (keine Lösungen vorschlägt). Ist das typisch? [geschlossen]

Ich bin ein neuer Mitarbeiter bei einem Softwareunternehmen und habe eine E-Mail gesehen, die von einem Systembesitzer an einen Kollegen gesendet wurde, aber mit dem gesamten Entwicklerteam auf CC gesetzt wurde, und es machte mir ein wenig Sorgen um die Umwelt. Ich habe vor kurzem das College beendet, also ist dies mein erster Job, also ... ist das in Technologieunternehmen normal?


An die Mailliste des Entwicklerteams von Rick und Cc'd gesendet:

Hallo Rick,

Ich habe valgrind auf dem SpaceShip-Proj ausgeführt und ich glaube, ich habe ein Speicherleck in einigen Plattformcodes gefunden. Ich glaube, ich habe die Quelle gefunden und das Problem kann mit dem folgenden Unterschied behoben werden:

--- a/spaceship/DoBattle.cpp  
+++ b/spaceship/DoBattle.cpp
 vector<part> parts = getSpaceShipParts();  
+shared_ptr<SpaceShip> p = new SpaceShip(parts);  
-SpaceShip * p = new SpaceShip(parts);
 engageInBattle(p, enemy);

Ich habe Valgrind mit der Änderung erneut ausgeführt, und es scheint das Problem zu beheben!

Danke
Morty

Eine ziemlich vernünftige E-Mail, dachte ich, die beantwortet wurde mit:

Hallo Morty,

Vielen Dank, aber geben Sie in Zukunft bitte nur die Informationen dazu an, wie ein Problem reproduziert werden kann, nicht einen Lösungsvorschlag. Ich lese keine Lösungsvorschläge, weil sie mich zu einer bestimmten Vorstellung davon prädisponieren, was das eigentliche Problem ist und was die Lösung sein sollte. Ich gehe besser frisch rein und entscheide selbst.

In Fällen, in denen ich versehentlich ein Diff lese, bevor ich merke, was es ist, verbringe ich absichtlich mindestens mehrere Tage damit, es zu vergessen, damit ich es frisch angehen kann. Wenn Sie mir also ein Diff geben, wird es wahrscheinlicher, dass ich das Problem für einige Zeit nicht einmal anschaue.

Danke schön,

- Rick

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
Es ist sehr ungewöhnlich, diese Art der Kommunikation zu haben, aber leider ist es üblich, dass jedes Unternehmen / Team ein Mitglied hat, das nicht wirklich in einem Team funktioniert oder ein Besserwisser ist und so weiter. Solange dies bei den meisten Ihrer Kollegen nicht der Fall ist, versuchen Sie einfach, diese eine Person zu meiden, und es sollte Ihnen gut gehen.

Antworten (11)

Nein, das ist nicht üblich. Sie sind jedoch auf eine ziemlich häufige Bestie gestoßen, den elitären Super-Entitled-Entwickler. Er ist seiner Meinung nach schlauer als alle anderen und hat aus dem gleichen Grund das Recht, unhöflich zu sein. Er hat eine Axt gegen Morty zu schleifen. Vermeiden Sie ihn, wenn möglich, und gehen Sie weiter.

Während er sicherlich das Recht hat, das Problem selbst untersuchen zu wollen, ist eine zivilisierte Antwort "Danke für den Vorschlag, ich werde mich darum kümmern." Es mag bereits böses Blut zwischen den beiden geben oder er kann einfach wild sein, aber in beiden Fällen ist dieses Verhalten zwar in der Technik nicht unbekannt, aber nicht akzeptabel oder „üblich“.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
Die kleinste Lösung, die ich hinzufügen möchte, ist, dass OP Mortys Freund ist, nicht unbedingt Morty.
Das ist keine Lösung, der Rick hat in diesem Beispiel ein Problem mit dem Morty. Mortys Freund ist der OP, aber nur ein Zuschauer.

Als Entwickler finde ich den ersten Bericht sehr sehr nützlich. Keine lange Erklärung, keine lange Valgrind-Spur zum Lesen. Mit diesem Patch konnte ich sofort sehen, was das Problem ist, und wenn ich kürzlich an diesem Code gearbeitet hätte, würde ich wahrscheinlich wissen, ob es richtig ist oder nicht, sogar ohne den Code zu überprüfen. Also würde ich einfach antworten "Danke, dass Sie ihn gefunden haben" oder "Danke, dieser Zeiger sollte nicht geteilt werden, aber ich weiß, wie das Problem behoben werden sollte, jetzt, wo Sie mich darauf aufmerksam gemacht haben" oder so ähnlich.

Auch erkenne ich in der Botschaft kein Überlegenheitsgefühl.

Jetzt kann es schlecht sein, alle zu CC'n. Der Code könnte etwas sein, von dem auch andere wissen, also wenn die CC-Empfängerliste kurz genug ist, ist das gut. Die Mail ist kurz genug, und jeder kann anhand des Patches sofort sehen, ob er interessiert sein sollte oder nicht, was nur wenig Zeit verschwendet. Wenn es jedoch Leute gibt, die nicht mit dieser Quellcodebasis in CC zu tun haben, dann war es unangemessen.

Ein weiteres Problem ist, ob die Person ihre Zeit damit verbringen sollte, ein Problem wie dieses zu debuggen. Wenn sie jedoch ihre eigenen Ziele nicht verfehlen, ist es im Allgemeinen eine sehr, sehr wertvolle Eigenschaft, die Verantwortung für die gesamte Software zu übernehmen. Es zeigt Enthusiasmus und Fürsorge, was wirklich selten ist. Diese Dinge können zu weit gehen, aber es kommt viel häufiger vor, dass Teamkollegen sich nicht weniger um einen Fehler im Code eines anderen kümmern, es sei denn, er betrifft sie direkt.


Um die Titelfrage zu beantworten. Mortys Ton, wie er in Frage gestellt wird, ist in meinen Augen professionell und normal. Ricks Ton ist... leider auch nicht so ungewöhnlich, aber schade. Wir alle haben jedoch schlechte Tage, daher werde ich keine einzige anonymisierte Nachricht weiter analysieren. Es könnte ein schlechtes Zeichen sein (und sieht so aus, TBH), oder es könnte Teil einer recht anständigen Arbeitskultur sein, an die Sie sich nur gewöhnen müssen.

„Jeden zu CC zu setzen, könnte schlecht sein oder auch nicht“ – falls sie wüssten, wie Rick sich in diesen Situationen verhält, scheint es der geeignetste Weg zu sein, alle zu CC zu stellen, um sicherzustellen, dass das Problem tatsächlich behoben wird.

Ich weiß, dass die Frage bereits beantwortet wurde, und ich stimme der akzeptierten Antwort zu, aber ich wollte diese nur mit weiteren Informationen erweitern.

Was Sie hier gesehen haben, ist ein potenzielles XY-Problem . XY-Probleme sind meiner Meinung nach etwas, das jeder Problemlöser (nicht nur Programmierer) kennen und vermeiden sollte.

Das Prinzip eines XY-Problems ist ganz einfach:

  • X ist ein Problem und muss behoben werden.
  • Y ist eine Lösung, aber nicht die beste Lösung. Unabhängig davon wird es gewählt (entweder aus Faulheit oder aus Unverständnis, dass es eine bessere Lösung gibt)
  • Wenn bei der Implementierung von Y ein Problem auftritt, widmen die Leute Zeit dem Versuch, Y zum Laufen zu bringen, anstatt tatsächlich zu suchen, ob es eine Z-Lösung gibt, die besser passt.

Als klares Beispiel:

  • X = Ich möchte diese Excel-Daten sortieren.
  • Y = Ich kann eine Anwendung schreiben, um die Daten zu sortieren und die Datei zu speichern.
  • Z = Ich sollte lernen, wie man die Sortierfunktion von Excel verwendet.

Dies ist im Wesentlichen das, was in Mortys E-Mail passiert ist. Rick ist nicht in der Lage, die Anfrage als Y oder Z zu kennzeichnen, weil Morty X nicht erklärt. X zu erklären ist wichtiger als die Y/Z-Lösung anzubieten, da Rick in der Lage ist, Z zu finden, wenn er X kennt, aber er kann' Ich errate X nicht aus dem Nichts.

Das ist das X-Problem:

ein Speicherleck in einigen Plattformcodes

Beachten Sie, dass es ziemlich vage ist. Was war das Problem? Wo ist es passiert? Wann ist es aufgetreten? War es ein Grenzfall?

Dann schlägt Morty eine Y-Lösung vor. Da wir die Besonderheiten von X nicht kennen, haben wir keine Möglichkeit abzuschätzen, ob Y eine geeignete Lösung für X ist.

Deshalb wehrt sich Rick dagegen. Er wird gebeten, etwas zu ändern (und tatsächlich die Verantwortung dafür zu übernehmen, etwas geändert zu haben) , ohne eine Wahl zu haben . Morty hat Ricks Verantwortung (das Schreiben von gutem Code) effektiv untergraben und ersetzt sie durch eine Bitte um blindes Vertrauen, dass der angebotene Code angemessen und gut ist.


Stellen Sie sich das so vor: Sie sind ein Polizist. Ein Mann kommt auf dich zu und sagt: "Ich brauche dich, um diesen Mann zu verhaften" (Y).

Der Polizeibeamte sollte dem nicht nachkommen, da er nicht persönlich bestätigen kann, dass die Festnahme des Mannes gerechtfertigt ist.

Hätte der Mann jedoch gesagt „dieser Mann hat gerade jemanden kaltblütig getötet“, dann kann der Polizist das Problem tatsächlich verstehen und selbst über die Lösung (Festnahme des Mannes) entscheiden.

Das ist im Grunde das, was Morty falsch gemacht hat. Ich denke, dass Rick es freundlicher hätte formulieren können (wenn dies Interpersonal.SE wäre, würde ich definitiv einige von Ricks Sätzen umformulieren), aber seine Bitte ist berechtigt.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
@JaneS-Kommentare werden jedoch korrekt verwendet, um auf Probleme in Antworten hinzuweisen.
Während ich denke, dass die Erwähnung des XY-Problems relevant ist, ob Ricks Anfrage hier vernünftig war, habe ich nicht das Gefühl, dass dies eine Antwort auf die Frage ist, wie Sie sie geschrieben haben. Das OP fragte, ob Ricks Ton in der Branche normal sei. Sie könnten Ihre Antwort neu formatieren, um sich darauf zu konzentrieren, wie Rick damit umgegangen ist, obwohl der Kern seiner Antwort gültig ist.
@BloodGain You might consider reformatting your answer to focus on how Rick handled it, although the gist of his response is valid.Das ist genau das, was der letzte Satz der Antwort anspricht.

Unabhängig davon, ob es zwischen den beiden zu Spannungen, einem allgemeinen Kommunikationsproblem oder dem Standardton bei Ihnen kommt, möchte ich mich auf Ihre Frage konzentrieren:

Ist dieser Ton an einem Tech-Arbeitsplatz ungewöhnlich?

Nein , dieser Ton ist nicht ganz ungewöhnlich.

  1. Menschen in der Branche sind an syntaktische Programmiersprachen und genaue technische Spezifikationen gewöhnt und neigen dazu, manchmal den Ton in ihrer Kommunikation zu vergessen. Dies ist oft kein Problem, solange keine Außenstehenden in die Kommunikation involviert sind. Gewöhnen Sie sich an viele sachliche Botschaften.

  2. Es ist ein Klischee, aber ja, es gibt auch diese Nerds da draußen, die einfach nur schlechte soziale Fähigkeiten haben, also lerne besser, mit ihnen umzugehen und nimm es nicht persönlich.

  3. Für viele Programmierer ist "ihr" Code ihr Baby. Auf einige unbestreitbare Fehler hingewiesen zu werden, ist eine Sache - daran herumzuspielen kann nur einige Abwehrmechanismen auslösen.

Das heißt, es kann besser gemacht werden. Als Faustregel gilt, um solche Probleme zu vermeiden:

  • Öffentliche loben, Private kritisieren.
  • Wenn Sie Probleme mit jemandem haben, verwenden Sie dafür auf keinen Fall E-Mail!
  • Wenn Sie einen Fehler finden, melden Sie ihn über einen Standardmechanismus, der vom Team akzeptiert wird.
  • Erledige nicht die Arbeit von jemand anderem, es sei denn, du wirst darum gebeten.
Ich mag alle Stichpunkte. Die ersten beiden sind gute allgemeine Richtlinien im Leben.
Beim Baby kommt es darauf an, ob die Person Erfahrung mit Open Source hat.
Die Beschwerde über den Mangel an Reproduktion ist IMO gültig. Aber zu verlangen, dass keine Lösung gegeben wird, ist ziemlich verrückt. Nicht in der Lage zu sein, die eines anderen zu ignorieren, bedeutet jedoch, dass Sie Ihre eigenen irreführenden Gedanken nicht ignorieren können. Und wenn nicht, dann viel Glück beim Programmieren. Sie müssten in eine Richtung beginnen und auf unbestimmte Zeit in die gleiche Richtung gehen. Oder den bestehenden Code umgestalten? Sie müssen verstehen, was die ursprüngliche Idee war, und sich dann in das neue Paradigma einfügen, das Sie anwenden möchten.
Ricks Erklärung, dass er den Prozess absichtlich verzögern wird, nominell, damit er seinen empfindlichen Verstand von Mortys korrumpierender Idee befreien kann, ist gereizt und völlig inakzeptabel und muss behandelt werden. Wenn Morty zu weit geht (seine Fähigkeiten und/oder sein Umfang), wäre eine ausgewogenere Antwort "Danke, Morty, und Ihr schneller Vorschlag könnte Teil der Lösung sein, aber ich muss das Problem genauer untersuchen, um sicherzugehen das ist die beste Herangehensweise. Können Sie diesen Fehler in der Zwischenzeit bitte in unserem Bug-Tracker dokumentieren? Es ist wirklich wichtig, alle Fehler darin aufzunehmen!“
@CCTO (und andere Kommentatoren) Dir ist klar, dass OP nicht gefragt hat, wie man damit umgeht, ja?

Sein Gefühl hat einen gewissen Wert. Ich kenne viele Fälle, in denen meine Vermutung über eine Grundursache jemanden auf den falschen Weg geführt und seine Zeit verschwendet hat.

Bei den meisten Problemen hat jeder Mensch bestimmte Ahnungen, die ihm einfach auffallen. Ich denke, es lohnt sich, zu versuchen, diese Kraft zu nutzen. Wenn ich Hilfe bei einem Fehler brauche, an dem ich feststecke, versuche ich zu vermeiden, ihnen meine eigenen Ahnungen aufzuzwingen, damit ihre vielleicht neuartig und produktiv sind.

Aber so wie er es ausdrückte... war er ein totales Arschloch.

Manchmal erhalte ich Webtickets mit CSS-Korrekturvorschlägen für visuelle Fehler. Das Problem ist, dass die Selektoren normalerweise sehr generisch sind (oft nur auf Tag-Namen oder einer Klasse basieren) und mehrere andere Bereiche der Site beschädigen würden. Trotzdem mag ich den Vorschlag, weil er mir normalerweise einige Zeit spart, um das genaue Problem zu finden, dann kann ich es einfach in etwas produktionsreifes benennen ...
@dandavis Es ist nicht ihre Aufgabe, das Problem zu lösen. Es ist Ihre Aufgabe. Um ein Problem zu lösen, muss man wissen, was das Problem ist und was die Probleme zur Lösung sind :P
Könnten Sie den unhöflichen Teil erweitern? Diese Antwort ist großartig, da sie beide Seiten wiegt, aber sie ist etwas ungleichmäßig.
Ich muss respektvoll widersprechen. Bei der technischen Fehlersuche sind mehr Informationen immer wertvoller als weniger. Als zugewiesener Problemlöser ist es die Aufgabe des Entwicklers, fehlerhafte Informationen des Kunden gegenüber wertvollen Details zu identifizieren. Einige Details von der Problembehandlung fernzuhalten, weil Sie sie möglicherweise auf den falschen Weg bringen könnten, ist für mich eine lächerliche Idee, und ich würde jeden meiner Leute tadeln, der einem Kunden auf diese Weise geantwortet hat.
Technisch, aber kein Softwareentwickler hier, und ich stimme @DanK zu. Die einzige sehr geringfügige Änderung, die ich am ursprünglichen Bericht vornehmen würde, besteht darin, zuerst die Details (vielleicht mit einigen weiteren Benchmarks) und den Unterschied am Ende anzugeben. Das würde Rick die Möglichkeit geben, den Bericht ohne das Diff zu lesen, aber (meiner Meinung nach als jemand, der an wissenschaftliche Arbeiten einschließlich Code-Auflistungen gewöhnt ist) das Diff aus dem Körper herauszuhalten, macht das Lesen klarer.
Können Sie bitte näher erläutern, was hier nicht höflich ist? es scheint mir völlig frei von Beleidigungen, ich möchte es verstehen
@SargeBorsch - die Forderung, keine gewöhnlichen, trivialen Informationen aufzunehmen, ist in einem Gemeinschaftsprojekt völlig inakzeptabel. Und die erklärte Absicht, Morty zu bestrafen, indem er das Projekt absichtlich verzögert, verdoppelt das nur. Es ist so geschrieben, dass es gut aussieht, aber die Bedeutung ist offenkundig und unangemessen. Dass der Problembericht zwei diff-Zeilen enthält, ist kein Problem - es kann helfen oder auch nicht, aber es ist kein Problem. Nun, wenn Morty Valgrind nicht ausführen soll und gewohnheitsmäßig verwirrte Dinge meldet , könnte die Organisation etwas damit zu tun haben, aber das ist nicht der Weg.
@SargeBorsch Viel zu viele Leute verwechseln Direktheit und Prägnanz mit Unhöflichkeit. Fürs Protokoll, das einzige Problem, das ich mit der E-Mail habe, ist, dass der Absender es für notwendig hielt, alle auf Cc zu setzen.
@DanK Es hängt ganz von der Art des Problems ab. Ich befürworte diesen Ansatz nicht allgemein, sondern nur als eines der verfügbaren Tools in der Box. Wenn ich bei einer Untersuchung zu einem Kollegen um Hilfe gehe, weiß ich oft, dass ich wahrscheinlich einem Ablenkungsmanöver hinterherjage und meine Zeit verschwende. Ich möchte von einer frischen Perspektive profitieren.
Ich stimme DanK darin zu, es ist wichtig, so viele Informationen wie möglich aufzunehmen. Selbst wenn sie falsch liegen, was die Grundursache ist, könnte es nützlich sein zu wissen, warum sie denken, dass es die Grundursache ist, es kann zu mehr Informationen führen.
@LordFarquaad Dies ist kein polarisiertes Teamspiel. Ich schlage keinen kostenlosen Informationsaustausch vor. Menschen sind leicht zu überzeugende Menschen. Es ist kein bewusster Prozess, es geht also nicht darum, „ein guter Informatiker“ zu sein.

Natürlich stimmt nicht jeder damit überein, aber meiner Meinung nach ist dies eine normale Antwort, nimm es nicht persönlich .

Es ist eine leicht verständliche E-Mail, er begründet seine Gründe, warum er es vorzieht, Ihre Lösung nicht zu hören (nicht weil es Ihre Lösung ist, sondern weil er von Anfang an eine leere Tafel haben möchte).

Es ist nicht persönlich dir gegenüber oder beleidigend oder überhaupt untergrabend, es ist eine Erklärung. Für manche Leute ist es ein bisschen direkt, aber das ist oft eine Eigenart von Programmierern, direkt und (zu) sachlich zu sein. Sie könnten diese ganze E-Mail in einem normalen Tonfall lesen, in der er seine bevorzugte Methode erklärt. Nur weil Sie kein Fan davon sind, heißt das nicht, dass es eine schlechte Praxis ist, Sie werden vielen Menschen begegnen, die anders arbeiten als Sie.

Ich stimme zu, dass es etwas höflicher formuliert werden könnte, aber noch einmal, ein Programmierer sagt oft nur, was er meint, ohne all diese aufgeladenen Interpretationen (was keine Entschuldigung ist, aber es könnte eine Erklärung sein).

Es ist sein Job, Probleme zu lösen, nicht deiner. Sie haben nur Zeit für etwas aufgewendet, das Sie anderweitig hätten nutzen können. Verstehen Sie mich nicht falsch, das Üben von Bugfixing ist wichtig! Aber studieren Sie die angewandte Lösung und vergleichen Sie sie mit Ihrer. Ihre Lösung mag gut erscheinen , aber die Erfahrung könnte Sie eines Besseren belehren.

Kommentare sind nicht für längere Diskussionen gedacht; Diese Konversation wurde in den Chat verschoben .
@Martijin Die Frage besagt eigentlich, dass Morty der "Systembesitzer" ist, dh jemand, der dafür verantwortlich ist, dass dies behoben wird. Die Untersuchung des Problems gehört nicht wirklich zu ihren Aufgaben. Ricks E-Mail ist teilweise eine Erklärung, aber es ist eine Erklärung für eine Forderung, vor der Art von Informationen geschützt zu werden, die normalerweise und nützlich in solchen Situationen ausgetauscht werden, und als solche eine Forderung, die mit einem Gruppenprojekt, egal wie schön es ist, grundsätzlich unvereinbar ist formuliert ist. Rick steht es frei, alternative Ursachen und Lösungen in Betracht zu ziehen, aber die gewöhnlich ausgetauschte Kommunikation nicht zu beenden.

Hier sind beide Seiten schuld.

Morty hätte in der ersten E-Mail nicht alle auf CC setzen sollen. Dadurch brachte er Rick in Verlegenheit, indem er alle auf seinen Fehler hinwies. Ich weiß nicht, ob Morty versucht hat, damit Punkte zu sammeln, oder ob er einfach dumm war. Das Ergebnis war jedoch aus Ricks Sicht dasselbe. Morty wäre besser dran gewesen, diese E-Mail nur an Rick zu senden, damit sie das Problem beheben können, ohne dass jemand schlecht aussehen muss.

Rick, der sich darüber schämte, öffentlich auf seinen Fehler hingewiesen zu werden, reagierte schlecht. Er hätte Morty nicht niedermachen sollen. Er hätte Morty nicht öffentlich dafür kritisieren sollen, dass er versucht hat zu helfen.

Ein Beispiel für einen E-Mail-Austausch sagt nichts über eine Unternehmenskultur aus. Wenn jedoch das Versenden öffentlicher E-Mails, in denen auf die Fehler anderer Personen hingewiesen wird, und das Versenden von E-Mails, in denen Personen mitgeteilt wird, dass sie keine Hilfe anbieten sollten, dort üblich sind, haben Sie eine toxische Kultur.

Leider ist diese Art von toxischer Kultur in Softwareunternehmen in den Vereinigten Staaten weit verbreitet. Es wurde viel darüber geschrieben [1] [2] [3] und gesagt, wie eine bestimmte Art von Software-Ingenieuren andere behandelt, insbesondere Nicht-Software-Ingenieure und Menschen, die nicht in ihr Klischee eines Software-Ingenieurs passen.

Diese Kultur ist nicht der richtige Umgang mit Menschen. Gute Unternehmen, Manager und Mitarbeiter tolerieren diese Art von Kultur nicht. Gute Mitarbeiter weisen sich gegenseitig nicht öffentlich auf Fehler hin und gute Mitarbeiter lehnen Hilfe von anderen nicht ab.

Sie müssen herausfinden, ob dieses Verhalten in der Kultur Ihrer Abteilung und Ihres Unternehmens akzeptabel ist. Wenn Sie denken, dass Sie in einem Unternehmen arbeiten, in dem dies akzeptiert wird, müssen Sie entscheiden, ob Sie glauben, dass Sie die Kultur ändern können und ob es den Aufwand wert ist. Es ist wichtig herauszufinden, ob diese Kultur von der Führung kommt oder nicht. Wenn Führung mit schlechtem Beispiel vorangeht, können Sie nichts tun. Wenn dies die Basiskultur ist, haben Sie eine gewisse Chance, die Menschen davon zu überzeugen, sich zu ändern. Es wird eine lange, harte Arbeit sein, also entscheiden Sie besser, dass es sich lohnt, das Unternehmen zu reparieren.

Vielleicht. Ohne mehr Kontext können wir nicht wirklich wissen, ob die ursprüngliche E-Mail „auf einen Fehler von jemandem hinweist“ oder „den Fortschritt mit den anderen an einer Gruppenarbeit Beteiligten teilt“ – soweit wir wissen, ist dies eine Schlüsselentwicklung in einem Bereich, in dem es einen gegeben hat gemeinsames, aber unspezifisches Gefühl, dass etwas nicht stimmte. Beachten Sie, dass nicht "in Ihrem Code" steht - das könnte eine implizite Annahme sein, aber der Text der E-Mail ist nicht anklagender als ein typisches Bug-Ticket und besser recherchiert als die meisten anderen. Oder es könnte ein sehr normal aussehender Text sein, der in seinem tatsächlichen Kontext stark bewaffnet ist.
Es ist ziemlich üblich, das Team auf CC zu setzen, wenn man mit einem wichtigen Fehler konfrontiert wird.
"Er brachte Rick in Verlegenheit, indem er alle auf seinen Fehler hinwies" Software enthält Fehler. Das wissen und akzeptieren alle Beteiligten. Ich kann garantieren, dass niemand unter der Illusion operierte, Rick sei ein unfehlbarer Programmiergott. Sollten sie auch ihren Bugtracker löschen, weil er subversiv eine permanente Aufzeichnung von Ricks persönlichen Fehlern ist? Ich werde nicht dafür bezahlt, zerbrechlichen Egos nachzugeben. Ich werde dafür bezahlt, gute Software zu entwickeln.
@Michael „Ich werde nicht dafür bezahlt, zerbrechlichen Egos nachzugeben.“ Das ist die Art von Dingen, die viele Leute sagen, um zu rechtfertigen, ein Arsch zu sein.
@BenMz Richtig - ich bin sicher, Rick könnte versuchen, diese Behauptung aufzustellen, nachdem er hier einige Antworten gelesen hat - aber ich denke, eine solche Person würde Höflichkeit mit Anbiederung falsch identifizieren. Es ist nicht das gleiche. Ich bin bei der Arbeit immer höflich, aber ich sollte nicht in der Nähe einer Person auf Eierschalen herumlaufen müssen, weil sie nicht damit umgehen können, dass das Entwicklerteam per E-Mail wegen eines leicht gemachten Fehlers auf CC gesetzt wird.
Diese Antwort setzt die emotionalen Reaktionen der betreffenden Personen voraus, wenn nichts davon explizit oder implizit impliziert wurde.
@Allan Sie können den Ton der Kommunikation am Arbeitsplatz nicht beurteilen, ohne die emotionale Reaktion zu berücksichtigen, die sie wahrscheinlich hervorrufen.
Weißt du , dass es Rick peinlich war? Peinlichkeit ist eine selbstbewertende Emotion (auch bekannt als persönlich). Es gab keine persönlichen Angriffe. Sie können sagen, dass der Ton der E-Mail "harsch" oder "stumpf" oder was auch immer ist, aber Sie können nicht die emotionale Reaktion vermuten, weil jeder anders reagieren wird.
@Allan Ich nehme an, Rick ist verlegen. Nach bestem Wissen und Gewissen Annahmen darüber zu treffen, wie Menschen reagieren werden, entscheidet darüber, wie wir mit ihnen kommunizieren.
Eine Folgefrage wäre: „Was lässt Sie in diesem E-Mail-Austausch annehmen , dass es Rick peinlich war?“ Um das zu erweitern, was ich zuvor gesagt habe, es gibt kein bisschen eines persönlichen Angriffs, der „Peinlichkeit“ rechtfertigen würde. Außerdem schlägt Rick nicht auf Morty ein; es sagt ihm, was er braucht .

Normal ist ziemlich subjektiv, zumal Sie keine Ahnung von der Geschichte dieses Arbeitsplatzes haben.

Entweder hat Rick schreckliche zwischenmenschliche Fähigkeiten oder es gibt böses Blut zwischen diesen beiden Menschen.

Es ist möglich, dass Morty absichtlich eine "vernünftige" E-Mail erstellt hat, in der Hoffnung, Rick auszulösen.

Da Sie neu sind, müssen Sie beurteilen, ob sich dieses toxische Verhalten auch auf andere ausgebreitet hat oder ob es sich um eine eingedämmte Situation handelt.

Was auch immer passiert, lass es nur nicht in deine Persönlichkeit übergreifen.

Ich schreibe dies aus der Perspektive eines Managers mit Erfahrung, die mehrere Aspekte dieser Art von Szenario abdeckt.

ist das normal in technologieunternehmen?

Dies ist für jedes Unternehmen in praktisch jeder Branche völlig normal, nicht nur im Technologiebereich.

Im Großen und Ganzen die E-Mail, die an alle Mitglieder eines Entwicklerteams gesendet wurde, die Folgendes beinhaltet:

  • wies auf einen vermuteten Fehler hin ("Ich glaube, ich habe ein Speicherleck gefunden...")
  • gab an, dass eine angebliche Lösung gefunden wurde ("Ich glaube, ich habe die Quelle und das Problem gefunden ...")
  • präsentierte eine Wäscheliste mit Korrekturen, die implementiert werden sollten

Um dies zu verallgemeinern, was hier passiert, ist, dass Rick von Morty eine Anweisung gegeben wird, die zuerst eine Rechtfertigung der Anweisung enthält und dann die Einzelheiten dieser Anweisung aufführt.

Es verkompliziert die Angelegenheit weiter, da die Anweisung in einer Gruppenumgebung gegeben wurde (cc an alle Mitglieder des Teams).

Ricks und Mortys organisatorische Beziehung

Wir kennen die Beziehung in Bezug auf die beiden Personen nicht. Es kann jedoch allgemein als eine von drei Möglichkeiten zusammengefasst werden:

  • Rick ist älter als Morty
  • Morty ist älter als Rick
  • Rick und Morty sind gleichberechtigt

Soll Rick Anweisungen von Morty entgegennehmen?

  • Nein? Dann ist Rick berechtigt, zurückzudrängen
  • Ja? Dann ist es nicht nötig, alle zu CC. Rick hat immer noch das Recht, Morty zu sagen, wie er seinen Job am besten ausführt.

Diese Situation wäre nicht anders, wenn es so wäre....

  • Medizinisch. Dr. Oz teilt Dr. No mit, dass er Dr. Nos Patient diagnostiziert hat und X, Y und Z durchführen soll, ohne Dr. No die Symptome mitzuteilen.
  • Automobil. Ingenieur 1 teilt Ingenieur 2 mit, dass ein Problem im Aufhängungsdesign von Ingenieur 2 gefunden wurde und die Lösung darin besteht, Lasche A an Schlitz B zu schweißen, ohne die Testdaten bereitzustellen, um das Problem aufzuzeigen
  • Technischer Support - Tech 1 teilt Tech 2 mit, dass es ein Problem mit dem System von Tech 2 gibt und die Lösung darin besteht, die Patches A, B und C zu implementieren, ohne die Fehlermeldungen zu liefern, die auf das Problem hinweisen.

TL;DR

Unterm Strich sagt die Person, die für die eigentliche Reparatur verantwortlich ist, der Person, was sie braucht, um die Arbeit richtig zu erledigen. Die einzige Person, die möglicherweise "aus der Reihe tanzt", ist Morty für das passiv-aggressive Verhalten, alle auf CC zu setzen.

Das passiert jeden Tag in jeder Branche. Es ist nichts Neues oder Ungewöhnliches.

Kommunikation ist extrem wichtig.... In meinem Team laufen 90 % der Kommunikation über Slack/Jira/Github, die jeder sehen kann. Für eine Lösung, die das Produkt eines Teams betrifft, sollten Sie meiner Meinung nach immer das gesamte Team auf CC setzen (oder es wahrscheinlich einfach an das gesamte Team senden). Zum eigentlichen Problem in der E-Mail: Ein Problem wurde gefunden, eine Lösung gefunden. Denken Sie jetzt, dass der Lead seine Zeit gut nutzt, indem er Problem und Lösung verwirft und versucht, zu überprüfen, ob ein Problem existiert, und dann eine Lösung findet, die möglicherweise besser ist oder nicht? damit sagst du dem Typen, dass seine Arbeit keine Rolle spielt...
@xyious - Ich gehe davon aus, dass Sie aus den Gründen in Ihrer Argumentation abgelehnt haben. Interessant. Die Frage ist nicht, wer im Recht ist, die Frage ist, ob der Ton ungewöhnlich ist . Unabhängig davon, welche Präferenzen die Person hat, die für die Änderung verantwortlich ist, ist ihre Präferenz. Zeitraum.
@Allan - ein zweizeiliger Unterschied ist keine "Wäscheliste mit zu implementierenden Korrekturen" - woher Sie das auch bekommen, es ist nicht Teil der Situation der Frage. In Bezug auf die Rollen von Morty und Rick wurde ausdrücklich erklärt, dass Morty der "Systembesitzer" ist, und aus dem Kontext geht hervor, dass Rick der aktuelle Gebietsguru für den fraglichen Code ist.
Also, @ChrisStratton, du hast das "Diff" wörtlich genommen? SMDH. Lassen Sie mich eine Frage stellen. Glauben Sie, ein behandelnder Arzt sagt dem Spezialisten, was er tun soll, oder sagt er ihm die Symptome und wartet auf eine Bestätigung?
Ich habe die Skala des Diffs wörtlich genommen und bin ziemlich zuversichtlich, dass sie genau ist. Der springende Punkt bei der Frage ist, dass Rick wegen einer extrem normalen, gewöhnlichen und richtigen Aktion einen Anfall bekam. Sie scheinen stattdessen auf eine ganz andere Situation reagieren zu wollen als die, nach der eigentlich gefragt wurde, was sich auch in Ihren Spekulationen über Beziehungen ausdrückt, die nicht zu Mortys ausdrücklich erklärter Position passen.
Ich habe das Ausmaß des Unterschieds wörtlich genommen ... Ein Beitrag, der "Rick and Morty" als Verschleierung der Namen von Personen in einer E-Mail verwendet, die wohl weniger Zeilen hat als die Anzahl der Personen auf der CC-Liste, und Sie nehmen das "ernst" . ." Sie sind kein Management und das merkt man.
Es ist ziemlich deutlich geworden, dass ein Großteil des Problems in Ihrem Beitrag darauf zurückzuführen ist, dass Sie darauf bestehen, auf eine andere Situation als die tatsächlich beschriebene zu reagieren . Wie jeder erfahrene Entwickler betonen würde, entspricht der angezeigte Unterschied ungefähr dem Umfang einer Lösung für diese Art von Problem , die oft tatsächlich wäre.
--- a/spaceship/DoBattle.cpp  
+++ b/spaceship/DoBattle.cpp  
 vector<part> parts = getSpaceShipParts();  
+shared_ptr<SpaceShip> p = new SpaceShip(parts);  
-SpaceShip * p = new SpaceShip(parts);  
 engageInBattle(p, enemy); 

Leider behebt diese Änderung den Fehler (vorzutäuschen, dass der Valgrind-Test angemessen ist), aber sie hat etwas Unerwünschtes eingeführt, einen Kampf um die Code-Philosophie. Wenn Sie kein regelmäßiger Mitwirkender sind, lassen Sie sich nicht auf Code-Philosophiekämpfe ein.

Um den Philosophiekampf zu vermeiden, hätte dieser stattdessen gesendet werden sollen. Ja, es ist objektiv schlechter, aber es entspricht dem Stil des bereits vorhandenen Codes:

--- a/spaceship/DoBattle.cpp  
+++ b/spaceship/DoBattle.cpp  
 SpaceShip * p = new SpaceShip(parts);  
 engageInBattle(p, enemy); 
+delete p;

Aber bei dieser Antwort des Entwicklers nehme ich an, dass ihm das auch nicht gefallen hätte. Ich höre diesen Ton viel zu oft, selbst von Leuten, die es besser wissen müssten. Es ist nicht normal, aber es reicht aus, dass man es oft hört. Ich bin enttäuscht.

Dies könnte das Diff etwas zu wörtlich lesen. Es ist kein Pull-Request , es ist ein bisschen Code als Sprache in einer E-Mail. Tatsächlich heißt es: "Vielleicht könnten wir es auf diese Weise beheben, oder vielleicht haben Sie eine bessere Idee, aber dieses Problem ist wichtig für mein Projekt, das Ihren Code enthält, und das Problem scheint diese Form zu haben." Auch wenn es nicht zusammengeführt wird, diffs wie diese sind ziemlich normale Kommunikation zwischen Programmierern.

1) Kommunikation: OP lässt es so aussehen, als wäre es üblich, den Rest des Entwicklerteams auf CC zu setzen. Ich sehe nie einen Grund, den Rest des Entwicklerteams nicht in ein Problem/eine Lösung einzubeziehen, die alle betrifft.

2) Problem/Lösung: Sehe hier nichts Falsches. Es sollte mit einer Pull-Anforderung erfolgen, aber vorausgesetzt, das ist hier nicht möglich, ist es in Ordnung.

3) Antwort: So viele Dinge sind falsch daran, dass ich gar nicht weiß, wo ich anfangen soll.
a) „Ich lese keine vorgeschlagenen Korrekturen“: Das ist absolut schrecklich. Lesen Sie immer den vorgeschlagenen Code. Es besteht eine gute Chance, dass es besser ist als alles, was Sie sich einfallen lassen können....
b) „Ich muss ein paar Tage warten, bevor ich eine Lösung finden kann“: Lassen Sie mich das übersetzen: „Ich muss ein paar Tage warten bevor ich Ihre Arbeit vollständig ignorieren und Ihre Lösung verwerfen kann. Ich werde nicht nur Zeit verschwenden, um eine Lösung implementieren zu lassen, ich werde auch mehr Zeit verschwenden, um eine Lösung für ein Problem zu finden, das gelöst wurde (durch den Code, den Sie schrieb, dass ich es verwerfen werde)"
c) 'sehen Sie, was das eigentliche Problem ist, und sehen Sie, was die Lösung sein sollte': Testen Sie es. Testen Sie es, um zu sehen, ob es ein Problem gibt. Testen Sie es dann, um zu sehen, ob das Problem gelöst wurde. Sie gewinnen nichts, wenn Sie Ihre eigene Lösung entwickeln , die getestet werden muss, anstatt die vorgeschlagene Lösung zu testen, um zu sehen, ob sie alles behebt. Wenn das Problem dadurch nicht behoben wird , können Sie versuchen, eine Lösung für die vorgeschlagene Lösung oder eine Lösung für das Problem insgesamt zu finden.

In meiner Firma hätte ich die Antwort sofort und kommentarlos an meinen Vorgesetzten weitergeleitet. Es ist einfach nicht akzeptabel.

Aus der Perspektive eines Managers möchte ich Ihnen mitteilen, dass jeder Entwickler ein Individuum ist und jeder seine bevorzugte Arbeitsweise hat. Jeder von uns muss versuchen, sich an die Eigenheiten des anderen anzupassen. In diesem Fall würde ich Ihnen raten (wenn Sie als Ihr Manager Morty wären), Ricks bevorzugten Arbeitsablauf zu respektieren, indem Sie ihm zuerst das senden, worum er gebeten hat, und dann das nachverfolgen, was Ihrer Meinung nach (wie in der E-Mail) das Problem war, gefolgt von was Sie (wieder in der E-Mail) als Lösung gedacht haben.
Und fürs Protokoll: Je weiter ich in meiner Karriere ging und Erfahrungen sammelte, desto weniger verließ ich mich auf „die Diagnose und die Lösung“, ohne zuerst das Problem klar zu artikulieren. Die Ausnahme von dieser Regel war, wenn das Problem/die Lösung von einer vertrauenswürdigen Quelle stammte. Ich kann Ihnen sagen, dass auch ich potenzielle Lösungen ignoriert habe, wenn sie nicht meinen Anforderungen entsprachen, aber es war nicht aus Arroganz, sondern eher aus einer begrenzten Menge an Ressourcen (dh Zeit), um die Arbeit anderer zu entschlüsseln.
Sie würden also Ihr Entwicklerteam darüber informieren, dass es (als Eigenart) akzeptabel ist, die Zeit eines Entwicklers zu verschwenden (indem eine Lösung bereitgestellt wird, die verworfen wird) und die Zeit eines Leads zu verschwenden (indem er eine Lösung verwirft und eine eigene entwickelt)?
Ich möchte das Entwicklerteam darüber informieren, dass es nicht akzeptabel ist, Zeit zu verschwenden, indem die Wünsche/Anforderungen der für ihre jeweiligen Funktionen Verantwortlichen nicht respektiert werden. Nur weil Sie davon ausgehen, dass die Lösung die richtige ist, heißt das noch lange nicht, dass sie es ist. Es läuft auch darauf hinaus, dass der Verantwortliche das Problem nicht anhand der Diagnose und letztendlich der Lösung validieren kann. Sie plädieren nicht dafür, dass jemand eine Diagnose und einen Lösungsvorschlag einfach so hinnehmen sollte, oder? Wie viel Zeit würde dann verloren gehen? Wie viel Zeit würde eingespart, wenn zuerst die Symptome validiert würden ?
Probier es aus ! Testen Sie, ob das Problem besteht! Testen Sie, ob die Lösung das Problem behebt! Testen Sie dann, dass die Lösung nichts anderes kaputt macht. Die letzten beiden müsstest du sowieso machen. Warum sollten Sie eine Lösung verschwenden, die Sie nicht getestet haben, und etwas anderes finden, das möglicherweise nicht einmal funktioniert?
Übrigens, das steht alles in meiner Antwort oben. Sie müssen sowieso Unit-Tests durchführen. Sie müssen sowieso ständig testen. Warum entscheiden Sie sich, eine Lösung, die Ihnen jemand gegeben hat, nicht zu testen? Wie ist dies in jeder Situation akzeptabel?
Wie genau validiert man einen Test (muss weniger eine Lösung) gegen Symptome, die nie artikuliert wurden? Gehen Sie nicht davon aus, dass die Diagnose von Anfang an richtig war. Das Interessante daran ist, dass Ihre Antwort nie auf die eigentliche Frage eingeht – der Ton ist ungewöhnlich . Sie verbringen jedoch übermäßig viel Zeit damit, Ihre Position zu verteidigen. Du bringst mich buchstäblich auf den Punkt.
Ich verstehe, dass das die Überschrift ist, aber das ist nicht die Frage. Der Ton in der E-Mail war nicht vorhanden. Es gibt keinen'. Es sind die Wörter, die ungewöhnlich sind. Sie bestreiten auch nichts über den Ton in Ihren ersten 3 Kommentaren zu meiner Antwort. Sie haben angefangen, über den Prozess zu streiten....
Meine Kommentare gehen auf Ihre Antwort ein . Ihre Antwort geht nicht auf die Gesamtfrage ein. Ein typisches Beispiel ist, dass Sie wie "Morty" eine Lösung anbieten, aber die größere Frage ignorieren. Wie viel Zeit haben Sie damit verbracht, etwas zu beantworten, das nie gefragt wurde? Einige freundliche Ratschläge von jemandem, der dies seit über 25 Jahren tut ... Konzentrieren Sie sich auf das, was tatsächlich gefragt wird, und nicht auf das, was Ihrer Meinung nach gefragt wird.
@Allan - wenn Ihr Team die vorgeschlagene Änderung nicht effizient durch Inspektion bewerten kann , müssen Sie sie alle entlassen und durch kompetente Entwickler ersetzen. Das Gesamtproblem erfordert möglicherweise größere Aufmerksamkeit - es könnte nur ein Beispiel für ein weiter verbreitetes sein, aber die vorgeschlagene Änderung ist entweder ein legitimes Anzeichen für einen Fehler im vorhandenen Code, ein Zeichen von Mortys Verwirrung oder hat keine wirklichen Auswirkungen.
@ChrisStratton - Es erstaunt mich unendlich, dass Menschen bis zum letzten Atemzug verteidigen, dass ihre Position absolut korrekt ist, wenn sie die Symptome, die für die vorgeschlagene Korrektur erforderlich waren, noch nicht identifiziert haben. Jedes Mal, wenn ich Ihren Ansatz gewählt habe, kostete es mehr an Ressourcen als die wahrgenommenen Einsparungen durch die bloße Implementierung der Änderung.
@Allan - der Punkt, den Sie so gefährlich ignorieren, ist, dass der vorhandene Code nicht einmal einen Fehler auslösen muss, um falsch zu sein. Hier besteht eine absolute Verpflichtung, herauszufinden, ob Morty auf ein tatsächliches Problem im vorhandenen Code hinweist, zusätzlich zur Überprüfung des von ihm gemeldeten Testfehlers, der in irgendeiner Weise damit zusammenhängen kann oder nicht . Selbst wenn die eigentliche Ursache an anderer Stelle gefunden wird, könnte der spezifische Code, den Morty vorgeschlagen hat, immer noch unsicher sein . Hat Morty Recht? Oder ist er nur verwirrt? Sie müssen es herausfinden, und kompetente Entwickler können dies schnell tun.
@ChrisStratton - Ernsthaft ... wie viele Annahmen können Sie möglicherweise in zwei verschleierten E-Mails treffen? Ob dies oder jenes – egal. Was ich weiß, ist, dass niemand mit den Annahmen, die Sie machen, sprechen kann (nach allem, was wir wissen, ist Morty ein verdammter Idiot), also sind sie letztendlich strittig. Abgesehen davon habe ich sehr erfolgreich mit Entwicklern zusammengearbeitet, indem ich auf ihre Bedürfnisse eingegangen bin und sie nicht mit Hypothesen auf der Grundlage von Pseudocode eingeschüchtert habe.