Как проходит проектная часть Школы разработки интерфейсов?
Школа разработки интерфейсов состоит из двух этапов: на первом студентов ждут лекции и домашние задания по фронтенду, на втором — командная работа над проектами для сервисов Яндекса. Одна из команд ШРИ-2018 делала личный кабинет для кандидата на обучение в Школе. Это сервис, который позволяет потенциальным студентам регистрироваться и отправлять тестовые задания, а сотрудникам Яндекса эти задания оперативно проверять. Все участники команды попали на стажировку и устроились работать в Яндекс, а их проект послужил прототипом для настоящего кабинета Школы, которым уже сейчас пользуются организаторы и кандидаты. Руководитель проекта Дмитрий Андриянов и студенты Дмитрий Воловод и Максим Шилов рассказали, как проходила работа над проектами, чему они научились в ШРИ и какие их идеи в итоге попали в продакшн.
Проекты Школы разработки интерфейсов
Дмитрий Андриянов, руководитель группы разработки в подразделении рекламных технологий: Во время подготовки к ШРИ мы просим продакт-менеджеров прислать задачи и отбираем их по нескольким критериям: проекты должны приносить пользу и быть достаточно компактными, чтобы команда из четырех-пяти человек могла сделать такой проект за месяц.
Смысл второго этапа ШРИ в том, что студенты получают опыт командной работы над задачами, с которыми сталкиваются разработчики Яндекса.
Какую реальную пользу могут принести участники ШРИ, над чем они могут работать? Это может быть задача для небольшого сервиса или внутренней системы или гипотеза для большого сервиса, которую хочется проверить, чтобы понять, стоит ли запускать её в продакшн.
Работа студентов над проектами проходит в двух режимах. В течение недели они предоставлены сами себе и должны организовать процессы самостоятельно, часть обучения составляет тренинг по постановке задач и организации рабочих процессов по методике Scrum. А по субботам проходят хакатоны, где ребята работают вместе с кураторами и менторами, пока не завершат запланированное на спринт. В конце каждого хакатона проходит демо, где команды смотрят на результаты друг друга.
В завершение проекта студенты должны провести презентацию и написать технический отчет о ходе работы, использованных технологиях и подходах.
Команда, состоящая из Димы Воловода, Максима Шилова, Дмитрия Новикова, Екатерины Герасимовой и Давида Гусейнова выбрала задачу разработки личного кабинета Школы — сервиса, через который кандидаты подают заявки на обучение в ШРИ и отправляют на проверку вступительные задания. Он автоматизирует ручной труд и экономит время организаторам. Раньше работа с кандидатами шла через Яндекс. Формы, а теперь через скрипты и единую базу данных.
Работа над личным кабинетом
Дмитрий Воловод: На презентации проектов, которая проходила перед вторым этапом ШРИ, можно было выбрать один из нескольких проектов. Разработка интерфейса для Школы была интересна тем, что это реальная задача, которая сразу может принести ощутимую пользу. Также нам предстояло заниматься не только фронтендом, но и большим количеством бэкендерских задач на Node, которые часто возникают при разработке интерфейсов.
Дима Андриянов хотел познакомить нас с GraphQL. Бэкендер Директа Максим Логунов организовал нам сервер с GraphQL API и базой данных для хранения информации о кандидатах, их задачах, оценках и проверяющих.
До этого я год занимался бэкендом на Java и не был особенно знаком с фронтендерскими задачами. Так что на самой Школе мне было в новинку практически всё. А на проекте, наоборот, мне было проще, я был фронтовым бэкендером на Node.
Мы поделили проект на недельные спринты и работали в режиме бесконечных хакатонов. Быстро делали что-то за выходные, а потом всю оставшуюся неделю фиксили баги и рефакторили код, заменяли частные решения более общими, а написанные на коленке «велосипеды» — общепринятыми решениями из известных библиотек, закладывали базу для будущих задач, чтобы на следующей неделе можно было делать новый функционал, не переделывая уже имеющийся.
Это был интересный опыт, когда ты не можешь без боли смотреть на собственный код и тратишь гораздо больше времени на то, чтобы привести его в порядок.
Максим Шилов: Нам повезло, что в команде собрались ребята с разным бэкграундом и мы распределились по типам задач. Каждый делал то, в чём он лучше разбирался.
Дмитрий Воловод: Я пришел с опытом написания технической документации, тестирования и бэкендной Java-разработки. Максим на тот момент в основном занимался версткой и немного разработкой отдельных компонентов.
И Дмитрий Новиков, и Давид Хусейнов уже работали фронтенд-разработчиками. У Екатерины тоже был фронтендерский опыт, при этом она по образованию химик, а веб-разработку изучила самостоятельно. Поэтому на многие вещи у нее была своя точка зрения.
Хорошо, что вся команда жила в одном хостеле и нам было очень удобно коммуницировать между собой.
Итоги проекта
Дмитрий Воловод: У нас не было какого-то большого опыта публичных выступлений, поэтому мы все волновались и не слишком-то хотели выступать. Решили, что будем выступать мы с Екатериной Герасимовой, и в качестве подготовки прогнали нашу презентацию раз пятнадцать. Подготовка сильно помогла, хотя во время выступления я всё равно волновался.
Дмитрий Андриянов: Уже после защиты эта работа использовалась в качестве прототипа для команды разработки в Яндексе. Мы не брали код ребят напрямую, но зато использовали тот же набор библиотек и реализовали их идеи.
Опыт, полученный в ШРИ
Дмитрий Воловод: Для меня полезным было почти всё, потому что я пришел из другой сферы, был тестировщиком и Java-разработчиком. Так что мой мозг буквально взрывался от количества нового и домашек, которые нужно было сделать.
Очень классно, что лекции давали общую информацию, но не давали конкретного способа решения задач из домашек. Нужно было искать ответы самостоятельно, и это здорово расширяло кругозор. Хотя, конечно, с какими-то отдельными вопросами можно было приходить за помощью, и очень здорово, что кураторы или организаторы всегда быстро отвечали.
Максим Шилов: Когда я пришел, у меня тоже был совсем маленький опыт работы, до этого я работал в основном над типовыми задачами. Поэтому на ШРИ для меня было очень много нового.
Каждая тема — это пара бессонных ночей, ты постоянно, каждую неделю учишь что-то новое.