Как мне вести себя со старшим коллегой, который ломает что-то в моей части проекта, в чем обвиняют меня?

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

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

В своем тикете JIRA он пишет: «Регрессионное тестирование выявило ошибку/проблему, если вы заняты, я могу это исправить». Он будет ломать вещи, пока я даю ему код в рабочих условиях, не посоветовавшись и не спросив меня. Вопросы, которые он представляет, проверяются еще до того, как я их вижу.

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

Для чего вас БЫЛИ наняты? Кажется, что в этом вопросе отсутствуют роли/обязанности участников, что затрудняет понимание того, о чем идет речь. Пожалуйста, предоставьте немного больше контекста.
Вы, кажется, спешили, публикуя это, и ваш вопрос трудно разобрать и кажется незаконченным. Можете ли вы отредактировать это, чтобы улучшить текст, определить один основной вопрос и прояснить динамику команды? Кто этот человек для вас? Каковы ваши соответствующие работы?
Выяснило ли регрессионное тестирование проблемы в изменениях Тарзана? Если это так, начните со слов: «Ваши последние изменения сломали этот регрессионный тест; не могли бы вы взглянуть».
Есть ли у вас контроль версий, чтобы любой мог видеть, кто вернул материал? Меня не волнует, взломал ли кто-то мой код, если а) я могу легко его откатить и б) все увидят, что кто-то другой взломал этот код.
@Lilienthal Я отредактировал Q сейчас.
@Nebr Да, это было проверено мистером Тарзаном.
Я предлагаю настроить ваш тон здесь. Оскорбление коллег осуждается везде, в том числе и на этом сайте. Придерживайтесь фактов, если можете, и старайтесь избегать личных суждений, даже если вы его терпеть не можете. /// Ваш пост мне до сих пор неясен. Конечно, регрессионное тестирование предназначено для поиска ошибок, которые QA или продуктивное использование еще не обнаружили (пока)? Из-за используемого тона я не могу сказать, действительно ли этот парень добавляет ошибки в свой собственный код и ломает вещи, которые раньше работали, или вас просто раздражает, что вы получаете дополнительную работу, поскольку он находит сломанные вещи, которые просто еще не развалились.
@Lilienthal Я думаю, что ОП разочарован тем, что г-н Тарзан вносит изменения в код внешнего интерфейса без запроса и, следовательно, вносит ошибки. Затем эти ошибки прикрепляются к ОП, и ОП хочет знать, как вежливо попросить г-на Тарзана не делать этого.
Это одна интерпретация, и даже тогда нам нужно выяснить, какие отношения у этих людей и действительно ли «Тарзан» должен вносить изменения. Тот факт, что нам нужен четкий сценарий, является причиной того, что мы обычно закрываем такие вопросы как неясные до того, как поступают ответы, поскольку люди обычно в конечном итоге отвечают на совершенно разные вещи, что противоречит философии вопросов и ответов.

Ответы (2)

Если он будет отрицать то, о чем вы договорились, получите это в письменном виде :

  • Внесите любые встречи в оба календаря или запланируйте их по электронной почте.
  • Делайте заметки во время встречи и отправьте ему резюме встречи, например:

    Как обсуждалось на нашей сегодняшней встрече...

    Пожалуйста, укажите на любую из этих деталей, которые неверны.

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

Что касается вопроса о том, что он ломает вещи:

  • Используйте систему управления версиями — это должно дать вам надлежащий бумажный след в поддержку вашего дела.

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

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

  • Отменить его изменения (если он не исправит или хотя бы не подтвердит это):

    Я отменил внесенное вами изменение X, поскольку оно нарушает Y, убедитесь, что тесты пройдены, прежде чем вносить изменения в систему управления версиями.

  • Укажите на его серьезные ошибки — если он не советуется с вами или не следует тому, что вы сказали, отправьте ему письмо, например:

    Я только что видел ваше изменение X. Это не соответствует тому, что мы согласовали на нашей встрече в день Y, потому что причина Z. [Я отменил это / Я исправил это / Пожалуйста, исправьте это.] Пожалуйста, ознакомьтесь с нашими заметками о встрече, прежде чем вносить изменения в будущее.

  • Управление CC , где это уместно.

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

+1 только за это « получите это в письменной форме ». Это хорошо для всех участников подобной ситуации, а не только для прикрытия своей добычи.
Так что я сделаю то, что ты сказал. У меня была встреча с ним, что в значительной степени совпадает с тем, что я сказал ему в другой день. Должна ли я дать ему знать, что это те самые вещи, которые я говорил вам раньше, но вы не помните, или что-то, чтобы смутить его.
@Nofel Если у вас либо есть предыдущие случаи в письменной форме, либо вы поднимали по этому поводу большой шум раньше, вы можете упомянуть об этом (способ обострить проблему - спросить, как он будет действовать по-другому на этот раз, чтобы не смущать его). Если нет, то может быть лучше просто начать с чистого листа (т.е. не упоминать, что вы сказали ему это раньше).
@Nofel Если у вас либо есть предыдущие случаи в письменной форме, либо вы поднимали по этому поводу большой шум раньше, вы можете упомянуть об этом (способ обострить проблему - спросить, как он будет действовать по-другому на этот раз, чтобы не смущать его). Если нет, то может быть лучше просто начать с чистого листа (т.е. не упоминать, что вы сказали ему это раньше).
Это он написал, а не я. Но я хочу напомнить ему, что мы обсуждали, и, конечно, эта задача может быть небольшой, но она портит мое имя. (буквально, менеджер спросил меня, почему это не работает, и я сказал, что это было, когда я дал ему это) Я знаю, как это исправить, но хочу, чтобы он помнил, что я не буду снова и снова прощать его ошибку.
@Нофель, никогда не исправляй это. Верни его и заставь его исправить, иначе он продолжит делать те же ошибки.

В последнее время все немного ускорилось, когда он полностью отрицал нашу встречу 1-1 по вопросам, которые я ему поднял.

Одна из вещей, которую я усвоил на собственном горьком опыте (и это моя первая работа), заключается в том, что люди могут и делают шлепки, когда находятся под принуждением. Поэтому крайне важно, чтобы вы удостоверились, что у вас есть вещи в письменной форме. Например: отправьте ему электронное письмо с просьбой назначить время для встречи, на которой вы обсудите проблемы, а затем обновите билеты JIRA, чтобы отразить то же самое.

Например,

После обсуждения ПРОБЛЕМЫ-003 на нашей встрече мы решили справиться с ней, изменив данные, отправляемые на сервер. Раньше мы отправляли то-то и то-то, а теперь планируем отправить то-то и то-то.

Теперь то, что я понимаю:

  1. Он работает в компании дольше, чем вы.
  2. Он не «дизайнер», и он хочет вмешиваться в код.

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

Кроме того, вам нужно убедиться, что ошибка не во внешнем интерфейсе. Например, вы не придерживались контракта API или он изменился без вашего ведома? Убедитесь, что все это задокументировано хорошо и без двусмысленности.