Проект «Нашкодим», или как мы обучали сотрудников iOS-разработке

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

Решили научить кодить всех – от HR до QA, и шалость удалась! <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Finstagram.com%2Fkras.aleksandra&postId=298216" rel="nofollow noreferrer noopener" target="_blank">Александра Красножен</a>
Решили научить кодить всех – от HR до QA, и шалость удалась! Александра Красножен

Чтобы наладить коммуникацию между отделами и подружить все этапы разработки между собой, мы запустили серию корпоративных проектов под общим названием «Нашкодим». Первой его частью стал внутренний iOS-курс для сотрудников компании, которые не работают с кодом. О нём нам рассказал iOS-разработчик MobileUp и ментор курса Денис Сушков.

Кому и для чего это нужно?

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

Изначальные задачи были куда прозаичнее:

  • Рассказать о технической стороне процесса даже тем, кто считает себя полным гуманитарием;
  • Показать, как макеты превращаются в код, как верстают разработчики и какие требования предъявляют к дизайну;
  • Объяснить, откуда берутся баги и как их можно предотвратить;
  • Дать представление о реальных коммерческих проектах, их масштабе и сложности;
  • Сделать так, чтобы все сотрудники говорили на одном языке или хотя бы понимали, о чём говорят разрабы, когда в ход идут профессиональные термины.

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

На протяжении месяца участников курса ожидало 8 занятий, посвящённых знакомству с Xcode, вёрстке интерфейсов, взаимодействию с Figma и основам разработки. На выходе у каждого было мини-портфолио базовых iOS-приложений, сделанных своими руками.

У нас не было цели «грузить» ребят принципами ООП, SOLID’ом и правильным кодстайлом. Куда важнее было создать то самое волшебное ощущение, когда ты сам создал и запустил первое в жизни приложение! Да ещё и установил его на свой девайс, чтобы похвастаться друзьям! Такой подход оказался отличным стимулом, и мотивировал участников погружаться и вникать в аспекты разработки.

Денис Сушков, iOS-разработчик, ментор курса «Нашкодим»

Стоимость и риски

Говоря об экономике проекта, стоит учитывать несколько факторов. Первый – разработка и подготовка программы. Готовые курсы не подходят для такого формата, поскольку рано или поздно начинают углубляться в сложные концепции и терминологию. Нашей же задачей было пойти «вширь», а не «вглубь».

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

Продюсер Миша показывает дизайнеру Жене свой суперапп <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Finstagram.com%2Fkras.aleksandra&postId=298216" rel="nofollow noreferrer noopener" target="_blank">Александра Красножен</a>
Продюсер Миша показывает дизайнеру Жене свой суперапп Александра Красножен

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

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

Екатерина Артемьева, HR BP

Сложности

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

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

Денис Сушков, iOS-разработчик, ментор курса «Нашкодим»

Техническая сторона курса также оказалась сложнее, чем казалась на первый взгляд. В отличие от той же Figma, использовать Xcode совместно группой из десяти человек просто невозможно. Результат – непредвиденные ошибки вроде «я не туда нажал и всё зависло». Их тоже приходилось решать на лету.

Процесс и результаты

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

Очень обрадовалась возможности хотя бы немного окунуться в разработку и понять, откуда что берётся. Теперь боль девелоперов при вёрстке под разные экраны ощущается острее. Курс помог чётче вникнуть в механизмы (модальные окна, вот откуда в вас баги!).

Дарья Куркина, QA-инженер

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

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

Артём Тютин, UI/UX-дизайнер

Польза от участия сотрудников не из ЦА (куда входили дизайнеры и тестеры) казалось не самой очевидной, но на практике они были одними из первых, кто нашёл для себя плюсы от нашего курса. Более того, оценить это смогли даже люди извне.

Я часто присутствую на технических собеседованиях и если раньше некоторые вещи, которые обсуждаются во время разговора, для меня были абракадаброй, то теперь я знаю, что именно хочет услышать интервьюер. Еще могу понять, говорит кандидат по делу или нет. Помню свое удивление, когда просматривала чат iOS-разработчиков, где обсуждали какую-то ситуацию в разработке. И о боги! Я всё поняла! Похвалила себя, что решилась пойти на курс!

Арюна Иванова, HR-менеджер

Дойти до конца курса оказалось несложно. Но написать и защитить своё финальное приложение – это задача, требующая большого внимания и усилий. В итоге с этой задачей справились около 35% обучающихся. Каждый из них освоил следующий стек технологий:

  • Interface Builder и Auto Layout;
  • Базовые типы данных;
  • Основы Swift - переменные, константы, функции и классы;
  • Навигация с помощью segue;
  • Вёрстка по макетам из Figma;
  • Использование сторонних API.

А некоторые даже решили не останавливаться на этом.

Для меня было ачивкой собрать все наши уроки в супераппу. Ребята, которые уже пробовали кодить, понимали, что я сделал что-то интересное и прикольное. А те, кто не понимали, как это строится просто радовались за меня, что я приложил усилия и что-то сделал сам. Проект дал мне понимание, что та сфера, которую я выбрал — идеально мне подходит.

Михаил Слипченко, Продюсер

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

А что в итоге?

Нам только предстоит оценить продолжительный эффект от этого курса. Но уже сейчас можно сказать, что следующие цели были достигнуты:

  • Сотрудники «гуманитарных» профессий перестали бояться технической стороны процесса разработки;
  • Дизайнеры понимают, как макет может усложнить (или упростить) разработку, и согласовывать такие решения с командой;
  • QA-инженеры ориентируются на масштаб и возраст проекта, зачастую даже предполагая, что могло вызвать баг;
  • Коммуникация с менеджерами и HR стала эффективнее – теперь не приходится переводить с человеческого на девелоперский и обратно).

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

1616
Начать дискуссию