Что делать, если другой разработчик испортил проект?

Я работал над проектом и выполнил все свои задачи.

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

Как я могу справиться с этим?

Я должен думать, что менеджеру достаточно контроля версий или другой видит, кто запорол проект?

Или я должен поговорить с ним, спросив об изменениях, которые он сделал?

Я новичок в этой компании, и он тоже. Но он, кажется, менее опытен, чем я.

РЕДАКТИРОВАТЬ

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

Во всяком случае, я сказал ему, что внесу изменения, и я исправил и совершил.

Расслабляться. Сначала поговорите с ним. Спокойно и конструктивно.
Как вы думаете, лучше поговорить в скайпе или лично с моим менеджером, и другие люди тоже слушают?
Сначала вы идете лично к другому разработчику и разговариваете с ним. Оставьте менеджера.
Прохладный. Что меня раздражает, так это то, что кто-то зафиксировал код с ошибкой
Дерьмо случается. В следующий раз это может быть проверка некоторых ошибок. На этом этапе вам следует подумать об интеграционном тестировании и непрерывной интеграции, которые можно использовать в качестве счетчика ошибок сборки в целом.
Это ошибка сборки. Его легче увидеть, потому что все классы КРАСНЫЕ
@LMaker, если все красное, я бы предположил, что есть незафиксированные изменения, или отсутствующая ссылка, или отсутствующая DLL, которую вы должны получить в другом месте, не обязательно, что с проектом что-то принципиально не так.
Ошибки случаются. Хотите верьте, хотите нет, но вы будете совершать ошибки, которые другие сочтут отвратительными. Даже у выдающихся людей бывают выходные. Так что не раздражайтесь из-за того, что люди пишут код с ошибками, и научитесь принимать тот факт, что люди несовершенны и допускают ошибки.
По мнению @ user1666620, проблема может быть в вашей собственной среде, а не в том, что сделал другой разработчик (особенно если все классы красные). Расслабьтесь, поговорите с другим разработчиком и поработайте над проблемой. Разработка программного обеспечения — это совместный процесс.
Помните, что большинство работодателей (по моему опыту) меньше заботятся о том, кто испортил проект, а больше о том, кто и как это исправил.
есть обновление ребята
Вы должны объяснить ему, в чем проблема, почему это была проблема и как вы ее решили, если ему действительно «все равно». Возможно, в краткосрочной перспективе ему было все равно (например, потому что он сосредоточился на множестве других важных вещей), хотя такое может случиться. Как правило, сбои сборки неприемлемы, но это не значит, что их можно исправить сразу же, когда другие вещи станут более насущными.
Я рассказал ему о проблеме и о том, почему важно ее решить.
Серьезно? Вы хотите привлечь менеджера, потому что коммит не собирается? Подойдите к его столу и спросите, что он изменил и почему это не строится на вашей машине. Если у вас нет фиксированной среды разработки, вполне может быть, что конфигурация на вашем компьютере немного отличается от конфигурации на его.
@LMaker, так он все равно строился? Некоторые IDE просто тупые и жалуются на проблемы, которых нет. Может быть, он думал, что и здесь так же, поскольку сборка, по-видимому, не была сломана.
Да, это было. Он обновил плагин сборки gradle до альфа-версии с некоторыми ошибками, это и было причиной. Просто понизьте версию, это исправлено

Ответы (6)

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

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

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

Спокойно поговорить с ним об этом должно быть первым шагом, ведь вы же коллеги.

У одного из лучших разработчиков, с которым я когда-либо работал, была привычка в течение нескольких лет изменять что-то в двух местах репозитория и коммитить одно.
Да, верно. Но это должно быть в описании коммита, верно? У нас нет хрустального шара
Да, но, как вы сказали, он менее опытен, чем вы. Он может быть новичком в управлении версиями, что может означать, что это случай случайной фиксации в неправильной ветке или просто забвение о том, что он должен зафиксировать все свои изменения, как в примере @DavidThornley.
Соглашаться. Скажи ему, что он сломал конструкцию, и пусть починит. Если вы пойдете прямо к руководителю, это не сделает вас лучше в глазах коллег по нескольким аспектам. Вероятно, это также не сделает вас лучше в глазах вашего менеджера.

Я должен думать, что менеджеру достаточно контроля версий или другой видит, кто запорол проект?

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

Или я должен поговорить с ним, спросив об изменениях, которые он сделал?

Говорить с ним. Не вините его. Укажите, почему он сломан, а затем спросите: «Как мы можем это исправить?» Подчеркните, что все, о чем вы заботитесь, — это довести проект до конца.

Я новичок в этой компании, и он тоже. Но он, кажется, менее опытен, чем я.

Ну и что? Это не соревнование. Будут другие, более опытные, чем вы.

Я работал около 3 лет один, мне было сложно работать с командой. Спасибо за вашу помощь

Говорить с ним. Не бегите к менеджеру, когда что-то не строится.

Вы уверены, что ваша среда настроена правильно? Есть ли вероятность, что вы что-то упустили? Дважды проверьте, прежде чем обращаться к коллеге. Когда вы обратитесь к нему, я предлагаю сформулировать вопрос как просьбу о помощи в создании проекта.

Что-то вроде «Я удалил репозиторий, но он не собирается. Я не уверен, что я что-то неправильно настроил, не могли бы вы мне помочь?»

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

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

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

Как я могу справиться с этим?

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

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

Поговорите с ним один на один об изменениях. Посмотрите, не является ли это проблемой конфигурации с вашей стороны. Если это так, проблема решена.

Если нет, посмотрите, как вы можете использовать рабочий процесс, чтобы этого больше не повторилось.

Изучив, как включить обзоры и автоматические сборки в вашей текущей системе, обратитесь к техническому руководителю. Скажи что-нибудь вроде

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

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

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

Шаг 1: Поговорите с ним. Упомяните, что сборка сломана, и последняя фиксация в ней была его фиксацией, поэтому спросите его, что произошло (важно не говорить «вы сломали сборку!», потому что а) это обвинение и б) возможно, его изменение на самом деле не было изменение, которое сломало сборку, например, может быть, это было изменение конфигурации, или, может быть, вы забыли об изменении, которое вы сами внесли, и т. д., и в этом случае вы выглядите очень резким и обвиняющим).

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

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

Шаг 3: В следующий раз, когда этот конкретный коллега сломает сборку, промойте и повторите. Если это происходит несколько раз, и вы чувствуете, что это образец безответственности, вы можете пойти к своему менеджеру и сказать: «Привет, Боб, ты знаешь, что Джо несколько раз нарушал сборку, и я пытался поговорить с ним о это, но, похоже, ему все равно, не могли бы вы поговорить с ним об этом?» или что-то вроде того. Не впадайте в агрессию или обвинение; сделать вопрос о поломке сборки, а не о коллеге. Ваш менеджер решит, как лучше действовать дальше.

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

Некоторые серверы сборки могут даже обслуживать созданные артефакты, если это необходимо.

Если у вас его нет, получите его. Хорошим местом для начала является Jenkins, с которым очень легко начать.

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

Настройка сервера сборки — хорошее техническое предложение, но без обсуждения, согласия команды и дисциплины это не заставит людей волшебным образом исправлять свой код. Если они не знакомы с этой практикой, они будут рассматривать любые электронные письма, отправленные им сервером сборки, как спам и игнорировать их.
@Brandin Естественно, для этого нужна политическая поддержка. Итак, сначала попросите босса сказать: «Вот как мы будем это делать».