Наша компания наняла пять новых младших разработчиков, чтобы помочь мне разработать наш продукт. К сожалению, новые функции и входящие исправления ошибок обычно требуют более глубоких знаний, чем обычно имеет недавно законченный разработчик (многопоточность / параллелизм, устранение узких мест производительности в сложной системе и т. Д.)
Делегирование (и планирование) задач, которые они (вероятно) могут решать, отвечая на их вопросы, наставляя / управляя ими, просматривая их код, занимают все мое время, и я часто чувствую, что могу решить проблемы меньше времени, чем весь процесс делегирования занимает (считая только мое время). Кроме того, у меня нет времени для решения задач, которые требуют более глубоких системных знаний / более продвинутых навыков, и не похоже, что это изменится в ближайшем будущем.
Так, что теперь? Что я должен сделать, чтобы эффективно использовать свое время?
Ответы:
Да, вы можете решать вещи быстрее, чем они, поэтому вы старше, а они нет. Тем не менее, хороший старший хочет, чтобы его юниоры тоже перешли на уровень старшего, и единственный способ, которым вы можете это сделать, - это позволить им научиться делать что-то.
Наставничество - это наиболее эффективное использование вашего времени, а не кодирование.
Посмотрите на это следующим образом: если вы потратите следующие шесть месяцев на эффективное наставничество, а младшие учатся достаточно, чтобы стать разработчиками среднего уровня - тогда у вас будет 5 промежуточных разработчиков и один старший. Если вы выполняете всю тяжелую работу самостоятельно, потому что это быстрее, через шесть месяцев у вас будет 5 юношей, которые крутят свои пальцы (ну, к тому времени лучшие из них перейдут на другие рабочие места, если вы не дадите им сложную работу, так что вы может иметь меньше или новичков младшего возраста) и один перегруженный и капризный старший.
Вы знаете, какие сложные взаимодействия обычно встречаются в ошибках, поэтому разработайте некоторое обучение специально для этих типов, если есть вещи, как устранить неполадки и найти актуальную проблему, а затем типы методов, которые обычно необходимы для их устранения. Затем дайте им эти проблемы, когда они придут. Да, их исправление займет больше времени, и вы должны учесть это в своих временных оценках.
Идея парного программирования великолепна. Соедините с другим для каждой проблемы, которая действительно продвинута. Даже если они еще не знают достаточно, чтобы решить проблему, младший за клавиатурой, пока вы говорите им, что пытаться найти причину, поможет научить их устранению неполадок. Конечно, не ожидайте, что они примут диктовку. объясните, что вы хотите, чтобы они искали и почему. Спросите их идеи и послушайте их. Объясните, почему их идея не является хорошим выбором, если это не так. Используйте сократовский метод обучения, задавая наводящие вопросы. Они будут лучше помнить решение, которое они придумали сами, задавая ваши главные вопросы, чем то, которое вы продиктовали им без объяснения причин. Кроме того, они будут помнить лучше, если они на самом деле напечатали решение, а не просто наблюдали, как вы его печатаете.
После того, как младший помог вам решить определенный класс проблем как часть пары с вами, вы можете связать его с кем-то еще в следующий раз, когда этот класс проблем появится, и быть доступным только для консультаций, а не стоять над их плечами, пока они пробуют разные вещи.
У вас есть пять новых людей, что действительно сложно. Вы должны быть честны со всеми из них и менять, с кем вы соединяетесь или давать указания. Не играй в избранное. Но вы также должны быть человеком, который обеспечивает «жесткую любовь», если кто-то не преуспевает и не делает успехи. Возможно, вам придется отозвать одного или нескольких из них и сказать им, что им нужно улучшиться и почему вы чувствуете, что они не преуспевают. SOme peopel позволит вам выполнить всю работу, если вы создадите пару, и вы не сможете этого сделать, потому что это проще. Если человек не может выполнять эту работу, он будет добрее к ним и будет гораздо лучше для вашей команды, если вы не несете их один раз, очевидно, что они не могут или не будут учиться быть более независимыми.
Помните, вы получаете то, что ожидаете. Если вы не ожидаете многого, вы не получите много. Ожидайте, что они сияют, и большинство из них подойдет к вашему стандарту.
источник
Парное программирование звучит как отличная возможность здесь.
Для анекдота / примера работы этого предложения: так я познакомился с самой красивой частью кодовой базы, над которой я работаю, - с другим относительно новым разработчиком, с которым я работал в паре, мы в итоге сделали что-то вроде этого:
С тех пор я унаследовал поддержку всей этой части кодовой базы, поскольку я действительно единственный, кто понимает, как это работает больше (оригинальные разработчики, которые все еще существуют, даже не помнят полностью).
источник
Научить их. Задайте им задачи, которые они могут легко решить.
Проще говоря, проблема в том, что упомянутая рабочая сила не достаточно квалифицирована, чтобы быть очень продуктивной в выполнении своей задачи. Таким образом, вы можете либо: 1) облегчить задачу 2) попытаться повысить квалификацию рабочей силы.
Подобная проблема почти всегда возникает (в некоторой степени) всякий раз, когда новый человек присоединяется к команде и начинает работать над кодовой базой, с которой у него нет опыта. Это становится большей проблемой, если инструменты и методологии неизвестны. Благодаря тому, что человек будет лучше знаком с инструментами и методологиями, проблему можно будет облегчить быстрее.
Однако решение такой проблемы требует времени - нельзя просто ожидать, что другие узнают все или изучат все в один момент. Возможно, неплохо было бы представить некоторые книги о параллелизме, оптимизации программного обеспечения и общих методологиях.
источник
Похоже, вы не были частью решения о найме. Сделайте справедливую оценку своим способностям справляться с текущими задачами. Запишите отчет с рекомендацией (внешнее обучение и такие задачи, если это не влияет на время доставки), отправьте отчет своему менеджеру, который может начать беседовать с тем, кто нанял этих ребят. Один новый человек может быть поглощен командой, но 5 новых людей одновременно звучат не очень хорошо, если у вас нет расслабленного магазина. Что бы вы ни делали, не пытайтесь учить их во время вашего проекта, если это не учтено в плане.
Изменить: может быть целесообразно упомянуть закон Брука в этой ситуации.
источник
Возможно, вы можете потратить некоторое время на создание среды песочницы, в которую вы можете добавить их, чтобы решить некоторые сложные проблемы, не причиняя вреда. Пусть они проверят свои решения как можно тщательнее. Положите более 1 на ту же проблему.
Все эти вещи дают им возможность стать достаточно квалифицированными, чтобы быть полезными, плюс они требуют меньше вашего времени. Конечно, если они у вас (в основном) тонут или плавают, и они в значительной степени тонут, то вам придется переосмыслить вещи.
В профессии программиста люди, которые не могут учиться в основном самостоятельно, вероятно, не стоят того, чтобы их научить. Но я думаю, что они, вероятно, будут в основном удивлять вас тем, как хорошо они справляются, когда вы сокращаете помощь.
источник