Появление Junior-разработчика в команде требует времени и дополнительных сил для того, чтобы привить хорошие привычки и навыки. Одной из самых важных привычек является научить его не
Если вы желаете избавиться от этой проблемы навсегда, тогда вам стоит узнать:
- Что может побудить разработчика начать писать плохой код?
- Как быстро приучить Junior’а писать чистый код?
- Как правильно наказывать провинившегося и надо ли?
- Как себя вести, если после код-ревью сотрудник не хочет исправляться?
Почему новичок гадит в коде
Неопытный девелопер, которого вы взяли на работу может и не догадываться, что гадит в коде. На первых месяцах пребывания дома большинство разработчиков находятся в режиме карантина из-за неопытности и делают коммиты только в отдельные ветки проекта. Поэтому для маленького программиста становиться вполне привычным писать не качественный код и коммитить его в строго отведенное место, где ничего не сломается. Когда вы начинаете вводить новичка в основную ветку проекта, он может весело играться и не кодить так как надо вам.
Важно помнить, что культура кода молодняка (как мочевая система у щенков) еще недостаточно развита. Маленький программист не может выдерживать 8-часовые интервалы в потоке. Поэтому не дождавшись очередного ревью, щенок может сделать не одну кучку или лужицу.
Другой причиной может стать недостаток внимания. Бывает так, что вы хорошенько замотивировали Junior’а утром и оставили его одного на целый день. Желая выразить протест, он может ни с того, ни с сего наделать лужу в самом простом месте. Таким способом он выражает недовольство своим наставником, показывая, что не желает оставаться долго в одиночестве.
Если в вашей команде подросток-разработчик, который приучен регулярно проходить ревью и пишет уже без лажы, вдруг начинает “портить коврик”, обратите внимание на две предполагаемые причины. Скорее всего, ваш сотрудник заболел. Очень часто у программистов, которые занимаются отвратным для них проектом, возникают проблемы с мочевой системой мотивацией и некогда чистый проект начинает попахивать собачьим дерьмом.
Также ваш подросток мог перегореть на прошлом проекте. Если он не только валит кучи плохого кода в тестовых средах, но и какает в основную ветку проекта, это может быть верным признаком пережитого стресса или обиды на своего Тим Лида. Не игнорируйте данные причины, возможно его стоит выгулять в отпуске.
Эффективные способы борьбы
Существует достаточно советов относительно того, как отучить puppy-разработчика справлять нужду в коде. Итак, основные правила:
- Никогда не кричите на вашего новичка (во время и после «преступления»). Если вы начнете кричать после того, как он нагадил, то он примет к сведению, что при вас гадить нельзя и будет прятаться от вас, чтобы сделать шкоду.
- Никогда не бейте Junior’а и не тычьте носом в кучу. Это обижает его, и он не понимает, почему его, после совершенного факта, наказывают.
- Всегда будьте последовательны и постоянны. Желая приучить кодить нормально необходимо делать это регулярно в одно и то же время. Если в один день вы провели ревью, а в другой вам лень или вы не смогли, а потом пришли и выругали «puppy», он точно не поймет, что вы от него требуете.
- Всегда поощряйте своего подопечного после того, как он напишет нормальный кусок кода. Обязательно похвалите его.
Последовательные шаги обучения
- Если после карантина в отдельной ветке, вы начинаете вводить новичка в основу, то необходимо делать это перед тем, как малыш нагадит. Проследите за своим подопечным, через какой промежуток времени он хочет в туалет.
- Совершайте код-ревью в одинаковое время. Правильно созданный режим поможет puppy ощутить вашу заботу и внимание.
- Геймефицируйте процесс обучения щенки любят поиграться. Чем больше разработчик общается с остальными, тем быстрее вникнет в процессы команды. Придумайте игры, чтобы новичок смог себя проявить, желательно trash-игры. Это также приведет к желанию опустошить кишечник и останутся только светлые желания к процессу кодописания.
Методы наказания
Помните, puppy-разработчик, хоть не полноценный сотрудник, но всё же очень умное создание, которое достаточно остро реагирует на настроение своего наставника. Если вы не обижаете своего новичка, он будет откликаться на любую вашу просьбу. Конечно, спокойно реагировать на лужу или кучу, сделанную в чистом куске кода, трудно, но можно показать свое недовольство:
- Поменяйте тон голоса и пожурите своего новобранца за сделанное.
- Заберите любимую игрушку(доступы к соц.сетям) и дайте поиграться только тогда, когда код станет чище.
- Как только видите, что новичок хочет сделать лажу, употребите команду: «Фу! Таким быть! Вот как надо: … … ...». Он должен понимать, как вы относитесь к такому и делать правильно.
Заключение
Применение этих советов помогло многим вырастить из puppy-разработчиков настоящих профи, которые не ходят справлять нужду в код проекта и сами следят за порядком.
Никогда не опускайте рук и держитесь последовательности. По итогу ведь новичок сам хочет отучиться лажать и стать нормальным программистом и полноценным членом команды.
Пусть ваш новобранец будет самым послушным и «чистым» членом команды! Удачи!
Комментарии (20)
PerlPower
04.10.2016 15:01+25Анус себе отучи, пёс. Что в переводе со стиля автора означает «раз уж вы прошли путь от щенка до взрослой собаки, потрудитесь пожалуйста не гадить на хабр».
Viktor_Andreev
04.10.2016 15:48-14Что же так задело твою ранимую душу? Trash story не обязательна к прочтению и как правило перенасыщена сарказмом, абсурдными сравнениями, чёрным юмором и просто стёбом :-)
Я конечно могу понять, что для тебя, скорей всего, trash — это если скажут Perl умер, но тут другое.
Хабру нужны не только заунывные статьи по программированию, но и фановые. Где-то же должны такие старожилы «гадить в комментах». ИМХО.
Не отходя от стиля, скажу так: «извиняй если нагадил на твой любимый коврик, полкан».PerlPower
04.10.2016 16:12+15И в моем первом комментарии был намек, что иная Trash story не обязательна не только к прочтению, но и к написанию.
В вашей статье нет трэша, нет фана, а абсурдные сравнения режут слух. Выглядит как криво переделанная паста. По поводу же вашего черного юмора, стёба, и сарказма — это уровень дворовых пацанчиков, которые любят поугарать над тем кто слабее. И тут я вижу как раз такой быдло-юморок, который был пронесен сквозь годы и карьерную лестницу.Viktor_Andreev
04.10.2016 16:20-9Каждый видит в написанном что-то своё. Однако, спасибо за время уделенное на прочтение. По итогу пост не оставил равнодушным уже хорошо.
Newbilius
04.10.2016 16:53+8Если сломать лифт в высотном здании — это тоже не оставить никого из живущих в здании равнодушным. Но вот повод ли для гордости сей факт для сломавшего?
DeadKnight
04.10.2016 16:22+5Интересно, а проводить старые добрые прекоммит ревью религия мешает?
Это наверное покажется странным, но все перечисленные выше проблемы будут решены, если программист, вне зависимости от его уровня, не сможет закоммитить свой код, если он не устраивает ревьювера.
P.S. особенно про доступы к соц.сетям доставило. Человек приходит на работу работать. Если он не выполняет свои рабочие обязанности, то его нужно не от соц.сетей отлучать, а увольнять.
Barafu
04.10.2016 17:04+7Было у меня в команде двое. Один любил имена переменных a, b, c, i, i1, i2, i3… И типа auto. Другой имена вроде KolichestvoKomplektofPitaniaNaBoitza и AzimutNaznachennogoSektoraKontrolya. и тип unsigned short для единичной переменной на 64битном десктопе. Я им как то сказал «Парни, вот вам бы пожениться....»
spmbt
04.10.2016 19:18+1Также полезен личный пример, когда наставник присаживается рядом и показывает, как надо делать правильно или разбирает сделанное по косточкам.
old_bear
04.10.2016 22:07+4Автор так заботливо донёс до нас свои детские комплексы на тему мочеиспускания и дефекации, что рука не поднимается пинать его за стилистику изложения.
Сочувствую вам, автор. Не исключено, что вам ещё не поздно обратиться к специалистам для решения своих психологических проблем. А вот на хабре вам вряд ли помогут, тут профиль другой.
M-A-XG
06.10.2016 12:04Бред.
При пулл-реквесте в любом случае нужно просматривать код, пофиг кто его писал.
ApeCoder
Наказывать не надо. Если человек недостаточно мотивирован надо искать другого.
Молодого разработчика надо помещать в учебку — давать простые задачи и каждое изменение должно проходить подробное code review с придирчивым вниманием ко всем аспектам качества, соблюдение стандартов кодирования, осмысленные наименования и прочее.
Еще рекомендуют pair programming для передачи опыта, но я не пробовал в постоянном режиме
Viktor_Andreev
Тут всё про тоже :) По сути забота о джуниоре на «чёрный лад»
ApeCoder
Мне кажется, основной посыл поста — фантазия о доминировании над менее опытном коллегой путем сравнения его с неопытным животным, причем присутствует копрофильская нотка — обычно люди не пишут так много о дефекации, хотя и метафорической.
Viktor_Andreev
Понимаешь в чём дело. Писать как же круто и здорово быть наставником и могу, потому как это реально круто — отдавать знания и радоваться успехам людей. Писать о код-ревью, парном программировании и манускриптах вхождения в технологический стек подразделения, скрам-митингах и прочих стандартных вещах я могу. Кому это интересно будет? Таких статей много.
Доминирование — вещь относительная в процессе командной разработки. Всё зависит от той призмы через которую ты смотришь на вещи. Если посмотреть через негативную, то можно сказать, что и код-ревью выглядит как процесс досмотра.
ApeCoder
То ли дело сабачьи какашки! Фекального юмора мы не слышали с детства!
Тут я имел ввиду точку удовольствия — удовольствие от унижения другого человека.