Я знаю, что Subversion (то, что мы используем на работе) может быть настроен так, чтобы требовать комментариев к коммитам, однако я не в состоянии просто включить это. Я знаю, что моя причина комментировать мои коммиты заключается в том, что полезно, хотя бы в качестве пробежки по памяти, быстро понять причину коммитов. Однако этого недостаточно для борьбы с двумя ответами, которые я всегда получаю:
- Это занимает слишком много времени, и я просто хочу внести свои изменения в репо.
- Достаточно просто посмотреть на различия.
Я даже показываю им ценность простого ввода идентификатора проблемы JIRA и того, как он автоматически связывается с проблемой, но все равно не играет с ними.
Хуже всего то, что человек, который может сделать звонок, находится в том же лагере: он не хочет беспокоиться и хорошо смотрит на различия.
Я знаю, что это правильно, но как я могу заставить их видеть свет? Даже если я не могу убедить своих коллег-разработчиков, как я могу убедить руководство в том, что это правильно для бизнеса?
источник
#10291
. Ссылка будет сразу очевидна, и все соответствующие детали уже должны быть в системе отслеживания ошибок.Ответы:
Сосредоточьтесь на «Почему». Все очень хорошо смотрят на различия и видят, что кто-то изменил логический поток раздела кода или что-то в этом роде, но почему они изменили его? Почему обычно указывается в соответствующем билете (JIRA для вас).
Они могут задаться вопросом, почему важно «Почему», но через 2 года, когда вы обнаружили ошибку, которая влияет на это изменение, знание того, почему это было сделано, невероятно важно не только для исправления вашей новой ошибки, но и для уверенности Вы не заставляете старую ошибку повторно появляться.
Существует также причина одитинга. Обязательные коммиты и идентификаторы тикетов позволяют легко сказать, что все в порядке, мы выдвигаем версию 2, это исправляет дефекты 23, 25, 26 и 27, но нет коммитов для дефекта 24, поэтому он все еще не исправлен.
источник
why
регистрацию - это именно то, что вам нужно: дать разработчикам вескую причину (мотивация AKA), почему они должны использовать (содержательные) комментарии для регистрации.Заставьте их делать слияния и иметь дело с поддержкой. Опять же, возможно, вы не в состоянии сделать это, но если вы обнаружите, что решаете проблему с предыдущего коммита, вежливо отправьте ее через забор и скажите. Я не могу сказать, что вы сделали, потому что нет комментариев коммитов, вы внесли эти изменения, вам нужно это выяснить.
Также для слияния веток. Не уверен, падает ли это на вас или нет, но я нашел комментарии полезными.
Опять же, не в вашей лодке, но когда я управлял командой разработчиков программного обеспечения, я сказал им, если они будут делать хорошие комментарии, я буду использовать их в качестве еженедельного отчета о состоянии. После этого я получил отличные коммиты, и мне было легче следить за тем, что происходило в качестве менеджера.
источник
Нам нужны комментарии для регистрации по той же причине, по которой нам нужны разрывы строк и интервалы в нашем коде. Чтобы было легче выслеживать, понимать, понимать и понимать.
Иногда вам нужно сравнить, но часто нет. Заставить разработчиков сравнивать, когда все, что им нужно было прочитать 2-3 предложения, - это пустая трата времени. Интересно, почему они не видят ценность времени разработчика.
источник
Не бойтесь быть скрипучим колесом. Борьба с вредными привычками других людей часто является войной на истощение.
источник
Это должен быть один из самых странных вопросов, которые я слышал. Люди тратят часы или даже дни на то, чтобы починить что-то, а лишние 2 секунды, чтобы ввести сообщение коммита, слишком долго ?! Я должен сказать, что буду беспокоиться о работе с такими близорукими людьми. Они явно не используют свои инструменты, чтобы даже приблизиться к своему полному потенциалу.
Вот пример из обзора кода, в котором я принимал участие на прошлой неделе. Наше программное обеспечение для управления версиями не сохраняет историю при слияниях, поэтому для более старых изменений вы должны найти точную ветвь, в которой оно было сделано, в противном случае в сообщении о фиксации просто отображается что-то вроде «слияния с веткой Y». Ветвь Y может показывать «слитый с веткой Z», а ветвь на несколько уровней глубже в действительности имеет реальное сообщение коммита.
Новый сотрудник не знал, как правильно отследить историю, а это значит, что он по сути работал только с разницей. Он увидел закомментированный код, связанный с обнаруженной ошибкой. Когда он раскомментировал код, его ошибка исчезла. Он предположил, что кто-то закомментировал код во время отладки и по ошибке зарегистрировал его.
Это не показалось правильным для нас двоих во время проверки кода, поэтому я отследил реальное сообщение о коммите и обнаружил, что год назад была веская причина для удаления этого кода. Новый сотрудник смог исправить свой код, чтобы исправить недавно обнаруженную ошибку, без повторного введения старого.
Существуют лучшие способы избежать введения таких регрессий, как тщательные модульные тесты, но почему-то я не вижу людей, которые не могут возиться с сообщением о фиксации в 2 секунды, которое «тратит» время на модульное тестирование.
источник
У меня была точно такая же проблема, поэтому я добавил хук pre-commit для Subversion, чтобы он не принимал коммиты, которые не начинались с номера пользовательской истории (некоторое базовое сопоставление с образцом для ожидаемого формата).
Ничто не мешает им войти в 000-0000, но однажды только дурацкий дурак соберет число, когда у них там вполне приемлемое число.
Я сделал это, потратив несколько дней, пытаясь найти, в какие сборки входит набор пользовательских историй. Да, это было связано со сбоем процесса в другом месте, но это все еще невероятно ценная информация для отслеживания.
источник
Хорошие комментарии коммитов похожи на любую хорошую документацию, кэш для вашего медленного и неработающего мозга или кэш результатов длительной отладки / анализа / исследования проблем.
Например, всякий раз, когда вы тратите время на выяснение чего-либо, например отладки, анализа журналов или чего-то еще, ваши выводы и результаты являются ценными. Конечно, большинство задач можно повторить, но это может занять время. Поэтому вы всегда должны документировать свои результаты.
Тем не менее, документирование требует времени, а иногда это считается ненужным, например, «мы должны были сделать это только один раз, так зачем записывать это». Это нормально, но как только вы сделаете то же самое во второй раз, потому что вы не документировали результаты в первый раз, тогда, конечно, будет разумно документировать результаты.
Так что, если ваши коллеги чувствуют, что добавлять комментарии для коммитов - это слишком много работы, например, по крайней мере, указать на дело / билет Jira, которые они решали, что ж, тогда они могут быть мотивированы давлением постоянных ответов на вопросы относительно причины каждого из них. ревизии.
На мой взгляд, документация должна составляться как функция запрашиваемой информации. Например, почтовая переписка - довольно хорошая система документирования. Вопросы получают ответы, которые впоследствии могут быть получены, вот как списки рассылки и форумы на практике работают как базы знаний.
К сожалению, там, где я работаю, почта автоматически удаляется через 3 месяца, поэтому на практике это не всегда работает.
источник
Ищите прощения, а не разрешения.
Несмотря на резкость, я сделал именно это. У меня было соотношение 50/50 между людьми, поддерживающими и противостоящими, большинство из которых были на одном уровне со мной в группе. Аргументы были: «Меня не беспокоит» и «Какой смысл?». (Обе указывают на апатию и лень, а не на искренние опасения).
Я добавил хук pre-commit, который просто измерял длину строки и выдавал немного юмористическое сообщение, прежде чем отклонить его. Я поместил свое имя в сообщение, чтобы ответственность за «это безобразие» была ясна. Конечно, «оппозиция» может легко удалить ее, но копание в сценариях потребует больше усилий, чем добавление еще одного комментария!
В течение недели я получал сообщения вроде * * (объяснение удалено) или kjhfkwhkfjhw. После этого начали появляться основные сообщения.
Год спустя скептики используют осмысленные комментарии и фактически признают, насколько они были близоруки. Я никогда не смог бы достичь консенсуса, но я, конечно, получил прощение и, возможно, доверие. Это работает, люди используют это.
Если вы хотите быть более близким по духу (или считаете, что у вас могут быть проблемы), попросите разрешения добавить зацепку фиксации на пробный период. Скажите, что если людям это не понравится через 2 или 4 недели, вы уберете это. Скорее всего, они потеряют интерес ... или полюбят его.
источник
Я обычно убеждаю людей через:
Если бы я хотел, чтобы наша команда сделала что-то плохое, я бы продолжал приставать, пока не добьюсь своего. Я стараюсь приставать в те времена, когда могу указать, что мы могли бы сэкономить время / деньги, если бы мы уже делали X.
Дополнительные веские причины для комментариев:
источник
источник
Как вы заставляете их хотеть добавлять хорошие комментарии?
Из опыта с коллегой у меня только что было. В конце проекта мы должны были написать сводный документ обо всех изменениях, внесенных в течение всего проекта. Не сделав хороших записей коммита, мой коллега посчитал эту задачу довольно трудоемкой, и теперь перешел к довольно длинным комментариям с каждым коммитом.
Таким образом, одним из решений может быть то, что разработчики пишут итоговые документы в конце проекта, которые подробно описывают, какие изменения были внесены в какие файлы, какие файлы были добавлены / удалены и почему.
источник
Предложите это руководству за закрытыми дверями:
Происходит наихудший сценарий: все разработчики высшего уровня выходят за дверь.
Поскольку компания изо всех сил пытается заполнить пустые места для разработчиков, перед командой менеджеров ставится задача информировать клиента о состоянии системы.
Спросите их, что, по их мнению, облегчит их работу по восстановлению истории приложения:
Чтение простого английского коммитов, которые четко описывают меняющееся состояние системы?
Или они предпочли бы посмотреть на различия в коде и самим разобраться?
источник
Я думаю, что один из способов убедить их в том, чтобы на самом деле испытать боль, которую вы чувствуете.
Например, предположим, что они работают над следующей проблемой: у них есть ошибка, которая каким-то образом появилась, когда было реализовано другое исправление для того же кода (о ирония). Было бы здорово посмотреть на это с помощью простого поиска сообщений коммита (и, следовательно, выяснить, кто это написал).
Другой способ - объяснить им, что сообщение коммита может быть полезно, чтобы дать подсказку о том, почему что-то реализовано определенным образом. Даже если в сообщении фиксации просто написано «функция X», вы все равно можете получить представление о том, кто его реализовал, чтобы вы знали, с кем поговорить.
источник
Вы пытались бросить вызов своим коллегам-разработчикам, чтобы они получали какую-то другую выгоду от размещения комментариев? Можно посмотреть на это с любой из нескольких точек зрения:
Что еще нужно рассмотреть, насколько хорошо вы знаете, что ваши коллеги-разработчики управляют, где вы работаете? Если они пытаются сделать 10 вещей вчера, то я могу понять, что они могут не захотеть изменить то, что они считают чем-то, что уже работает. Вы пытаетесь сказать им: «Нет, это не работает?» Если так, то я могу видеть, как они могут быть немного оборонительными или боевыми в этом. Если вы пытаетесь сказать им: «Хотя это может сработать, есть альтернатива, которая может быть лучше ...», тогда у вас может быть шанс. ИМО, если вы придерживаетесь позиции «святее вас», то это вам не поможет.
источник
Другой способ смотреть на это как способ для разработчика (ов) , участвующих в развитии их карьеры - они должны владеть в документации их работы.
В дополнение к другим пунктам, поднятым в статье, упомянутой выше, есть возможность просматривать изменения кода, чтобы выяснить, где / когда / почему было сделано изменение. Это может быть жизненно важно при поиске неуловимой ошибки.
источник
Убедив их в важности комментирования ваших коммитов, вы можете создать скрипт, который будет комментировать коммиты, иначе он потерпит неудачу. Вы даже можете указать минимум символов, чтобы обеспечить значимый комментарий. Это поможет им «запомнить».
Однако важно, чтобы они поняли «Почему», как сказал @Kevin, иначе они просто добавят произвольный комментарий.
источник
У вас есть отзывы кода? Одна вещь, которая может помочь, - это установить правило, согласно которому любой коммит или слияние должен просматриваться и утверждаться другим разработчиком. Затем, если вы являетесь рецензентом, вам придется попросить разработчика, делающего обязательство, объяснить вам, что он сделал. Как только он это сделает, вы должны попросить его ввести в комментарий то, что он только что сказал вам. Зачастую, когда невозможно однозначно объяснить сделанные изменения, это означает, что эти изменения не должны были быть сделаны в первую очередь.
Я должен сказать, однако, как люди могут возражать против чего-то столь же полезного, как комментировать? Это не займет много времени, и это хорошо проведенное время. Написание комментария заставляет вас задуматься о том, что вы только что сделали. Это может даже заставить вас взглянуть на различия, чтобы убедиться, что вы действительно сделали то, что, как вы думаете, вы сделали, и что вы не сделали ничего глупого.
Когда вы не пишете комментарии, вы неряшливы и недисциплинированы. И если вы настаиваете на том, что вам не нужно писать комментарии, то вы преднамеренно небрежны.
источник
Скажите им, что это единственный способ сохранить свой процедурный беспорядок в 50 000 строковых методов, а затем подумайте о написании лучшего, более четкого кода в будущем, чтобы вам не приходилось иметь дело с кучей бессмысленных комментариев, вздувающих вашу кодовую базу.
источник
Это элемент процесса изменения: попросите менеджера назначить код, разработанный "x", для "Y" для проверки качества только кода, включая проверку качества комментариев.
В моей собственной организации разработчики не имеют права выполнять окончательный контроль качества своего собственного кода и регистрировать его, это должен сделать другой разработчик. Часть проверки качества - это комментарии, поэтому никаких комментариев, никакой регистрации. Мы выполняем большую работу по контракту, где наше «искусство» на самом деле является чьей-то контрактной интеллектуальной собственностью, поэтому другие должны иметь возможность понимать и использовать наш код. Кроме того, бывают случаи, когда проекты возвращаются к нам после долгого перерыва, и мы должны иметь возможность подобрать код спустя 18-24 месяца и понять, почему, где и как мы пришли к артефакту кода перед нами. Это обеспечивает корыстную мотивацию для написания комментариев.
источник
Попросите ваших коллег-разработчиков сделать несколько слияний, посмотреть историю и сравнить несколько файлов из истории.
Скорее всего, они попросят вас оставить комментарии на следующий день.
источник
Вот несколько советов:
источник
Если ваш источник контроля обеспечивает это, включите обязательные комментарии, чтобы предотвратить любые оставленные без комментариев коммиты. Все достаточно просто, и все скоро поймут, что 5 секунд ввода комментария безболезненно.
Но комментирование без комментариев - один из самых маленьких минусов. Я участвовал во многих успешных проектах, где ни один коммит не был прокомментирован. Не собирай свои трусики в кучу.
источник