В основном это запись моего выступления на Ruby Conf Thailand 2019.
Слайды доступны по адресу: https://speakerdeck.com/aemeredith/start-your-own-apprenticeship-program.
Все хотят нанять старших разработчиков
Спрос на увеличение количества сотрудников во многих технологических компаниях растет,
даже несмотря на трудности с наймом лучших специалистов. Чтобы противодействовать этому, некоторые крупные компании убрали требуемый барьер для входа в колледж.
Возьмем, к примеру, технологических гигантов Apple, Google и IBM. Этим компаниям больше не требуется четырехлетнее высшее образование для многих должностей, в том числе для некоторых технических должностей. Ослабление этого извечного требования открывает двери для тысяч потенциальных сотрудников.
— https://www.comptia.org/resources/it-industry-trends-analysis
Благодаря онлайн-обучению и всевозможным буткемпам в нашей отрасли избыток талантливых младших разработчиков, но не хватает открытых вакансий для джуниоров.
Ваши люди — ваш самый ценный ресурс. Вы можете внедрять инновации, только если у вас есть нужный талант с нужными навыками. Нынешние традиционные методы найма не отвечают требованиям. Компаниям нужны новые решения. Одним из таких решений является реализация программы ученичества или повышения квалификации.
В 2017–2018 годах я проходил шестимесячную стажировку в компании Hooroo,
теперь это отели Qantas в Мельбурне, Австралия. Это было признано большим успехом, и в настоящее время мы изучаем варианты его повторного запуска.
Согласно Британнике, ученичество — это...
обучение искусству, торговле или ремеслу в соответствии с юридическим соглашением, которое определяет продолжительность и условия отношений между мастером и учеником.
Программа ученичества позволяет работодателям оценивать таланты и предоставлять ученикам структурированный период обучения. Суть ученичества заключается в том, чтобы позволить ученику многое узнать о компании и отрасли за короткий промежуток времени под руководством наставника.
Ученик ☞ Подмастерье ☞ Мастер
Профессиональные занятия существуют очень давно. Они были чем-то вроде договорного соглашения между мастером и учеником и длились от двух до семи лет, в зависимости от конкретной профессии, после которой ученик становился странником.
Термин происходит от французского слова день, то есть путешествие, и в основном означал, что подмастерье будет получать посуточно за свою работу. После периода обширного опыта подмастерье мог представить часть своей лучшей работы в соответствующую гильдию для оценки и утверждения. Если бы этот шедевр был принят, они могли бы стать мастерами, открыть свою собственную мастерскую и обучать учеников. — https://technicaleducationmatters.org/2011/01/06/short-history-of-apprenticeships/
Чем она отличается от стажировки?
По определению стажер — это студент или стажер, который работает, иногда бесплатно, чтобы получить опыт работы или соответствовать требованиям для получения квалификации.
Так что, вообще говоря, стажеры обычно являются студентами с краткосрочным контрактом, сосредоточенным на одном конкретном проекте, что подразумевает, что они будут выполнять «грязную работу».
С другой стороны, ученик — это человек, который учится ремеслу у квалифицированного работодателя, согласившись работать в течение определенного периода времени за [относительно] низкую заработную плату.
Таким образом, можно сказать, что обучение – это:
- обучение на рабочем месте, которое
- ориентируется на устойчивый рост;
- более долгосрочное взаимодействие,
- с реальным приложением и
- специальное наставничество;
- включает в себя обучение в классе, которое относится к профессии,
- позволяя ученикам оттачивать свое мастерство;
- это также включает в себя некоторую оценку талантов;
- и завершение ученичества обычно приводит к полной занятости.
Почему вы должны начать один?
Наем джуниоров улучшает командные рабочие процессы
- Улучшает разнообразие: открывает резерв кандидатов и помогает продвигать и поддерживать инициативы в области разнообразия. Увеличивает разнообразие фона и навыков потенциальных кандидатов.
- Улучшенная производительность и повышенная производительность, поскольку доказано, что разные команды работают лучше.
- Написание более простых объяснений способствует лучшему пониманию кодовой базы.
- Вещи документируются лучше.
- Общение становится явным.
Найм джуниоров способствует развитию команды
- Улучшает удержание существующих членов команды.
- Обеспечивает обучение сотрудников лучшим практикам и процессам компании.
- Предоставляет работодателям конкурентное преимущество благодаря хорошо обученной и гибкой рабочей силе.
- Устраняет разрыв в навыках между старшими и младшими.
- Поддерживает масштаб быстрорастущих компаний.
- Экономит время и деньги на подборе и адаптации талантов.
Что тебе нужно?
Как минимум, ученик, наставник и компания, которая готова инвестировать.
Покупка компании
Вам понадобится поддержка старшего руководства, руководителя компании, который хочет создать кадровый резерв для роста компании. Важно понимать, что для обеспечения успеха вашей программы потребуются время и деньги.
Командный бай-ин
Вам также понадобится команда, которая готова наставлять и работать непосредственно с учеником. Ученики добиваются успеха, когда команда посвящена и стремится работать с новичком.
Ответственное лицо (лица)
Либо человек, управляющий программой, и/или наставник и ученик, вкладывающиеся в успех программы.
Как вы запускаете программу?
Шаг 1: сначала вам нужно понять потребности вашей компании.
Некоторые ключевые факторы, которые следует учитывать:
- Продолжительность программы (3/6/12 месяцев)
- Количество учеников
- Кто за что отвечает
- Что должны знать ученики перед тем, как начать
- Чему они должны научиться в программе
- Как они это узнают
Затем следует также разработать план:
- Определите реалистичные ожидания
- Установить временную шкалу
- Спланируйте, как найти и нанять учеников
- Развивать процессы и логистику
- Установить бюджет
Шаг 2: исходные кандидаты
- Как вы будете набирать и проверять кандидатов? И убедиться, что все требования соблюдены?
- Определите, что вы ищете в ученике
- Определитесь с уровнями оплаты
- Решите, на каких каналах продвигать вашу программу.
- Определите процесс найма
- Настройте процесс найма для начального уровня
- Установить даты в календаре
- Выберите комитет по найму
- Сделайте найм командным решением
Я напишу о процессе найма, который мы использовали, в последующем посте.
Шаг 3: разработайте программу
Некоторые вопросы, которые вы должны задать:
- Какое обучение будет проводиться?
- Что включить в учебную программу?
- С какими компетенциями должны выйти ученики?
- Кто будет координатором программы?
- Как вы будете измерять и оценивать результаты учеников?
Шаг 4: как направлять
- Установите реалистичные ожидания.
- Подготовьте команду и наставников, например, я провел с командой сессию о том, как работать в паре с юниором. Одно и то же занятие было дано ученикам.
Это дало всем одинаковую основу и общий язык. - Подумайте, как адаптировать учеников. Я начал с ознакомления со многими инженерными рабочими процессами, связанными с реальным программированием, например: как подходить к обучению, как объединять программы, как проводить проверки кода и давать отзывы, как подходить к отладке в Ruby, как проводить ретроспективы…
- Подумайте, как проводить программу и обучение.
Шаг 5: определите успех
Вам нужно будет определить, как выглядит успех для вас, чтобы вы знали, что находитесь на правильном пути.
Вам также следует подумать о том, как оценивать прогресс учеников. Некоторые идеи могут быть:
- Проект ломающейся игрушки.
- Оценка как проект с установленными требованиями для выставления баллов.
- Индивидуальная оценка, основанная на личном уровне уверенности.
- Викторина в конце программы.
В Мельбурне
Довольно много компаний имеют какие-то программы поддержки новых людей, будь то программа для выпускников REA, DevelopHer от MYOB, акселератор переподготовки ANZ или программа стажировки ZenDesk. Я хотел бы особо отметить пару, Envato и Culture Amp.
У Envato есть юридическое исключение, позволяющее рекламировать только женщин. Для своей программы ученичества они нанимают двух женщин-разработчиков, у которых затем есть специальный наставник для работы.
Наш подход делает упор на захватывающий опыт, давая нашим ученикам реальные задачи в составе наших инженерных команд в паре с наставником по программированию. Это означает, что они участвуют во всем, начиная от сессий планирования, стендапов и ретроспектив, а затем парного программирования со своими назначенными наставниками.
— Марио Визик
В рамках программы ученики меняются командами, и завершение программы зависит от того, сочтут ли их готовыми и ученики, и их инструктор.
Молодежная инженерная программа Culture Amp проводилась дважды за последние три года. Каждая группа программы включала десять младших разработчиков. Каждый ученик-разработчик был нанят в определенную команду. Сначала они разделили рабочую неделю на два дня, работая над программой, и три дня, работая в своей команде.
Вскоре они поняли, что это работает не так хорошо из-за слишком частого переключения контекста. Поэтому программа изменилась на одну тренировочную неделю каждые три недели.
По оценке Culture Amp, выбор был сделан на Rails-проекте с установленными требованиями, которые составили 100 баллов.
Моя программа обучения: Инженерная академия в отелях Qantas
Программа длилась шесть месяцев и была платным обучением. Это было сочетание структурированного обучения и работы на рабочем месте. Мы чередовали академические недели с работой над продуктом и обнаружили, что полные недели с командой давали начинающим разработчикам достаточно времени, чтобы взять на себя ответственность за карточки с историями, а также отдохнуть от периодов интенсивного обучения.
Большинство академических дней также состояло из теоретических занятий, работы над кодом и периодов самостоятельной работы. Полный план учебного плана можно найти на странице https://trello.com/b/oRii8I9h/apprenticeship-programme.
Программа включала:
- Установить учебный план
- Парное программирование
- Во время академических недель мы начинали каждый день с упражнения по кодированию от Exercism. Мы ограничили это до одного часа в день, иначе наше утро пропало бы без предупреждения.
- Мы следовали модели постепенного освобождения от ответственности. Сначала мы использовали групповое программирование, затем продолжили работу в парах (две группы по два человека)
и в течение двух месяцев перешли к выполнению упражнений индивидуально.
Каждый день мы сравнивали решения и обсуждали предложения по улучшению. - Студенты молниеносно рассказывают на небольшие темы, которые потом также давали на местных митапах.
- Клуб технической книги: мы прочитали три книги за шесть месяцев, и менялись, кто проводил занятия каждую неделю.
- Хрупкая игрушка: ученики-разработчики выполнили личный проект (следуя руководству Планы ученичества), в котором они практиковали то, чему научились, и использовался для окончательной оценки и оценки их знаний и понимания.
- Каждые две недели 1:1 со мной и с техническим менеджером по альтернативным неделям.
- Каждые две недели ретроспективы о том, как продвигалась программа ученичества и как мы могли бы улучшить ее по ходу дела, например, меньше домашних заданий и больше времени для практики в классе.
- Каждому ученику-разработчику был назначен приятель-наставник, с которым они могли поговорить о своем прогрессе и задать любые насущные вопросы.
- Групповые занятия: получение большей поддержки от команды за счет проведения некоторых более углубленных занятий, например, обучение разработчиков работе с AWS.
- Ротация команд для практической части работы, чтобы ученики-разработчики могли испытать, как работают разные команды. Это также помогло с передачей знаний и неглубокой разрозненностью для всех инженерных групп. Команда познакомилась с учениками, и они стали частью компании.
- Размещение: в конце программы размещение в зависимости от организационных потребностей и пожеланий ученика.
В результате все четыре ученика выбрали команды и были продуктивными членами этих команд в течение последних двух лет.
Резюме
Организация обучения разработчиков в вашей организации создает среду непрерывного обучения. Это поможет всем вашим инженерам понять стек технологий, культуру и общий словарь. Это помогает с вовлечением и удержанием команды. Это значит инвестировать в команду. Вам будет полезно представить свежие взгляды и идеи. Вы наймете отличных кандидатов, которым поможете сформировать будущих инженеров вашей компании. Так почему бы не начать программу ученичества сегодня?
Если вы заинтересованы в найме, разработке и/или проведении программы ученичества в вашей компании, давайте поговорим!