2008-08-26 1 views
11

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

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

ответ

11

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

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

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

3

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

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

0

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

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

1

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

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

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

1

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

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

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

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

1

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

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

Редактировать: Я не являюсь аффилированным лицом автора книги, мне просто нравится его идея и была представлена ​​ему моим нынешним работодателем.

2

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

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

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

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

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

2

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

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

+0

Не совсем. Исправления ошибок не помогут вам получить обзор всех движущихся частей. Это часто может быть упражнением в крайнем разочаровании, когда вы отправляетесь на дикие гусиные погони, пытаясь найти системы и подсистемы, которые делают вещи. Я думаю, что это худший способ получить программиста до скорости. – PlexQ 2012-05-21 20:13:34

0

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

0

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

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

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

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

1

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

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

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

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

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

2

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

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

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

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

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

Смежные вопросы