Недавно ведущее мировое приложение для общения Viber анонсировало новую функцию — «создать стикер». Опция представляет собой встроенный редактор стикеров, с помощью которого пользователи могут создавать паки со своими фотографиями, любимыми фразами и другими изображениями или надписями. Идея новой функции Viber, мировой платформы с миллиардной аудиторией и центрами разработки в нескольких странах, принадлежит белорусам — сотрудникам минского офиса. Bel.biz поговорил с командой создателей опции о том, как рождаются крутые идеи и что значит возможность влиять на конечный продукт в контексте мировой компании.
Марина Хомич, директор по персоналу минского офиса Viber
— С прошлого года мы проводим в Минске внутренние хакатоны. Их функция — дать возможность локальным сотрудникам повлиять на развитие «своего» продукта и предложить новые функции для международной аудитории Viber. Первый такой форум прошел еще прошлой осенью. Его результатом стало внедрение функции «опрос» в январе этого года. Второй хакатон мы провели в апреле. В нем приняло участие более 30 человек — это треть минского офиса Viber. После того, как мы организовали два этих мероприятия в Минске, топ-менеджмент компании принял решение провести третий, но уже глобальный хакатон, в Тель-Авиве.
Марина Хомич, фото: Viber
Почему компания Viber вообще проводит мероприятия такого плана? Кроме очевидной цели получить свежие и интересные идеи для усовершенствования платформы, такие форумы работают и на повышение корпоративного духа команды. Хакатоны — это квинтэссенция идеи разработки, чистое творчество, из-за которого каждый из сотрудников в свое время выбрал программирование как профессию. Для разработчиков это простой способ повлиять на продукт, они могут воплотить свою идею в приложении, которым пользуется более миллиарда человек. Для любой компании важно дать работникам почувствовать свою значимость, возможность реализовать свои лидерские качества и делать вещи, которые они сами хотели бы видеть в продукте. Сплочение команды — еще один важный эффект, который мы достигаем, ведь такие мероприятия помогают узнавать друг друга, сотрудничать с другими командами и подразделениями.
Сам хакатон проходит в три этапа. На первом мы предлагаем сотрудникам собрать свою команду, в рамках которой они будут реализовывать одну идею. Все проекты попадают в онлайн-голосование, с помощью которого наши сотрудники выбирают 15 лучших на их взгляд.
Следующий этап — уже оффлайн-защита. У каждой команды-автора идеи есть 2 минуты, чтобы рассказать о своей задумке и убедить за нее проголосовать. Всем сотрудникам-слушателям мы раздаем три сувенирные купюры по 100 долларов и предлагаем «инвестировать» их в понравившийся проект. Можно вкладывать в разные идеи или «пожертвовать» все 300 в один. Таким образом, путем «народного голосования» мы выбираем шесть проектов-финалистов. Они отправляются в разработку. Каждой команде мы выделяем переговорную комнату, где на протяжении 48 часов они воплощают свою задумку в жизнь.
Второй этап хакатона, фото: Viber
Третий этап — финальная презентация готовой функции. Некоторые команды снимали ролики, и это получалось интерактивно, весело и наглядно, другие же делали презентации с подробным объяснением функции. Но обязательное условие — разработка прототипа нового продукта.
Функция «создать стикер» стала безоговорочным лидером, за нее проголосовало более половины сотрудников.
Илья Селицкий — автор идеи функции, FDD Project manager
— Я часто слышал от знакомых, что было бы классно создать свой уникальный стикер в Viber или загрузить пак. Поэтому идея функции «создать стикер», на самом деле, была на поверхности. Но существовали и опасения, связанные с наличием корпоративных стикеров, которые являются важной частью прибыли компании. Но функцию не только одобрили на уровне топ-менеджмента, но и восприняли как необходимую, ведь на хакатоне за нее проголосовало много сотрудников.
Илья Селицкий, фото: Viber
Изначально у меня не было понимания, как конкретно реализовать эту идею, с помощью каких инструментов и программ, была только задумка. Когда на третьем этапе хакатона потребовалась разработка, команда собралась буквально «на балконе». С кем-то из коллег мы принимали участие в прошлом хакатоне, кто-то привел за собой других специалистов, кто-то советовал сотрудников с нужными нам знаниями и навыками, а кто-то сразу пришел с предложением использовать наработки, которые создавались для другой фичи.
Презентация идей, фото: Viber
Максим Евменьков — лидер команды разработки
— На хакатон я хотел подать другую идею — различные реакции на сообщения (прим. — сейчас в Viber можно отреагировать только «лайком»). Идея мне нравилась, но с точки зрения разработки не вызывала интереса. Реализация этой функции мало чем отличается от других фич, которые я делал, — редактирование сообщений, создание опросов. Поэтому я передал свою идею другой команде, рассказал им как ее делать, а сам присоединился к команде по разработке «редактора стикеров». Было сложно, ведь мы не знали ни механизм реализации функции, ни кто нам нужен в команду.
Максим Евменьков, фото: Viber
В восемь вечера к нам в кабинет заходили ребята из других команд, которые уже закончили с разработкой своих фич, и просили показать, что у нас получилось. У нас же на тот момент не было вообще ничего. Пришлось собраться, организовать всех и заказать пиццу с сосисочными бортиками — это были три решающих фактора успеха. Челлендж был и моральным, и техническим. Так получилось, что первый день мы потратили не очень продуктивно — наметили план действий и перенесли свои рабочие компьютеры в одну переговорную. А вот на второй день нам пришлось сидеть над фичей до 4 часов утра.
Здорово то, что в таком проекте ты не третьесторонний человек, а руководитель, разработчик и пользователь в одном лице, а значит можешь отказаться от ненужных и неважных частей и действий. При этом важно, что решает коллективное мнение и есть возможность разговаривать, доказывать, размышлять в процессе этого, что приводит к итоговому правильному решению — это вдохновляет.
Геннадий Ботян — Android-разработчик
— Как оказалось, в Viber безумное количество кода, который касается именно стикеров. Как только мы это осознали, стало понятно, что будет сложно подготовить код к внедрению кастомных стикеров и при этом никак не повлиять на клиентские паки. Это еще одна сложность, с которой мы столкнулись. Думаю, успех заключался в том, что мы в меньшей степени думали об исходе конкурса и победе, а в большей все же погрузились в эту атмосферу «стартапа».
Хакатоны в этом плане — абсолютно гениальная вещь. Они позволяют сотрудникам окунуться в совершенно другой формат — два часа ночи, полуразобранные компьютеры, очень нездоровая еда, все хотят спать, но безостановочно работают и все это исключительно за идею. Это был глоток свежего воздуха, а выхлоп оказался колоссальным и по эмоциям, и по пользе.
Фото: Viber
Анатолий Сафонов — разработчик (функционал обрезки фото)
— Функция «создать стикер» в том виде, в котором она существует в Viber сейчас, немного отличается от реализованной нами на хакатоне. Так как на разработку у нас было ограниченное количество времени — реализация была достаточно грубая и примерная. Мы брали фотографию, брали модель, которая на TensorFlow Lite запускалась, и вырезали маску с помощью OpenCV. Изначально это действие занимало много времени, около 10 секунд, и даже на новых девайсах функция работала очень медленно. Сейчас же функция работает без OpenCV, мы делаем обрезку прямо на видеокарте на системе Android.
Анатолий Сафонов, фото: Viber
Самая большая сложность хакатона — нехватка времени. Постоянно случаются какие-то тестовые проблемы: криво вырезается картинка, маска не сходится или повернута другой стороной. Нужно много времени на проверку и тест, чтобы настроить все и привести к идеальному состоянию. Нам пришлось делать все максимально быстро. Еще одна сложность — бессонная ночь.
Иван Ширко — разработчик (имплементация функции в магазине стикеров)
— Я решил принять участие в хакатоне, так как это мой первый год работы в Viber и мне было интересно познакомиться с новыми людьми в экстремальных условиях. Теперь я знаю ребят из других команд, с которыми по работе почти не соприкасаемся. Но участие оказалось полезно не только в плане новых знакомств, но и в плане новых знаний. До этого я абсолютно не знал, как устроена внутренняя часть магазина стикеров. Чтобы понять, как заставить работать нашу фичу, пришлось досконально разобраться и в этом тоже.
У нашей команды были опасения, что идею с кастомными стикерами не пропустят, но, как оказалось, зря. Эффект от повышенного внимания к этой функции сработал, и опция была внедрена в приложение. Сейчас пользователи создали уже более миллиона стикерпаков.
Презентация проектов, фото: Viber
Максим Дубинин — специалист по тестированию, готовил промо-ролик функции
— Если говорить о том, как работает функция совсем простым языком, то пользователь открывает экран создания стикеров, добавляет туда фотографии/текст и создает нужное ему количество стикеров, после этого дает имя своему паку. Viber формирует этот набор в архив и отправляет его на сервер, который размещает стикерпак в маркете. Стикеры можно сделать «общими» — любой пользователь Viber сможет загрузить его. Или «личными» — только сам пользователь сможет видеть все стикеры в нём, отправлять и скачивать их.
В команду нужен был кто-то, кто будет презентовать ролик, и я как-то сильно проникся этой идеей. Я иногда снимаю видео «для себя», а тут появилась возможность сделать то же самое для нашей фичи. Написал сценарий, который представляет собой скорее просто набор скетчей. То есть я просто накидываю сюжеты, которые должен снять: кто-то пьет кофе на кухне, кто-то заснул на рабочем месте. При этом важно красиво завернуть идею в ролике, чтобы видео стало «продающим».
Для меня хакатон — топ-событие, которое произошло в компании за последнее время. Для нас, сотрудников минского офиса, это была интересная возможность принять участие в непосредственном развитии продукта, продвигать те идеи и фичи, которые кажутся крутыми и важными для нас, как разработчиков и пользователей.
Команда-разработчик функции «создать стикер», фото: Viber
Юрий Ярошевич — разработчик нейросети для обрезки фотографий, которая использовалась для функции
— Я не принимал участие непосредственно в хакатоне, но нейросеть для обработки фото, на которой функция работает, была разработана мной. Нейросеть была написана на Python, так как язык удобный, компактный и там легко экспериментировать. Сообщества, которые занимаются машинным обучением в исследовательских целях, используют именно Python, ведь там удобные библиотеки для работы с математикой, и он позволяет эффективно обучать нейронные сети.
Упрощенно говоря, обучение нейронной сети для обрезки фото происходило в несколько этапов. Сначала разработчики готовят обучающую выборку — набор картинок с информацией по ним. Потом все это изучает нейросеть и пытается предугадать или предсказать, где на этой картинке человек, а где бэкграунд. И эти действия повторяются большое количество раз. Например, для обучения нашей нейронной сети у меня было загружено более 10 000 картинок и предположительно каждую картинку сеть видела по 100 раз. Это заняло неделю непрерывного обучения — исследование сетью обучающей выборки.
О функции «создать стикер»
Viber представил новую функцию «Создать стикер» в сентябре 2019 года. С ее помощью пользователи могут придумывать и добавлять собственные персонализированные стикерпаки для выражения любых эмоций без слов.
Чтобы создать собственный стикерпак, пользователю необходимо:
- Открыть редактор на вкладке «Магазин стикеров»
- Войти в меню стикеров в любом чате или
- Сделать фотографию через приложение для ее мгновенного редактирования.
Один пак может включать до 24 отдельных изображений.
Фото: Viber