История разработки Magisto — маленького мультимедийного стартапа внутри большой компании

8356
1

Каждую минуту на YouTube загружается около 300 часов видео. Но сколько из них представляют информационную или эстетическую ценность? Рискну предположить, что немного, поскольку в большинстве своем пользователи не заморачиваются тонкостями съемки и видеомонтажа, особенно, если речь идет о мобильном видео. В магазинах приложений для Android и iOS есть множество видеоредакторов — как простых, так и достаточно продвинутых. Но все что нужно большинству пользователей, это всего одна кнопка — «сделать красиво». И такая кнопка есть в приложении Magisto.

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

Сегодня сервисом пользуется около 80 млн человек во всем мире. Кроме веб-версии, у Magisto есть приложение под iOS и Android. Последнее дважды удостаивалось награды Best Android Apps (2013 и 2015) и звания CES App of the Year 2015, а также входит в почетные списки Google Play Editors’ Choice и Top Developer на Google Play. При этом мало кто знает, что Android-версия от начала и до конца была разработана и продолжает разрабатываться украинскими инженерами в GlobalLogic.

Начало сотрудничества

Наше сотрудничество с Magisto, тогда еще небольшим израильским стартапом, началось весной 2012 года. В то время никто не думал, что маленький proof-of-concept длительностью всего в 5 недель может перерасти во что-то серьезное. Сутью задачи было понять, можно ли создать быстрый и надежный транскодинг видео, работающий на любом из массовых Android-устройств, коих уже тогда был целый зоопарк.

Во времена Android 2.1 Google не предоставлял API для работы с видео на низком уровне, а существующие тогда решения пережимали 1 минуту исходного видео в лучшем случае за 3-6 минут, что было непозволительно долго. В общем, за 5 недель мы сделали приложение для обработки и сжатия видео. А всего через 2,5 месяца после этого мир увидела первая публичная версия Magisto для Android.

screenshot_1

Поскольку у самого заказчика совсем не было опыта создания приложений под Android, вся разработка под Android была полностью отдана нам. В то время как команда заказчика занимается развитием Magisto для iOS, наша задача — синхронно развивать версию под Android. В стартапе все происходит очень быстро, и у заказчика просто нет времени контролировать нашу работу. Но есть требование выполнить оговоренный объем в конкретный срок. Это не всегда легко, ведь сроки реализации одной и то же фичи для iOS и для Android могут отличаться в разы.

Для понимания ситуации: каждые две недели у нас происходит minor release, каждые четыре недели — major release. Это очень динамичный темп и высокая ответственность каждого члена команды за полученный результат. И в таком режиме мы сотрудничаем уже почти 5 лет (к слову, это самый длительный Android-проект во львовском офисе GlobalLogic).

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

Что мы делаем сейчас?

Сейчас, когда основная функциональность продукта готова, мы немного сместили наш ФОКУС в сторону вещей, которые не очень заметны пользователю, но достаточно сильно влияют на его удовлетворенность продуктом.

Например, при изменении размера окна, в котором воспроизводится видео (переход в полноэкранный режим), или при повороте экрана смартфона средства стандартного Android API работают не совсем корректно. Происходит потеря нескольких кадров и пользователь ощущает раздражающее подергивание картинки. Решение этой проблемы пользователи вряд ли заметили и осознали, но, согласно нашей статистике, их удовлетворенность возросла. Примечательно, что мы исправили этот момент раньше, чем это сделали в приложениях YouTube и Instagram. При этом мы, разумеется, продолжаем развивать основной продукт и добавлять в него новые возможности.

_mg_9287

Или вот еще одна история. Когда в Android 4.1 впервые появилось низкоуровневое API для работы с видео, каждый производитель смартфонов начал использовать его по-своему. В результате разные устройства стали выдавать очень отличающееся по качеству видео, а при его обработке возникали различные глюки. Нам приходилось придумывать специфические решения, чтобы учитывать особенности видео с конкретных устройств.

Со временем мы определили устройства, на которых возникают типичные проблемы с видео, и подготовили набор готовых «заплаток» для их решения. Далее наша команда представила систему, которая автоматически сравнивала качество входящего видео и картинки, выдаваемой Magisto. В зависимости от проблем с роликом (пропущенные факты, искажения или артефакты, неправильные цвета и т. п.), система применяла те или иные алгоритмы для их устранения на конкретном устройстве.

Если выбранное решение давало в определенном числе случаев хороший результат, примененный набор «заплаток» включался в сборку программы для конкретного устройства. Таким образом, нам не приходилось каждый раз изобретать велосипед в работе с видео и мы смогли реализовать аппаратное ускорение видео для большого числа устройств.

Заглянуть за поворот

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

_mg_9248

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

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

Особенности проекта

Как уже было сказано ранее, нам полностью отдали разработку Android-версии приложения. Это вносит определенные особенности в деятельность всей команды, которая в пиковые периоды состояла из 11 человек (сейчас — 7).

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

_mg_9294

Когда ты «сабмитишь» какую-то фичу, это означает, что она уже протестирована и полностью работоспособна. Таким образом, программисту нужно думать не только про код, но и про тесты, и про аналитику. Ведь не все процессы четко регламентированы, и решение, как сделать ту или иную задачу, нужно принимать самому. Постоянная ограниченность ресурсов заставляет пользоваться ими очень рационально — автоматизировать CI, тесты и т.п. Без этого никуда. Тестировщики всегда загружены на 100%. Поэтому разработчику нужно четко понимать, что затрагивает твоя задача, что нужно точно проверять, а что — нет.

Точно так же нужно уметь правильно общаться с менеджером и владельцем продукта. Ведь без понимания специфики Android им порою сложно понять, почему фича, на создание которой для iOS уходит всего пару дней, будет делаться минимум неделю для Android.

Хотя наш проект очень динамичный, этот вовсе не означает авралы или овертаймы. На моей памяти нам никогда не приходилось заниматься проектом на выходных. Типичное время в офисе — 8,5 часов, то есть work-life-balance соблюдается. Но это, разумеется, не единственный плюс нашего проекта.

Намного важнее, что здесь люди очень быстро растут в техническом плане. Ответственности почти всегда больше, чем люди могут принять, и менеджеру нужно передавать ее им небольшими порциями. Другого выбора попросту нет. Люди приходят на проект и видят, что сделанная ошибка сегодня не позволит завтра 50 млн пользователей что-то купить, и стартап не получит денег. Это редкая ситуация для большинства аутсорсинг-проектов и это то, к чему люди на Magisto должны привыкать. При этом у нас в команде существует толерантность к ошибкам, равно как и большая мотивация их не допускать. Мы сталкиваемся с проблемами, которых нет в обычной аутсорс-разработке.

_mg_9314

Особое отношение к проекту развивает в людях умение брать на себя ответственность. Это очень ценное качество, которое, по сути, нужно не только в стартапе, но и в любом другом деле, в том числе и в личной жизни. Вот почему люди после такой школы всегда будут востребованы всегда. К слову, у нас есть фрешерская программа, после которой ребят с удовольствием приглашают на другие проекты в GlobalLogic. Так что здесь мы помогаем не только себе, но и коллегам.

К слову, о помощи. Обычно принято считать, что большие компании, вроде нашей, скорее мешают, чем помогают стартапам. И мне приятно осознавать, что наше сотрудничество —  пример обратного. Отношения GlobalLogic и Magisto строятся на партнерстве, от которого выигрывают все. Мы помогаем Magisto динамично развивать их продукт, наш клиент — помогает нам развивать нашу экспертизу, получать бесценный опыт и новых клиентов, для которых сам факт нашего сотрудничества с Magisto стоит многого.

Автор: Александр Одуха, Senior Project Manager в GlobalLogic

Оставить комментарий

Комментарии | 1

  • Чуваки угробили кучу времени лишь на то, чтобы заставить АПИ системы работать так, как заявлено, с помощью всяких заплаток… я всегда говорил, что Андроид «классная» ОС 😀
    И еще, из статьи я так и не понял, делают ли наши ребята так сказать Core-функциональность (магию). В начале статьи сказано, что вся магия происходит в облаке (а это, как я понял, анализ видео, выбор фрагментов, наложение аудио и тд). Из чего я делаю вывод, что нам, как всегда, аутсорсят всякий юай, ну и транскодинг видео, для которого уйма готовых библиотек уже есть.
    Простите за скепсис, просто каждый раз, когда читаю заголовки, что какой-то там мега стартап делается в Украине, оказывается, что все ключевые вещи остаются он-сайт, и пишут их совсем не украинцы. Как исключение могу сходу назвать Looksery, но и они уже отсюда умотали…

Поиск