Ответ на предложение по исправлению ошибок, в котором говорилось, что нужно просто сообщать об ошибках (не предлагать решения). Это типично? [закрыто]

Я новый сотрудник в компании-разработчике программного обеспечения и увидел электронное письмо, отправленное коллеге от владельца системы, но со всей командой разработчиков, и это заставило меня немного беспокоиться об окружающей среде. Я недавно закончил колледж, так что это моя первая работа, так что... это нормально в технологических компаниях?


Отправлено в список рассылки команды разработчиков Rick and Cc'd:

Привет Рик,

Я запустил valgrind в проекте SpaceShip и, кажется, обнаружил утечку памяти в некоторых частях кода платформы. Я считаю, что нашел источник, и проблема может быть устранена с помощью приведенного ниже различия:

--- 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);

Я повторно запустил valgrind с изменениями, и, кажется, проблема решена!

Спасибо,
Морти

Я подумал, что это довольно разумное электронное письмо, на которое был дан ответ:

Привет, Морти,

Спасибо, но в будущем, пожалуйста, предоставьте только информацию о том, как воспроизвести проблему, а не предлагаемое решение. Я не читаю предлагаемые исправления, потому что они предрасполагают меня к определенному представлению о реальной проблеме и о том, каким должно быть исправление. Я лучше приду свежим и решу сам.

В тех случаях, когда я случайно прочитал diff, прежде чем понять, что это такое, я намеренно трачу как минимум несколько дней, пытаясь забыть, чтобы я мог погрузиться в него свежим взглядом. Таким образом, предоставление мне diff просто повышает вероятность того, что я даже не буду рассматривать проблему в течение некоторого времени.

Спасибо,

--Рик

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Очень необычно иметь такой тип общения, но, к сожалению, часто в каждой компании/команде есть член, который на самом деле не работает в команде, или является всезнайкой и так далее. По сути, пока это не происходит с большинством ваших коллег, просто старайтесь избегать этого человека, и все будет в порядке.

Ответы (11)

Нет, это не обычно. Однако вы столкнулись с довольно распространенным зверем, элитарным разработчиком с суперправами. Он умнее всех в своем уме и имеет право быть грубым по той же причине. У него есть что-то против Морти. По возможности избегайте его и двигайтесь дальше.

Хотя он, безусловно, имеет право самостоятельно исследовать проблему, цивилизованным ответом будет: «Спасибо за предложение, я его изучу». Между ними может быть уже существующая неприязнь, или он может быть просто диким, но в любом случае, хотя такое поведение известно в технике, оно неприемлемо или «обычно».

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Самое маленькое исправление, которое я хотел бы добавить, это то, что OP — друг Морти, а не просто Морти.
Это не исправление, в этом примере у Рика проблема с Морти. Друг Морти — оператор, но он просто наблюдатель.

Как разработчик, я нахожу первый отчет очень полезным. Никаких длинных объяснений, никакой длинной трассировки valgrind для чтения. С этим патчем я мог сразу увидеть, в чем проблема, и если бы я недавно работал над этим кодом, я бы, вероятно, знал, правильное ли это исправление или нет, даже не проверяя код. Так что я бы просто ответил: «Спасибо, что поймали», или «Спасибо, этот указатель не должен быть общим, но я знаю, как следует решить проблему теперь, когда вы обратили на нее внимание» или что-то в этом роде.

Также я не улавливаю никакого чувства превосходства в сообщении.

Теперь CC'ing всех может быть, а может и не быть плохим. Код может быть чем-то, о чем знают и другие, поэтому, если список получателей CC достаточно короткий, это хорошо. Почта достаточно короткая, и по патчу все сразу могут понять, должны они быть заинтересованы или нет, потратив лишь немного времени. Однако, если есть люди, которые не связаны с этой базой исходного кода в CC, то это было неуместно.

Другая проблема заключается в том, должен ли человек тратить свое время на отладку такой проблемы. Однако, если они не отстают от своих собственных целей, то брать на себя ответственность за все программное обеспечение, как это, как правило, очень и очень ценная черта. Это показывает энтузиазм и заботу, что действительно редкость. Эти вещи могут зайти слишком далеко, но гораздо чаще можно увидеть товарищей по команде, которым наплевать на ошибку в чужом коде, если только она не повлияла на них напрямую.


Чтобы ответить на вопрос заголовка. Тон Морти, представленный в вопросе, на мой взгляд, профессиональный и нормальный. Тон Рика... к сожалению, тоже не такой уж необычный, но к сожалению. Однако у всех бывают плохие дни, поэтому я не буду дальше анализировать ни одно анонимное сообщение. Это может быть плохим признаком (и выглядит так, TBH), или это может быть частью вполне приличной культуры на рабочем месте, к которой вам просто нужно привыкнуть.

«Каталог всех может быть плохим, а может и нет» — в случае, если они знали, как Рик действует в таких ситуациях, им кажется, что наиболее подходящим способом убедиться в том, что проблема действительно будет решена, будет копировать всех .

Я знаю, что на вопрос уже был дан ответ, и я согласен с принятым ответом, но я просто хотел дополнить его дополнительной информацией.

То, что вы видите здесь, является потенциальной проблемой XY . На мой взгляд, проблемы XY — это то, о чем каждый специалист по решению проблем (не только программист) должен знать и избегать.

Принцип задачи XY довольно прост:

  • X является проблемой и нуждается в устранении.
  • Y — решение, но не лучшее решение. Несмотря на это, он выбран (либо из-за лени, либо из-за непонимания того, что есть лучшее решение)
  • Когда возникает проблема с реализацией Y, люди посвящают время попыткам заставить Y работать, вместо того, чтобы на самом деле искать Z-решение, которое подходит лучше.

В качестве наглядного примера:

  • X = я хочу отсортировать эти данные Excel.
  • Y = я могу написать приложение для сортировки данных и сохранения файла.
  • Z = Я должен научиться использовать функцию сортировки Excel.

По сути, это то, что произошло в электронном письме Морти. Рик не может обозначить запрос как Y или Z, потому что Морти не объясняет X. Объяснение X важнее, чем предложение решения Y/Z, поскольку Рик способен найти Z, когда он знает X, но он не может. не угадать X из ниоткуда.

Это проблема X:

утечка памяти в некоторых частях кода платформы

Обратите внимание, что это довольно расплывчато. В чем проблема? Где это произошло? Когда это произошло? Был ли это пограничный случай?

Затем Морти предлагает Y-решение. Поскольку мы не знаем специфики X, у нас нет возможности оценить, является ли Y подходящим решением для X.

Вот почему Рик сопротивляется этому. Его просят что-то изменить (и фактически взять на себя ответственность за то, что он что-то изменил) , не имея никакого выбора . Морти фактически подрывает ответственность Рика (написание хорошего кода) и заменяет ее просьбой слепо доверять тому, что предлагаемый код является подходящим и хорошим.


Подумайте об этом так: вы офицер полиции. К вам подходит мужчина и говорит: «Мне нужно, чтобы вы арестовали этого человека» (Y).

Сотрудник полиции не должен подчиняться, так как он не может лично подтвердить, что арест мужчины оправдан.

Однако, если бы мужчина сказал, что «этот человек только что хладнокровно убил кого-то», тогда сотрудник полиции может на самом деле понять проблему и принять решение (арестовать человека) самостоятельно.

Это в основном то, что Морти сделал неправильно. Я действительно думаю, что Рик мог бы сформулировать это более любезно (если бы это был Interpersonal.SE, я бы определенно перефразировал некоторые предложения Рика), но его просьба действительна.

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Однако комментарии @JaneS правильно используются для указания на проблемы в ответах.
Хотя я думаю, что упоминание проблемы XY имеет отношение к тому, был ли здесь разумным запрос Рика, я не чувствую, что это ответ на вопрос в том виде, в котором вы его написали. ОП спросил, был ли тон Рика нормальным в отрасли. Вы можете переформатировать свой ответ, чтобы сосредоточиться на том, как Рик справился с этим, хотя суть его ответа верна.
@BloodGain You might consider reformatting your answer to focus on how Rick handled it, although the gist of his response is valid.Это именно то, к чему относится последнее предложение ответа.

Не обращая внимания на скрытую напряженность между ними, общую проблему общения или стандартный тон в вашем доме, я хочу сосредоточиться на вашем вопросе:

Этот тон необычен для технического рабочего места?

Нет , этот тон не совсем необычен.

  1. Люди в отрасли привыкли к синтаксическим языкам программирования, а точные технические спецификации иногда забывают тон в общении. Часто это не проблема, если посторонние не участвуют в общении. Привыкайте к большому количеству сообщений по делу.

  2. Это клише, но да, есть и такие задроты, у которых просто плохие социальные навыки, так что вам лучше научиться иметь с ними дело и не принимать это на свой счет.

  3. Для многих программистов «их» код — это их детище. Указание на некоторые неоспоримые ошибки — это одно, а возня с ними может просто запустить некоторые защитные механизмы.

Тем не менее, это можно сделать лучше. Как правило, чтобы избежать таких проблем:

  • Хвалите общественное, критикуйте частное.
  • Если у вас возникли проблемы с кем-то, вообще не используйте для этого электронную почту!
  • Если вы обнаружите ошибку, сообщите о ней с помощью стандартного механизма, принятого командой.
  • Не выполняйте чужую работу, если вас об этом не просят.
Мне нравятся все пункты списка. Первые два являются хорошими общими ориентирами в жизни.
Ребёнок, имеет значение, есть ли у человека опыт работы с открытым исходным кодом.
Жалоба на отсутствие репродуктора действительна по ИМО. Но просить, чтобы решение не было дано, довольно безумно. Неспособность игнорировать чужие мысли означает, что вы не можете игнорировать собственные вводящие в заблуждение мысли. А если не умеете, то удачи в программировании. Вам придется начать с одного пути и продолжать идти в том же направлении до бесконечности. Или рефакторинг существующего кода? Вам нужно понять, чем закончилась первоначальная идея, а затем сложить ее в новую парадигму, которую вы хотите применить.
Заявление Рика о том, что он намеренно отсрочит процесс, номинально для того, чтобы избавить свой тонкий ум от развращающей идеи Морти, является раздражительным и совершенно неприемлемым, и с ним нужно разобраться. Если Морти заходит слишком далеко (его мастерство и/или возможности), более сбалансированным ответом будет: «Спасибо, Морти, и твое быстрое предложение может быть частью решения, но мне нужно рассмотреть больше проблемы, чтобы убедиться, это лучший подход. А пока, не могли бы вы задокументировать эту ошибку в нашем трекере ошибок? Очень важно поместить в него все ошибки!»
@CCTO (и другие комментаторы) Вы понимаете, что ОП не спрашивал, как с этим бороться, да?

В его чувствах есть некоторая ценность. Я знаю много случаев, когда моя догадка о первопричине уводила кого-то по ложному пути и напрасно тратила их время.

Что касается большинства проблем, у каждого человека есть определенные догадки, которые просто «выскакивают» у него из головы. Я думаю, что стоит попытаться использовать эту силу. Когда мне нужна помощь с ошибкой, на которой я застрял, я стараюсь не навязывать им свои собственные догадки, чтобы, возможно, их догадки были новыми и продуктивными.

Но с тем, как он это выразил... он был полным придурком.

Иногда я получаю веб-тикеты с предлагаемыми исправлениями CSS для визуальных ошибок. Проблема в том, что селекторы обычно суперуниверсальны (часто основаны только на именах тегов или одном классе) и нарушают работу нескольких других областей сайта. Тем не менее, мне нравится это предложение, потому что оно обычно экономит мне время на поиск точной проблемы, а затем я могу просто присвоить ей имя во что-то готовое к производству...
@dandavis Это не их работа - решать проблему. Это твоя работа. Решение проблемы включает в себя знание того, в чем проблема и каковы проблемы для решения: P
Не могли бы вы расширить невежливый бит? Этот ответ великолепен, учитывая, что он весит обе стороны, но он немного неравномерный.
Я должен с уважением не согласиться. При техническом устранении неполадок больше информации всегда ценнее, чем меньше. В качестве назначенного решателя проблем задача разработчиков состоит в том, чтобы определить, что является ошибочной информацией от клиента, а что ценной информацией. Скрывать некоторые детали от специалиста по устранению неполадок, потому что вы можете «направить их по ложному пути», — нелепая идея для меня, и я бы сделал выговор любому из моих людей, который ответил клиенту таким образом.
Технический, но не разработчик программного обеспечения, и я согласен с @DanK. Единственная очень незначительная поправка, которую я бы внес в первоначальный отчет, — это сначала указать детали (возможно, с дополнительными тестами) и разницу в конце. Это дало бы Рику возможность прочитать отчет без различий, но (ИМО, как кто-то привык к научным статьям, в том числе со списками кодов) удаление различий из тела делает чтение более четким.
не могли бы вы уточнить, что именно здесь не вежливо? мне кажется совершенно без обид, хотелось бы понять
@SargeBorsch - требование не включать обычную, тривиальную информацию совершенно неприемлемо в совместном проекте. И заявленное намерение наказать Морти, преднамеренно задержав проект, только удваивает это. Написано красиво, но смысл вопиющий и неуместный. То, что отчет о проблеме включает две строки diff, не является проблемой — это может помочь, а может и не помочь, но это не проблема. Теперь, если Морти не должен управлять valgrind и обычно сообщает о запутанных вещах, это может быть чем-то, с чем организация должна иметь дело, но это не так.
@SargeBorsch слишком много людей путают прямоту и лаконичность с невежливостью. Для справки, единственная проблема, которая у меня есть с электронной почтой, заключается в том, что составитель счел необходимым скопировать все.
@DanK Это полностью зависит от типа проблемы. Я не защищаю этот подход повсеместно, а просто как один из доступных инструментов в коробке. Часто, когда я иду к коллеге за помощью в расследовании, я знаю, что, скорее всего, гоняюсь за отвлекающими маневрами и зря трачу время. Я хочу воспользоваться свежим взглядом.
Я согласен с DanK в этом, важно включить как можно больше информации. Даже если они ошибаются в отношении основной причины, может быть полезно узнать, почему они считают это основной причиной, это может привести к получению дополнительной информации.
@LordFarquaad Это не какая-то поляризованная командная игра. Я не предлагаю какой-то бесплатный обмен информацией. Люди легко поддаются убеждению. Это несознательный процесс, так что дело не в том, чтобы быть «хорошим компьютерщиком».

Понятно, что не все с этим согласны, но по ИМО это нормальный ответ, не принимайте это на свой счет .

Это простое для понимания электронное письмо, он мотивирует свои причины, по которым он предпочитает не слышать ваше решение (не потому, что это ваше решение, а потому, что он хочет начать с чистого листа).

Это не личное по отношению к вам, не оскорбление и не подрыв вообще, это объяснение. Для некоторых людей это немного прямолинейно, но часто это причуда программистов, когда они прямолинейны и (слишком) основаны на фактах. Вы можете прочитать все это электронное письмо нормальным тоном, где он объясняет свой предпочтительный метод. То, что вы не фанат этого, не означает, что это плохая практика, вы столкнетесь со многими людьми, которые будут работать не так, как вы.

Я согласен, что это можно было бы сформулировать немного более вежливо, но опять же, программист часто просто говорит то, что он имеет в виду, без всех этих нагруженных интерпретаций (что не оправдание, но может быть объяснением).

Это его работа - решать проблемы, а не твоя. Вы просто тратите время на то, что можно было бы использовать иначе. Не поймите меня неправильно, практика исправления ошибок важна! Но изучите прикладное решение и сравните его со своим. Ваше решение может показаться хорошим, но опыт может научить вас обратному.

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
@Martijin В вопросе фактически говорится, что Морти является «владельцем системы», то есть кем-то, кто отвечает за то, чтобы это было исправлено. Исследование проблемы на самом деле не входит в их обязанности. Электронное письмо Рика отчасти является объяснением, но это объяснение требования быть защищенным от той информации, которой обычно и с пользой обмениваются в таких ситуациях, и как таковое требование, принципиально несовместимое с групповым проектом, каким бы приятным оно ни было. формулируется. Рик может рассматривать альтернативные причины и решения, но не прекращать обычное общение.

Здесь виноваты обе стороны.

Морти не должен был копировать всех в первоначальном письме. Сделав это, он смутил Рика, указав всем на его ошибку. Я не знаю, пытался ли Морти набрать очки, делая это, или он просто был глуп. Однако с точки зрения Рика результат был таким же. Морти было бы лучше отправить это электронное письмо только Рику, чтобы они могли решить проблему, и никому не пришлось бы выглядеть плохо.

Рик, смущенный тем, что ему публично указали на его ошибку, плохо отреагировал. Он не должен был подавлять Морти. Ему не следовало публично критиковать Морти за попытку помочь.

Один пример обмена электронной почтой ничего не говорит нам о корпоративной культуре. Однако, если отправка общедоступных электронных писем, указывающих на ошибки других людей, и отправка электронных писем с сообщением людям, что им не следует предлагать помощь, является обычным явлением, у вас токсичная культура.

К сожалению, такая токсичная культура распространена в компаниях-разработчиках программного обеспечения в Соединенных Штатах. Многое было написано [1] [2] [3] и сказано о том, как определенный тип инженеров-программистов относится к другим, особенно к не-программистам и людям, которые не соответствуют их стереотипу инженера-программиста.

Эта культура не является правильным способом обращения с людьми. Хорошая компания, менеджеры и коллеги не терпят такой культуры. Хорошие сотрудники не указывают друг другу на ошибки публично, а хорошие сотрудники не отказываются от помощи других.

Вы должны понять, что такое поведение приемлемо в культуре вашего отдела и компании. Если вы считаете, что работаете в компании, в которой это принято, вам нужно решить, можете ли вы изменить культуру и стоит ли это усилий. Важно выяснить, исходит ли эта культура от руководства или нет. Если руководство подаст плохой пример, вы ничего не сможете сделать. Если это массовая культура, у вас есть шанс убедить людей измениться. Это будет долгая и тяжелая работа, так что лучше решите, стоит ли исправлять компанию.

Может быть. Без дополнительного контекста мы не можем точно знать, было ли исходное электронное письмо «указанием на чью-то ошибку» или «делением прогресса с другими, участвующими в групповой работе». общее, но неспецифическое ощущение, что что-то не так. Обратите внимание, что здесь не сказано «в вашем коде» — это может быть неявным предположением, но текст электронного письма не более обвинительный, чем типичный тикет об ошибке, и изучен лучше, чем большинство других. Или это может быть вполне нормально выглядящий фрагмент текста, сильно вооруженный в своем реальном контексте.
Довольно часто приходится копировать команду, когда сталкиваешься с важной ошибкой.
«Он смутил Рика, указав всем на его ошибку» Программное обеспечение содержит ошибки. Все, кто участвовал в его создании, знают и принимают это. Я могу гарантировать, что никто не действовал в заблуждении, что Рик был непогрешимым богом программирования. Должны ли они также удалить свой трекер ошибок, потому что это подрывная постоянная запись личных неудач Рика? Мне не платят за потакание хрупкому эго. Мне платят за то, что я делаю хорошее программное обеспечение.
@Michael «Мне не платят за то, чтобы потворствовать хрупкому эго». Это то, что многие люди говорят, чтобы оправдать то, что они ослы.
@BenMz Правда - я уверен, что Рик мог бы попытаться сделать это утверждение после прочтения некоторых ответов здесь, - но я думаю, что такой человек неправильно идентифицировал бы вежливость с сводничеством. Это не тоже самое. Я всегда вежлив на работе, но я не должен ходить по яичной скорлупе рядом с человеком, потому что он не может справиться с тем, что команда разработчиков получает копию по электронной почте о легко допущенной ошибке.
Эти ответы предполагают эмоциональные реакции рассматриваемых людей, когда ничего из этого не подразумевалось явно или неявно.
@Allan Вы не можете судить о тоне общения на рабочем месте, не учитывая эмоциональную реакцию, которую они могут вызвать.
Ты знаешь , что Рик был смущен? Смущение — это эмоция самооценки (также известная как личная). Никаких личных нападок не было. Вы можете сказать, что тон письма «грубый», «резкий» или что-то в этом роде, но вы не можете предполагать эмоциональную реакцию, потому что все реагируют по-разному.
@ Аллан Я предполагаю, что Рик смущен. Делая наши лучшие предположения о том, как люди будут реагировать, мы судим о том, как с ними общаться.
Последующий вопрос будет таким: «Что в этом переписке по электронной почте заставляет вас предположить , что Рик был смущен?» Чтобы расширить то, что я сказал ранее, нет ни капли личных нападок, чтобы оправдать «смущение». Кроме того, Рик не набрасывается на Морти; это говорит ему, что ему нужно .

Нормальность довольно субъективна, тем более что вы понятия не имеете об истории этого рабочего места.

Либо у Рика ужасные навыки межличностного общения, либо между этими двумя людьми есть неприязнь.

Возможно, Морти специально создал «разумное» электронное письмо, надеясь спровоцировать Рика.

Поскольку вы новичок, вам нужно будет оценить, распространилось ли это токсичное поведение на других, или это ограниченная ситуация.

Что бы ни случилось, просто не позволяйте этому распространиться на вашу личность.

Я пишу это с точки зрения менеджера с опытом, который охватывает несколько аспектов этого типа сценария.

это нормально в технологических компаниях?

Это совершенно нормально для любой компании практически в любой отрасли, не только в сфере технологий.

Вообще говоря, электронное письмо, которое было разослано всем членам команды разработчиков, в котором:

  • указал на предполагаемый недостаток (« Кажется, я обнаружил утечку памяти...»)
  • заявил, что предполагаемое решение было найдено («Я считаю, что нашел источник и проблему ...»)
  • представил подробный список исправлений, которые необходимо реализовать

Обобщая это, то, что здесь происходит, заключается в том, что Морти дает Рику директиву, сначала устанавливающую обоснование директивы, а затем перечисляющую особенности указанной директивы.

Дело еще более усложняется тем, что директива была дана в групповой обстановке (копии были отправлены всем членам команды).

Организационные отношения Рика и Морти

Мы не знаем отношения по отношению к этим двум людям. Однако в целом это можно обобщить как одну из трех возможностей:

  • Рик старше Морти
  • Морти старше Рика
  • Рик и Морти равны

Рик должен получать указания от Морти?

  • Нет? Тогда Рик имеет право сопротивляться
  • Да? Тогда нет необходимости копировать всех. Рик все еще имеет право говорить Морти, как он лучше всего выполняет свою работу.

Ситуация ничем не отличалась бы, если бы...

  • Медицинский. Доктор Оз говорит доктору Но, что он поставил диагноз пациенту доктора Но и должен сделать X, Y и Z, не сообщая доктору Ноу симптомы.
  • Автомобильный. Инженер 1 сообщает инженеру 2, что в конструкции подвески инженера 2 обнаружена проблема, и решение заключается в том, чтобы приварить выступ A к прорези B без предоставления данных испытаний, чтобы показать проблему.
  • Техническая поддержка — Технический специалист 1 сообщает Техническому специалисту 2, что есть проблема с системой Технического специалиста 2, и решение заключается в установке исправлений A, B и C без предоставления сообщений об ошибках, указывающих на проблему.

TL;DR

Суть в том, что человек, ответственный за фактическое исправление, говорит человеку, что ему нужно для правильного выполнения работы. Единственный человек, который потенциально «выходит за рамки», — это Морти из-за его пассивно-агрессивного поведения, когда он копирует всех.

Это происходит каждый день в любой отрасли. В этом нет ничего нового или необычного.

Общение чрезвычайно важно... В моей команде 90% общения идет через slack/jira/github, которые все могут видеть. Для решения, которое влияет на продукт команды, я думаю, вы всегда должны копировать всю команду (или, возможно, просто отправить ее всей команде). Что касается собственно проблемы в письме: Проблема найдена, решение найдено. Теперь вы думаете, что руководитель хорошо использует свое время, отбрасывая проблему и решение и пытаясь убедиться, что проблема существует, а затем предлагает решение, которое может быть лучше, а может и нет? при этом вы говорите парню, что его работа не имеет значения...
@xyious - я предполагаю, что вы проголосовали против, потому что по причинам, изложенным в вашем аргументе. Интересно. Вопрос не в том, кто прав, вопрос в необычном тоне . Тем не менее, какие бы предпочтения ни были у лица, ответственного за внесение изменений, это их предпочтения. Период.
@Allan - двухстрочный diff - это не «полный список исправлений, которые необходимо реализовать» - откуда бы вы это ни взяли, это не является частью ситуации вопроса. Что касается ролей Морти и Рика, было прямо указано, что Морти является «владельцем системы», и из контекста ясно, что Рик является текущим гуру в области рассматриваемого кода.
Итак, @ChrisStratton, вы буквально поняли «diff»? СМДХ. Позвольте спросить вас вот о чем.... как вы думаете, лечащий врач говорит специалисту, что делать, или он сообщает ему симптомы и ждет подтверждения?
Я воспринял масштаб дифференциала буквально и совершенно уверен, что он точен. Весь смысл вопроса в том, что Рик закатил истерику из-за крайне нормального, обычного и правильного действия. Вместо этого вы, кажется, хотите отреагировать на совершенно другую ситуацию, чем та, о которой на самом деле спрашивали, выраженную также в ваших предположениях об отношениях, не соответствующих явно заявленной позиции Морти.
Я воспринял масштаб разницы буквально... Пост, в котором "Рик и Морти" используется для запутывания имён людей в электронном письме, в котором, возможно, меньше строк, чем количество людей в списке копий, и вы воспринимаете это "всерьёз" . ." Вы не менеджер, и это видно.
Стало совершенно ясно, что большая часть проблемы в вашем посте связана с тем, что вы настаиваете на том, чтобы реагировать на ситуацию, отличную от той, которая описана на самом деле . Как отметил бы любой опытный разработчик , показанная разница примерно соответствует размеру исправления для такого рода проблем .
--- 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); 

К сожалению, это изменение действительно исправляет ошибку (притворяется, что тест valgrind является адекватным), но оно вносит нечто нежелательное, борьбу за философию кода. Если вы не являетесь постоянным участником, не ввязывайтесь в споры о философии кода.

Чтобы избежать битвы за философию, вместо этого следовало отправить это. Да, это объективно хуже, но соответствует стилю уже существующего кода:

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

Но с этим ответом разработчика, я так понимаю, ему это тоже не понравилось бы. Я слишком часто слышу этот тон, даже от людей, которые должны знать лучше. Это ненормально, но достаточно того, что вы часто это слышите. Я расстроен.

Это может быть слишком буквальное прочтение diff. Это не запрос на вытягивание , это кусок кода в виде речи в электронном письме. По сути, это говорит: «Возможно, мы могли бы исправить это таким образом, или, может быть, у вас есть идея получше, но эта проблема важна для моего проекта, который содержит ваш код, и проблема, кажется, имеет эту форму». Даже если не объединены, diffs как это вполне нормальное общение между программистами.

1) Коммуникация: OP делает вид, что это стандартная практика - копировать остальную часть команды разработчиков. Я никогда не вижу причин не включать остальную часть команды разработчиков в проблему/решение, которое затрагивает всех.

2) Проблема/Решение: Не вижу здесь ничего плохого. Это должно быть сделано с помощью запроса на вытягивание, но если предположить, что здесь это невозможно, все в порядке.

3) Ответ: С ним столько всего не так, что я даже не знаю, с чего начать.
а) «Я не читаю предлагаемые исправления»: это просто ужасно. Всегда читайте предлагаемый код. Есть неплохой шанс, что это лучше, чем все, что вы можете придумать...
б) «Мне нужно подождать несколько дней, прежде чем я смогу придумать решение»: Позвольте мне перевести это: «Мне нужно подождать несколько дней. прежде чем я смогу полностью проигнорировать проделанную вами работу и отказаться от вашего решения Я не только потрачу время на реализацию решения, но и потрачу больше времени на поиск решения проблемы, которая была решена (с помощью кода, который вы написал, что буду отбрасывать)"
в) "увидеть, в чем реальная проблема, и посмотреть, какое должно быть исправление": протестировать. Протестируйте его, чтобы увидеть, есть ли проблема. Затем проверьте его, чтобы увидеть, была ли проблема решена. Вы ничего не получите, придумав свое собственное решение , которое нужно протестировать , вместо того, чтобы тестировать предложенное решение, чтобы увидеть, все ли оно исправит. Если это не решит проблему , вы можете попытаться найти исправление для предлагаемого решения или решить проблему в целом.

В моей компании я бы отправил ответ своему менеджеру немедленно и без комментариев. Это просто неприемлемо.

Говоря с точки зрения менеджера , я хотел бы сообщить вам, что каждый разработчик является личностью, и у каждого человека есть свой предпочтительный способ работы. Каждый из нас должен попытаться приспособиться к особенностям друг друга. В этом случае я бы посоветовал вам (говоря как ваш менеджер, если бы вы были Морти) уважать предпочтительный рабочий процесс Рика, отправив ему сначала то, что он просил , а затем дополнить то, что, по вашему мнению (как в электронном письме), было проблемой, за которой последовала то, что вы думали (опять же, в электронном письме) как решение.
И для протокола… чем дальше я продвигался в своей карьере и набирался опыта, тем меньше я полагался на «диагноз и решение» без четкой формулировки проблемы . Исключением из этого правила были случаи, когда проблема/решение исходили из надежного источника. Я могу сказать вам, что я тоже игнорировал возможные решения, если они не соответствовали моему требованию, но это было не из-за высокомерия, а скорее из-за ограниченного количества ресурсов (т.е. времени), которые можно было потратить на расшифровку чужой работы.
Таким образом, вы могли бы сообщить своей команде разработчиков, что допустимо (в качестве идиосинкразии) тратить время разработчиков (предоставляя решение, которое будет отвергнуто) и тратить время лидера (когда он отказывается от решения и придумывает свое собственное)?
Я хотел бы сообщить команде разработчиков, что трата времени на неуважение к пожеланиям/просьбам тех, кто отвечает за их соответствующие функции, является неприемлемой. То, что вы предполагаете, что решение правильное, не означает, что это так. Это также сводится к тому факту, что тот, кто несет ответственность, не может проверить проблему на соответствие диагнозу и, в конечном итоге, решению. Вы ведь не выступаете за то, чтобы кто-то просто сразу принял диагноз и предложенное решение, не так ли? Сколько времени тогда будет потеряно? Сколько времени можно было бы сэкономить, если бы симптомы были подтверждены в первую очередь ?
Проверь это ! Проверьте наличие проблемы! Проверьте, что решение устраняет проблему! Затем проверьте, что решение больше ничего не ломает. Вам все равно придется делать последние два. Зачем вам тратить решение, которое вы не тестировали, и придумывать что-то еще, что может даже не работать?
Кстати, все, что есть в моем ответе выше. В любом случае вам нужно иметь модульные тесты. В любом случае нужно постоянно тестировать. Почему вы решили не тестировать решение, которое вам кто-то дал? Насколько это допустимо в любой ситуации?
Как именно вы проверяете тест (не обязательно решение) на фоне симптомов, которые никогда не были сформулированы в первую очередь? Не думайте, что диагноз был верным с самого начала. Самое интересное в этом то, что ваш ответ никогда не касается фактического вопроса - необычен ли тон . Однако вы тратите слишком много времени на защиту своей позиции. Ты буквально доводишь до меня мою точку зрения.
Я понимаю, что это заголовок, но вопрос не в этом. Тон в электронном письме был несуществующим. Нет никакого «тона». Это слова, которые необычны. Вы также ничего не спорите о тоне в своих первых 3 комментариях к моему ответу. Вы начали спорить о процессе....
Мои комментарии относятся к вашему ответу . Ваш ответ не отвечает на общий вопрос. Дело в том, что, как и «Морти», вы предлагаете решение, но игнорируете более важный вопрос. Сколько времени вы потратили, отвечая на то, о чем вас никогда не спрашивали? Несколько дружеских советов от человека, который занимается этим более 25 лет... сосредоточьтесь на том, что на самом деле спрашивают, а не на том, что, по вашему мнению , спрашивают.
@Allan - если ваша команда не может эффективно оценить предлагаемое изменение путем проверки , вам нужно уволить их всех и заменить компетентными разработчиками. Общая проблема может потребовать большего внимания — это может быть только один пример более распространенной проблемы, но предлагаемое изменение является либо законным признаком недостатка в существующем коде, признаком замешательства Морти, либо не имеет реального эффекта.
@ChrisStratton - Меня безмерно поражает, что люди до последнего вздоха защищают свою позицию абсолютно правильно, когда им еще предстоит определить симптомы, требующие предлагаемого исправления. Каждый раз, когда я использовал ваш подход, это стоило больше ресурсов, чем предполагаемая экономия от простого внедрения изменений.
@Allan - момент, который вы так опасно игнорируете, заключается в том, что существующий код даже не должен вызывать ошибку, чтобы быть неправильным. Здесь есть абсолютное обязательство выяснить, указывает ли Морти на реальную проблему в существующем коде, в дополнение к проверке сбоя теста, о котором он сообщил, который может быть или не быть каким-либо образом связан с этим . Даже если фактическая причина будет найдена в другом месте, конкретный код, предложенный Морти, может быть небезопасным . Есть ли смысл у Морти? Или он просто запутался? Вам нужно выяснить это, и компетентные разработчики могут сделать это быстро.
@ChrisStratton - Серьезно ... сколько предположений вы можете сделать в двух запутанных электронных письмах? То ли это, то ли это - все равно. Что я точно знаю, так это то, что никто не может возразить ни одному из предположений, которые вы делаете (насколько мы знаем, что Морти — тупой идиот), так что, в конечном счете, они спорны. Тем не менее, я очень успешно работал с разработчиками, приспосабливаясь к их потребностям, а не запугивая их гипотезами, основанными на псевдокоде.