«Как понять причины низкой производительности?»: тезисы доклада Алены Волчек, Group Manager iTechArt, с конференции Career Today.
Pet проект – это индивидуальный или групповой проект, которым программист занимается в свободное от основной работы время, так сказать, для души. С его помощью можно дополнительно прокачивать навыки, а результаты – фиксировать в портфолио. Для джуниоров это ещё и неплохая возможность компенсировать отсутствие коммерческого опыта в резюме.
Иногда pet проекты ещё называют side проектами. Но суть остается одна: такого рода проект требует усилий, желания и свободного времени. Поговорили с нашими разработчиками о том, как искать идеи для pet проектов и их роли в профессиональном развитии.
Расскажи немного про свои любимые side проекты, в чем их суть, как долго ты ими занимался (занимаешься) и какие цели преследуешь этими проектами.
ДМИТРИЙ ЕГОРОВ: Сканворды: игра в слова – игра для ios, разработка заняла примерно 4 месяца. Идея возникла в поездке где-то между Ивано-Франковском и Львовом. Перед поездкой, ради шутки, купил журнал со сканвордами. Я тогда много занимался решением алгоритмических задач, стало интересно, как они составляются. Оказалось, составление сканворда – это NP-полная задача, которую я решал с помощью backtracking с оптимизациями. Уже в процессе написания алгоритма подумал, что неплохо бы было проверить на реальных данных, например, в приложении на телефон.
Вообще планов по этому проекту у меня много, например, хочу добавить статистику между пользователями, адаптировать под iPad, добавить темную тему… И Android версия в этом списке тоже есть, но пока все таки фокус на iOS.
АНТОН ЛАЗОВСКИЙ: На данный момент в iTechArt у меня два внутренних side проекта (да, звучит весело): Trophy и квесты. Trophy – проект с достижениями сотрудников, по факту – игрофикация большинства рабочих процессов. В нем выдаются ачивки за участия и победы сотрудников в различных внутренних развлекательных и внешних спортивных мероприятиях, в тренерской жизни компании (менторы, лекторы, спикеры). Это делает удобным сбор информации для ежегодных награждений наших «активистов», а также многим добавляет мотивации попробовать себя в новых активностях. Проект был создан пару месяцев назад, и сейчас перешел в активную фазу :)
Корпоративные квесты – смесь технического проекта (движок и сайт для прохождения квестов, браузерные игры на ThreeJS), а также подготовки сценария и заданий. Они проводятся в компании с марта прошлого года, и лишь продолжают развиваться от праздника к празднику.
Еще когда-то side проектом была внутренняя платформа Students Lab, которая пару лет назад была создана для тестирования и обучения кандидатов на внутренних курсах, но сейчас она сильно разрослась, стала официальным внутренним проектом и полноценно используется рядом департаментов.
Зачем разработчикам вообще нужны pet проекты? Чему можно научиться, выполняя side проект?
ДМИТРИЙ ЕГОРОВ: Меня такого рода проекты многому научили. Например, тайм-менеджменту, ведь когда рассчитываешь только на свои силы, начинаешь эффективнее использовать время, а также расставлять приоритеты.
АНТОН ЛАЗОВСКИЙ: Честно говоря, нельзя сказать, что side проект сильно отличается от коммерческого. На нем все еще есть ряд задач различной сложности, где надо использовать различные технологии. Так что тут, как и на любом коммерческом проекте – чем больше и чем сложнее задачи, тем быстрее на них развиваешься.
Как найти идею для side проекта?
ДМИТРИЙ ЕГОРОВ: Думаю, скорее идеи нас находят. Когда мы ложимся спать, гуляем или, как в моем случае, едем куда-то. Я, например, веду список, который периодически пересматриваю. Идеи из списка ценны тем, что проходят проверку временем.
АНТОН ЛАЗОВСКИЙ: На самом деле тут все довольно просто. Можно просто идти по улице и случайно подумать, что «было бы здорово, если бы у нас было такое в компании». А в случае со Students Lab платформой это было даже необходимостью, ибо тогда было около 150 желающих на 8 мест в группу на курсы по Python. Очень сложно было в сжатые сроки оценить наличие базовых знаний у ребят, поэтому пришлось автоматизировать процесс в виде онлайн-тестирования по языку и близлежащим технологиям. Благодаря этим результатам получилось провести всего 14 собеседований и набрать группу.
В pet проекте ты «сам себе босс». Как в таком случае объективно оценить результат проделанной работы и готовить изменения?
ДМИТРИЙ ЕГОРОВ: Оценить результат можно по отзывам пользователей или по их retention. Я собираю аналитику через Firebase и AppsFlyer и слежу за ключевыми ивентами. С изменениями главное не впадать в перфекционизм и делать их небольшими итерациями.
Мне нравится делать все самому, смотреть на проект с разных сторон, заниматься дизайном всей системы, как говорят «носить много шляп». Насчет монетизации: я сейчас на этапе изучения аудитории, хочу понять кто и почему выбирает мое приложение.
АНТОН ЛАЗОВСКИЙ: Тут тоже все просто – надо постоянно держать контакт с теми, кто просит какие-то обновления, и с пользователями. На основе фидбека приоритизировать задачи и побыстрее выполнять :)
Баланс между работой, side проектом и личной жизнью. Как ты его находишь?
ДМИТРИЙ ЕГОРОВ: Мне помогает планирование/тайм-менеджмент – обычно в воскресенье я расписываю что и в какой день надо сделать.
АНТОН ЛАЗОВСКИЙ: Обычно работа в конце дня плавно перетекает в side проекты. Больше всего времени забирали квесты, причем у всей команды ребят, с которыми их создаю. Если сначала работа идет плавно и размеренно, то ближе к дедлайну превращается в очень долгий хакатон. Тут мотивирующим фактором на будущее становятся теплые слова и благодарность ребят-участников уже после проведения) Баланс тут - штука переменчивая. Иногда все очень свободно и легко, а иногда – неделька-другая сильного загруза. К этому надо быть готовым, так как если берешься за side проект, то несешь за него ответственность перед другими, хоть и не все так заморачиваются, насколько я знаю. А вообще не зря говорят: чем больше делаешь, тем больше успеваешь :)
На твой взгляд, pet проекты добавляют веса в резюме?
ДМИТРИЙ ЕГОРОВ: Думаю, интересно обсуждать их на собеседованиях, но мне пока не приходилось свой проект обсуждать на интервью.
АНТОН ЛАЗОВСКИЙ: Однозначно да, так как уже говорил, что они мало чем отличаются от коммерческих в плане задач и развития. Единственное, что для заказчика явно будет важным увидеть в резюме и коммерческие проекты, чтобы быть уверенным, что человек сможет занять не управляющую роль в команде, получать задачи, где разработчик далеко не всегда может повлиять на ее суть, и надо будет просто взять и сделать, что сказали.