Проект «Нашкодим», или как мы обучали сотрудников iOS-разработке
Полный цикл создания мобильного приложения – это результат слаженной работы многих сотрудников... в идеале. На практике же каждая фича имеет шансы попасть в производственный водоворот, где разрабы ругаются на усложнённый дизайн, а тестировщики бьются в истерике, не понимая, как можно было оставить столько багов.
Чтобы наладить коммуникацию между отделами и подружить все этапы разработки между собой, мы запустили серию корпоративных проектов под общим названием «Нашкодим». Первой его частью стал внутренний iOS-курс для сотрудников компании, которые не работают с кодом. О нём нам рассказал iOS-разработчик MobileUp и ментор курса Денис Сушков.
Кому и для чего это нужно?
На первый взгляд, такие навыки могут показаться избыточными. Но мы и не ставили цели превратить каждого сотрудника в потенциального разраба.
Изначальные задачи были куда прозаичнее:
- Рассказать о технической стороне процесса даже тем, кто считает себя полным гуманитарием;
- Показать, как макеты превращаются в код, как верстают разработчики и какие требования предъявляют к дизайну;
- Объяснить, откуда берутся баги и как их можно предотвратить;
- Дать представление о реальных коммерческих проектах, их масштабе и сложности;
- Сделать так, чтобы все сотрудники говорили на одном языке или хотя бы понимали, о чём говорят разрабы, когда в ход идут профессиональные термины.
Нашей целевой аудиторией в первую очередь были дизайнеры и QA. Но после объявления о запуске курса выяснилось, что поучаствовать в нем захотели менеджеры проектов, HR и даже наш редактор (но так и не смог из-за большого количества желающих – прим. ред.). Спрос оказался таким высоким, что мы решили собрать два потока.
На протяжении месяца участников курса ожидало 8 занятий, посвящённых знакомству с Xcode, вёрстке интерфейсов, взаимодействию с Figma и основам разработки. На выходе у каждого было мини-портфолио базовых iOS-приложений, сделанных своими руками.
Стоимость и риски
Говоря об экономике проекта, стоит учитывать несколько факторов. Первый – разработка и подготовка программы. Готовые курсы не подходят для такого формата, поскольку рано или поздно начинают углубляться в сложные концепции и терминологию. Нашей же задачей было пойти «вширь», а не «вглубь».
В силу занятости коллег, обеспечить стопроцентную явку на каждом занятии не получится. Поэтому, помимо шпаргалки для ментора, нужно подумать и о тех, кто хочет нагнать пропущенный урок: обеспечить запись каждого занятия и снабдить их кратким текстовым содержанием со скриншотами и архивами готовых проектов. На это понадобилось около недели рабочего времени.
Второй аспект – это время обучающихся (которое, естественно, оплачивается компанией). В общей сложности курс прошли 18 человек, и на старте это казалось довольно рисковым вложением. Особенно если вспомнить, что наша главная цель – просто рассказать коллегам, как их решения влияют на работу разработчика, и наоборот.
Сложности
Главным препятствием на пути к успешному финалу стали вовсе не внезапные созвоны (хотя и их было немало). Из-за разницы в начальном уровне программу курса не раз приходилось перекраивать на ходу. Из-за этого весь месяц был похож на прогулку по канату с постоянным балансом между объяснением простейших понятий и желанием дать как можно больше материала.
Техническая сторона курса также оказалась сложнее, чем казалась на первый взгляд. В отличие от той же Figma, использовать Xcode совместно группой из десяти человек просто невозможно. Результат – непредвиденные ошибки вроде «я не туда нажал и всё зависло». Их тоже приходилось решать на лету.
Процесс и результаты
Шаг за шагом осваивая iOS-разработку, участники курса сначала удивлялись простоте создания приложений, а затем сталкивались с новыми челленджами и постепенно меняли своё мнение.
Обилие кода может запросто напугать неподготовленного человека, поэтому мы старались соблюдать баланс между наглядной вёрсткой в Interface Builder’е и реализацией интерактивности/функциональности. Каждый пример старались дополнять пояснением о том, как это повлияет на работу других отделов, усложнит или упростит им жизнь.
Польза от участия сотрудников не из ЦА (куда входили дизайнеры и тестеры) казалось не самой очевидной, но на практике они были одними из первых, кто нашёл для себя плюсы от нашего курса. Более того, оценить это смогли даже люди извне.
Дойти до конца курса оказалось несложно. Но написать и защитить своё финальное приложение – это задача, требующая большого внимания и усилий. В итоге с этой задачей справились около 35% обучающихся. Каждый из них освоил следующий стек технологий:
- Interface Builder и Auto Layout;
- Базовые типы данных;
- Основы Swift - переменные, константы, функции и классы;
- Навигация с помощью segue;
- Вёрстка по макетам из Figma;
- Использование сторонних API.
А некоторые даже решили не останавливаться на этом.
«Выпускным» приложением курса стал индикатор настроения, позволяющий оценить своё состояние по стобалльной шкале, опубликовать эти данные и узнать среднюю оценку среди всех пользователей. К этому заданию многие участники подошли особенно креативно.
А что в итоге?
Нам только предстоит оценить продолжительный эффект от этого курса. Но уже сейчас можно сказать, что следующие цели были достигнуты:
- Сотрудники «гуманитарных» профессий перестали бояться технической стороны процесса разработки;
- Дизайнеры понимают, как макет может усложнить (или упростить) разработку, и согласовывать такие решения с командой;
- QA-инженеры ориентируются на масштаб и возраст проекта, зачастую даже предполагая, что могло вызвать баг;
- Коммуникация с менеджерами и HR стала эффективнее – теперь не приходится переводить с человеческого на девелоперский и обратно).
И да, вам тоже стоит погружать своих сотрудников в мобильную разработку. Главное – это обоюдное желание развиваться и развивать, и грамотный курс, который покажет лучшие стороны программирования.