Как привлечь новый прокат до скорости по существующему проекту?

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

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

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

Я бы посоветовал не читать такие вещи, как чтение документации (если у вас нет хорошего короткого документа, дающего полный обзор дизайна системы), обзоров кода или моего любимого - "знакомство с кодовой базой".

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

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

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

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

Ответ 4

Исправлены ошибки.

Это, безусловно, лучший способ изучить кодовую базу. Да, это отстой, но это отличный способ узнать.

Ответ 5

Недавно я был новым арендатором в этой ситуации... хотя у меня был предыдущий опыт "реального мира".

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

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

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

Конечно, если есть доступная краткосрочная, но значимая работа, начните с нее. Суть в том, чтобы дать четко определенные задачи с целью. В противном случае, если они похожи на меня, они приступят к своим задачам и целям, чтобы не допустить самоубийства от скуки.

Ответ 6

Дайте ему задачу, которая обновляет какой-то существующий код. Задача не должна быть ужасно трудной, но она требует знания кода. Будьте доступны для вопросов, но не говорите, как это сделать. После того, как исправление было закодировано, сядьте с программистом и перейдите к решению.

Хорошо, чтобы программист имел некоторую свободу в написании кода, который выполняет эту работу. Вероятно, это приведет к появлению новых методов в системе, которые помогут вам стать лучшим программистом.

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

Ответ 7

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

  • Существующие инструменты устарели и нуждаются в некоторых новых функциях.
  • Я узнал, как организованы различные проекты и кодовые базы.
  • Это дало мне возможность адаптироваться к стилям и практике кодирования компании.

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

Я уверен, что у каждой компании есть какой-то инструмент или проект с низким приоритетом, с которым у кого-то еще нет времени для работы. Дайте этот проект новому парню, дайте ему возможность написать новый код, а затем посмотреть, как все работает. В худшем случае проект является провалом, но никакого производственного кода не было нанесено.

Ответ 8

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

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

Изменить: я не связан с автором книги, мне просто нравится его идея и была представлена ​​ей моим нынешним работодателем.

Ответ 9

Программирование пар

Я согласен со многими ответами здесь, особенно Learn by Doing. Я экспериментировал с разными способами, предлагая новый прокат:

  • Работа со сторонним проектом, чтобы получить удобство с окружающей средой.
  • Tinker и пусть они медленно меняют вещи с непрерывными обзорами кода.
  • По очереди парное программирование с разными членами команды, фактически работая над проектом

Я думаю об этом таким образом, чтобы, если бы я был новым арендакой какой-то строительной компании и ему было поручено построить стену в существующем доме, но не было там в течение предыдущих 6 месяцев этого дома, риск, связанный с тем, что я делаю все правильно, идет вверх. Однако, если в этот первый день (и дни после этого) они спарили меня с кем-то, кто знал, чего ожидать, я буду чувствовать себя более комфортно, и я уверен, что компания будет чувствовать себя более комфортно, зная, что я учусь от кого-то, strong > сделал это раньше... и сделал это правильно.

Из разных попыток ничего не было сделано так успешно, как Pair Programming. Кажется, что нет никаких альтернатив для того, чтобы помогать кому-то изучать входы/выходы системы /tools/language/project/etc. Это действительно неважно, на чем они работают... будь то новые функции, исправление ошибок, побочные проекты, системы сборки и т.д. Существует большая разница между тем, кто на самом деле говорит, как вы работаете против , показывающего, как вы.

Ответ 10

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

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

Ответ 11

Одна из самых полезных вещей - прогулка по программе, которую он собирается поддерживать, и объяснить, как работает система. Удостоверьтесь, что объяснение бизнес-процесса - одна из главных вещей, охваченных в первый день. Независимо от того, как работает код (или не работает), вам нужно понять, что он должен выполнить.

Ответ 12

Многие из них посвящены изучению процессов вашей организации. Это не просто изучение того, как работает код.

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

Мы приняли стажера в этом году и дали ему гораздо больше надзора, в том числе внимательно рассмотрели его первый кусок кода и неоднократно, пока он не был прав. Три месяца он по-прежнему нуждается в некоторой помощи иногда, но знает, когда спросить, и созрел в полезный член команды.

Если вы решили использовать их, вы уже приняли решение доверять им. Дайте им наставника (возможно, вы), постепенно подвергайте их системам и кодовой базе и работайте оттуда.