Виктор Честер
инженер-разработчик и артист-любитель

Польза с первого дня

07.04.2012
— Как на тропу войны так не мал, а как на фильму…
— Стыдись, Белое Перо. Ты ещё не отпраздновал свою 16-ю весну.
Из к/ф «Человек с бульвара Капуцинов»

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

Часто бывает так, что квалификации стажёра или свежеиспечённого специалиста не хватает для того, чтобы решать задачи на проекте. Крупные фирмы организуют курсы, на которых «доучивают» тем знаниям и навыкам, которые действительно пригодятся в работе и соответствуют современному уровню развития разработки. Небольшие фирмы постепенно адаптируют молодых специалистов прямо в рабочем коллективе. Обычно программы курсов получаются слишком академичными, где даются все теоретические основы разработки и какого-то языка программирования. Но в них, к сожалению, не попадают навыки, приобретаемые гораздо сложнее, чем изучение языка, как например, подходы к решению задачи от постановки до конечного результата, умение взаимодействовать в команде и т.д. Адаптация в коллективе обычно сталкивается с ситуацией, когда поручить что-то реальное нельзя, времени у наставника не так много, чтобы провести индивидуальное обучение, а занять человека чем-то надо. Спасает задача «изучить» что-то или «разобраться» с чем-то, которая, разумеется, не делает человека более готовым к решению задачи. Обучение, изучение, чтение — это суть процессы, а задача должна всегда иметь конкретный результат и обозримые сроки исполнения.

Любая теория людьми с техническим образованием (пусть даже незаконченным) осваивается быстрее, чем нарабатывается опыт и набиваются «шишки». Сложности возникают и при увязывании теории и практики. Поэтому гораздо эффективней, если наставник просто введёт в курс дела: объяснит логику организации исходного кода на проекте; покажет, как запускать проект; объяснит маленький кусочек архитектуры, с которым на первых порах придётся работать стажёру. И сразу после этого поставит перед ним реальные задачи. В процессе работы возникнет множество проблем и вопросов, пока всё заработает и получится сделать хотя бы первую задачу. Но это будут уже правильные вопросы, нужные именно сейчас навыки, и что самое главное, это будут первые практические результаты. Тропа войны — это отличный способ научить  человека брать на себя ответственность.

Около полугода назад мне очень понравилась методика набора специалистов, описанная в статье «С корабля на бал». Мне хотелось бы дополнить её более конкретным тезисом: любой сотрудник должен приносить пользу с первого дня работы в компании. Желательно, чтобы эта польза была практической и связана с проектом компании. Можно и кофе готовить, в принципе, или в офисе прибрать, но лучше сделать статический анализ кода, например, заодно и с исходниками познакомиться, если уж навыков не хватает пока, чтобы начать кодировать сразу. Возможно, этот тезис покажется слишком жёстким по отношению к новичкам, но на мой взгляд, это именно то, что позволит этим новичкам однажды стать гуру. А вечная подготовка и системное изучение какого-либо вопроса на рабочем месте может сделать из них только теоретиков, а закончиться может и вовсе прокрастинацией. Некоторые воспринимают такое предварительное обучение как инвестиции в будущий вклад сотрудника, но более разумным представляется на начальном этапе инвестировать в сотрудника не больше того, что он инвестирует в проект и компанию. Ещё таким методом можно отсеять задолго до окончания испытательного срока большинство «пассажиров».

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

P.S. Написано полгода назад, но пределы песочницы хабра так и не покинуло)

Глава 21. Ежедневное достижение, «The Passionate Programmer: Creating a Remarkable Career in Software Development»