Просто размышляя вслух - мы, программисты, любим все эти материалы для голосования / бейджей / повторов, так что можно ли внедрить подобную схему в процесс проверки кода компаний, чтобы способствовать лучшему кодированию.
Что-то вроде
Вы (или другие лица от вашего имени) можете опубликовать рецензию (может быть фрагмент, один коммит или серию) для рецензирования кода
Другие могут прокомментировать это (будет похоже на ответы в SE)
Значки могут быть предоставлены / предложены (некоторые были бы хорошими, некоторые были бы плохими как "Пустыня комментария" или некоторые другие)
Вы можете голосовать за / против самого кода, а также комментариев и значков (например, если кто-то предложил значок, а вы согласились / не согласились)
Целью такой схемы было бы
Добавьте немного веселья, чтобы поощрить использование обзоров кода
Улучшение качества (в этой схеме, как рецензент кода, так и рецензенты, вероятно, узнают)
Уменьшите вероятность того, что обзоры кода вызовут «войны эго»
Дайте некоторые показатели, чтобы помочь измерить индивидуальную производительность
Может ли это работать? Мысли?
Ответы:
Внешнее вознаграждение, такое как деньги, значки или репутация, будет работать, краткосрочно , как диеты и любая другая система, основанная на вознаграждении / наказании.
Вместо этого следует использовать внутреннее вознаграждение , такое как цель и автономия, и обеспечить более долгосрочные результаты. Это гораздо сложнее применить на практике, чем простые внешние системы вознаграждений, но это окупается.
Многие эксперты провели исследования по этому вопросу. Вот мои два фаворита:
Даниэль Пинк выступил с великолепной презентацией на TED по теме, которую легко посмотреть и понять.
Альфи Кон , автор книги « Наказанные наградами» , писал на эту тему:
Другая проблема с вознаграждениями (и наказаниями) состоит в том, что это изменит поведение людей. Например, если вы дадите бонус своему сотруднику, он будет сфокусирован на получении этих бонусов, независимо от других (общекорпоративных) целей. Это создаст индивидуализм и конкуренцию между отделами и сотрудниками. Будет возмущение, и все будут наблюдать за всеми. Особенно, когда одна из ваших целей - «помочь измерить индивидуальную эффективность».
Остальной сотрудник может опровергнуть правила игры и выйти. Увеличение оборота станет новой проблемой.
Обратите внимание, что в этом сообществе было сделано много предложений о том, как улучшить мотивацию .
источник
Да, это может
Но только если вы разрабатываете это очень тщательно, иначе это может иметь неприятные последствия. Я сделал несколько комментариев, но подумал, что суммирую свою позицию
Для репутации главная цель должна состоять в том, чтобы обеспечить измерение, которое сотрудники могут использовать для отслеживания повышения квалификации с течением времени. Разработайте его очень тщательно, помня, что сложно найти хорошие способы измерить навык, я не могу сделать это изо всех сил.
Значки, в основном, «забавные», я бы держал их подальше от проблем, связанных с навыками. Т.е. значки вроде "Сова этой недели" или группа "Отправлено! Знак" были бы в порядке. Если у вас есть значки, основанные на навыках, такие как «Исправлено большинство ошибок» или «Сообщено большинство ошибок», очень тщательно продумайте, как это может быть воспринято и использовано. Значки должны быть больше о выделении поведения, чем о продвижении его ИМО. Обязательно иметь как командные, так и индивидуальные значки.
Я настоятельно рекомендую против отрицательных значков, эти вещи должны быть забавными, и заставлять людей бояться делать ошибки опасно. Создайте дружественное полезное письмо для этих случаев.
Я настоятельно рекомендую не позволять им решать и голосовать за значки. Люди могут присылать свои предложения для значков, но так как их влияние на людей может быть довольно серьезным, то, какие значки используются, должно приниматься осторожным решением человека, который знает, что делает, а не голосует большинством.
Обзоры кода - это интересная идея, и я думаю, один из способов, которым вы могли бы создать ценность навыка. Выделение кода и его обсуждение может быть очень полезным. Однако, это может иметь неприятные последствия, если все знают, что они судят потенциально обо всем, что они пишут, разработка может замедлиться до ползучести. Особенно с итеративной разработкой, где вы иногда пишете что-то быстро, а затем реорганизуете такое поведение, которое вам не нужно.
Возможно, это может быть компенсировано либо тем, кто отправляет код самостоятельно, либо кем-то еще, кто может предоставить код определенного возраста. Тем не менее, это может быть сложно, зная, какие последствия будут
В конце концов, я думаю, вам придется попробовать и посмотреть, что работает, а что нет, есть хорошая книга под названием « Разрушенная реальность», которая может быть интересной. Также обязательно прочитайте книгу Даниэля Пинкса "Драйв".
источник
На мой взгляд, НЕТ , так как он измеряет не саму хорошую практику, а симптом (если другие считают, что это хорошая практика).
Перефразируя книгу дяди Боба (забыл название): Хороший код кажется почти легким, он делает проблему тривиальной, как если бы язык был создан для ее написания.
По моему опыту, такой код остается незамеченным, и только спустя долгое время он обращает внимание на то, что этот код никогда не создавал проблем, и, может быть, потом вспоминается, что проблема была до введения кода в огромном беспорядке неопределенности и неопределенность. Код, который получает похвалы в обзорах, - это, как правило, тот, на который рецензенты обращают внимание в хороший день, когда не в настроении придираться, и в нем меньше всего изменений.
источник
Идея принесет новую динамику в команду. Если вы чувствуете, что команда находится в колее, то это хороший способ встряхнуть вещи.
Просто помните, что это будут не все единороги и радуги. Некоторым не понравится эта инициатива, поэтому может пострадать общая производительность / качество. Однако этот риск может стоить того. Зависит от вашей ситуации.
источник
Я предлагаю использовать внешнюю мотивацию (то, что вы предлагаете, является формой внешней мотивации), чтобы мотивировать людей делать «механические», повторяющиеся и скучные вещи, такие как:
Я бы не использовал его для мотивации на любом виде работы, который требует творчества или где качество не может быть измерено объективно. Например, если у вас есть человек, создающий виджеты, и вы можете механически проверить, является ли деталь хорошей или плохой, и у вас есть процесс, который не позволяет изготавливать деталь, если она не следует утвержденному процессу, тогда продуктивно мотивировать работник с внешним вознаграждением за производительность, потому что процесс не позволит им использовать ярлыки, чтобы сделать больше единиц за счет качества.
Если у вас нет этих мер безопасности, то ваша попытка внешней мотивации, безусловно, будет иметь неприятные последствия. Программирование подпадает под эту категорию - мы просто не можем надежно измерить качество программного обеспечения. Это потому, что когда вы создаете виджет, он покидает завод и не влияет на работу, которую вы выполняете со следующим виджетом, но когда вы создаете программное обеспечение, вы должны продолжать переделывать его снова и снова. То, что вы делаете сейчас, имеет долгосрочные последствия. Эти долгосрочные эффекты очень важны, но их невозможно измерить. Внутренняя мотивация является гораздо более полезным мотиватором для такого рода вещей.
Это значит:
источник
Часть того, что делает эту работу, - большое количество участников, которые не знают друг друга или должны работать друг с другом ежедневно. Я бы подумал, что в небольшой группе это станет более подходящим способом заставить систему выглядеть хорошо или заставить вашу конкуренцию за продвижение выглядеть плохо. Вот почему официальные оценки коллег часто являются плохой системой. В небольшой группе люди с лучшим представителем будут теми, кто является политически проницательным, а не лучшим программистом.
источник
Краткий ответ: да, это может сработать.
Немного более длинный ответ: да, это может сработать, но также может иметь неприятные последствия.
В дополнение к тому, чтобы быть профессиональным программистом, я также являюсь любителем-аналитиком поведения.
Одним из основных результатов современной науки о поведении является то, что на поведение сильно влияют его последствия.
Если вы контролируете последствия, вы можете до некоторой степени влиять на поведение. Степень зависит от того, насколько важны конкретные последствия для каждого человека, чье поведение вы пытаетесь изменить, и от того, насколько легко им избежать ваших последствий и найти других, на которых они готовы работать.
Как профессиональный программист, одним из последствий написания кода является то, что мне платят; Прекратите платить мне, и я перестану появляться в ближайшее время. Плата является действительно важным следствием для меня (я воспитываю семью), и в моей нынешней компании нет никаких других последствий, на которые я хотел бы работать вместо того, чтобы получать оплату.
Если бы вы были моим боссом, вы бы решили, какие последствия (стимулы, подкрепления) предложить мне. Но вы не можете решить, как я их воспринимаю. Например, мой босс может решить предложить специальное парковочное место, если меня выберут «Кодером месяца». Если бы я жил в Сан-Франциско или Нью-Йорке и водил машину, я мог бы быть готов работать для этого. Но там, где я сейчас живу, парковка не проблема, и я могу ходить на работу в любом случае.
По моему опыту, самый большой риск, с которым вы сталкиваетесь при внедрении такой программы, как SO, на рабочем месте, заключается в том, что вас могут воспринимать как предложение равных голосов вместо выплаты людям того, чего они стоят.
источник