[Из песочницы] Как отучить puppy-разработчика гадить в коде? (Trash story)

d2622c847dcc41f6aba1677c9619527b.png Прочитав небезызвестную книгу Ханка Райнвотера «Как пасти котов», я пришёл к мысли, что, возможно, эта книга идеально подходит для выгула уже воспитанных обитателей «фауны программистов». Однако что делать с только что окончившими ВУЗы новичками? Воспитание новоиспеченного разработчика (недопрограммиста) очень схоже с воспитанием щенка, который пока не понимает куда справлять нужду и как не гадить дома.

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

Если вы желаете избавиться от этой проблемы навсегда, тогда вам стоит узнать:

  1. Что может побудить разработчика начать писать плохой код?
  2. Как быстро приучить Junior«а писать чистый код?
  3. Как правильно наказывать провинившегося и надо ли?
  4. Как себя вести, если после код-ревью сотрудник не хочет исправляться?

Почему новичок гадит в коде


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

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

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

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

Эффективные способы борьбы


Существует достаточно советов относительно того, как отучить puppy-разработчика справлять нужду в коде. Итак, основные правила:
  • Никогда не кричите на вашего новичка (во время и после «преступления»). Если вы начнете кричать после того, как он нагадил, то он примет к сведению, что при вас гадить нельзя и будет прятаться от вас, чтобы сделать шкоду.
  • Никогда не бейте Junior«а и не тычьте носом в кучу. Это обижает его, и он не понимает, почему его, после совершенного факта, наказывают.
  • Всегда будьте последовательны и постоянны. Желая приучить кодить нормально необходимо делать это регулярно в одно и то же время. Если в один день вы провели ревью, а в другой вам лень или вы не смогли, а потом пришли и выругали «puppy», он точно не поймет, что вы от него требуете.
  • Всегда поощряйте своего подопечного после того, как он напишет нормальный кусок кода. Обязательно похвалите его.

Последовательные шаги обучения


  1. Если после карантина в отдельной ветке, вы начинаете вводить новичка в основу, то необходимо делать это перед тем, как малыш нагадит. Проследите за своим подопечным, через какой промежуток времени он хочет в туалет.
  2. Совершайте код-ревью в одинаковое время. Правильно созданный режим поможет puppy ощутить вашу заботу и внимание.
  3. Геймефицируйте процесс обучения щенки любят поиграться. Чем больше разработчик общается с остальными, тем быстрее вникнет в процессы команды. Придумайте игры, чтобы новичок смог себя проявить, желательно trash-игры. Это также приведет к желанию опустошить кишечник и останутся только светлые желания к процессу кодописания.

Методы наказания


Помните, puppy-разработчик, хоть не полноценный сотрудник, но всё же очень умное создание, которое достаточно остро реагирует на настроение своего наставника. Если вы не обижаете своего новичка, он будет откликаться на любую вашу просьбу. Конечно, спокойно реагировать на лужу или кучу, сделанную в чистом куске кода, трудно, но можно показать свое недовольство:
  • Поменяйте тон голоса и пожурите своего новобранца за сделанное.
  • Заберите любимую игрушку (доступы к соц.сетям) и дайте поиграться только тогда, когда код станет чище.
  • Как только видите, что новичок хочет сделать лажу, употребите команду: «Фу! Таким быть! Вот как надо: … … …». Он должен понимать, как вы относитесь к такому и делать правильно.

Заключение


Применение этих советов помогло многим вырастить из puppy-разработчиков настоящих профи, которые не ходят справлять нужду в код проекта и сами следят за порядком.

Никогда не опускайте рук и держитесь последовательности. По итогу ведь новичок сам хочет отучиться лажать и стать нормальным программистом и полноценным членом команды.

Пусть ваш новобранец будет самым послушным и «чистым» членом команды! Удачи!

Комментарии (3)

  • 4 октября 2016 в 14:50

    0

    Наказывать не надо. Если человек недостаточно мотивирован надо искать другого.


    Молодого разработчика надо помещать в учебку — давать простые задачи и каждое изменение должно проходить подробное code review с придирчивым вниманием ко всем аспектам качества, соблюдение стандартов кодирования, осмысленные наименования и прочее.


    Еще рекомендуют pair programming для передачи опыта, но я не пробовал в постоянном режиме

  • 4 октября 2016 в 14:55

    0

    Пятницей повеяло, спасибо!
  • 4 октября 2016 в 15:01

    +3

    Анус себе отучи, пёс. Что в переводе со стиля автора означает «раз уж вы прошли путь от щенка до взрослой собаки, потрудитесь пожалуйста не гадить на хабр».

© Habrahabr.ru