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

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

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

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

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


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

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

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

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

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

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


Существует достаточно советов относительно того, как отучить puppy-разработчика справлять нужду в коде. Итак, основные правила:

  • Никогда не кричите на вашего новичка (во время и после «преступления»). Если вы начнете кричать после того, как он нагадил, то он примет к сведению, что при вас гадить нельзя и будет прятаться от вас, чтобы сделать шкоду.

  • Никогда не бейте Junior’а и не тычьте носом в кучу. Это обижает его, и он не понимает, почему его, после совершенного факта, наказывают.

  • Всегда будьте последовательны и постоянны. Желая приучить кодить нормально необходимо делать это регулярно в одно и то же время. Если в один день вы провели ревью, а в другой вам лень или вы не смогли, а потом пришли и выругали «puppy», он точно не поймет, что вы от него требуете.

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

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


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

  2. Совершайте код-ревью в одинаковое время. Правильно созданный режим поможет puppy ощутить вашу заботу и внимание.

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

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


Помните, puppy-разработчик, хоть не полноценный сотрудник, но всё же очень умное создание, которое достаточно остро реагирует на настроение своего наставника. Если вы не обижаете своего новичка, он будет откликаться на любую вашу просьбу. Конечно, спокойно реагировать на лужу или кучу, сделанную в чистом куске кода, трудно, но можно показать свое недовольство:

  • Поменяйте тон голоса и пожурите своего новобранца за сделанное.

  • Заберите любимую игрушку(доступы к соц.сетям) и дайте поиграться только тогда, когда код станет чище.

  • Как только видите, что новичок хочет сделать лажу, употребите команду: «Фу! Таким быть! Вот как надо: … … ...». Он должен понимать, как вы относитесь к такому и делать правильно.

Заключение


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

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

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

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


  1. ApeCoder
    04.10.2016 14:50
    +1

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


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


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


    1. Viktor_Andreev
      04.10.2016 15:52
      -5

      Тут всё про тоже :) По сути забота о джуниоре на «чёрный лад»


      1. ApeCoder
        04.10.2016 16:32
        +17

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


        1. Viktor_Andreev
          04.10.2016 16:50
          -6

          Понимаешь в чём дело. Писать как же круто и здорово быть наставником и могу, потому как это реально круто — отдавать знания и радоваться успехам людей. Писать о код-ревью, парном программировании и манускриптах вхождения в технологический стек подразделения, скрам-митингах и прочих стандартных вещах я могу. Кому это интересно будет? Таких статей много.
          Доминирование — вещь относительная в процессе командной разработки. Всё зависит от той призмы через которую ты смотришь на вещи. Если посмотреть через негативную, то можно сказать, что и код-ревью выглядит как процесс досмотра.


          1. ApeCoder
            04.10.2016 17:08
            +5

            Кому это интересно будет?

            То ли дело сабачьи какашки! Фекального юмора мы не слышали с детства!


            Доминирование — вещь относительная в процессе командной разработки

            Тут я имел ввиду точку удовольствия — удовольствие от унижения другого человека.


  1. za90
    04.10.2016 14:55
    +1

    Пятницей повеяло, спасибо!


    1. Viktor_Andreev
      04.10.2016 15:53

      Не за что :)


  1. PerlPower
    04.10.2016 15:01
    +25

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


    1. Viktor_Andreev
      04.10.2016 15:48
      -14

      Что же так задело твою ранимую душу? Trash story не обязательна к прочтению и как правило перенасыщена сарказмом, абсурдными сравнениями, чёрным юмором и просто стёбом :-)
      Я конечно могу понять, что для тебя, скорей всего, trash — это если скажут Perl умер, но тут другое.
      Хабру нужны не только заунывные статьи по программированию, но и фановые. Где-то же должны такие старожилы «гадить в комментах». ИМХО.
      Не отходя от стиля, скажу так: «извиняй если нагадил на твой любимый коврик, полкан».


      1. PerlPower
        04.10.2016 16:12
        +15

        И в моем первом комментарии был намек, что иная Trash story не обязательна не только к прочтению, но и к написанию.

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


        1. Viktor_Andreev
          04.10.2016 16:20
          -9

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


          1. Newbilius
            04.10.2016 16:53
            +8

            Если сломать лифт в высотном здании — это тоже не оставить никого из живущих в здании равнодушным. Но вот повод ли для гордости сей факт для сломавшего?


  1. DeadKnight
    04.10.2016 16:22
    +5

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

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

    P.S. особенно про доступы к соц.сетям доставило. Человек приходит на работу работать. Если он не выполняет свои рабочие обязанности, то его нужно не от соц.сетей отлучать, а увольнять.


  1. i360u
    04.10.2016 16:57
    +12

    В командной работе очень важно взаимоуважение. Поэтому нифига не смешно.


  1. tangro
    04.10.2016 17:00
    +5

    Ты смотри, кинолог нашелся.


  1. Barafu
    04.10.2016 17:04
    +7

    Было у меня в команде двое. Один любил имена переменных a, b, c, i, i1, i2, i3… И типа auto. Другой имена вроде KolichestvoKomplektofPitaniaNaBoitza и AzimutNaznachennogoSektoraKontrolya. и тип unsigned short для единичной переменной на 64битном десктопе. Я им как то сказал «Парни, вот вам бы пожениться....»


    1. Fen1kz
      04.10.2016 19:22

      del


  1. spmbt
    04.10.2016 19:18
    +1

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


  1. old_bear
    04.10.2016 22:07
    +4

    Автор так заботливо донёс до нас свои детские комплексы на тему мочеиспускания и дефекации, что рука не поднимается пинать его за стилистику изложения.
    Сочувствую вам, автор. Не исключено, что вам ещё не поздно обратиться к специалистам для решения своих психологических проблем. А вот на хабре вам вряд ли помогут, тут профиль другой.


  1. M-A-XG
    06.10.2016 12:04

    Бред.
    При пулл-реквесте в любом случае нужно просматривать код, пофиг кто его писал.