Наши проекты
1 пост
1 пост
PS: читайте в книге “Никак”.
Однажды наша студия веб и мобильной разработки DNA Team, которую мы основали с моим другом, доросла до того, что образовалась целая должность директора по продажам. Не как это бывает, когда собрались “три танкиста, три весёлых друга” и все директора, а прям настоящая, вызванная суровой необходимостью. Клиенты идут, обороты растут, штат расширяется, надо выстраивать процессы, структуры и так далее.
Должность серьезная, ответственная, поэтому прежде чем размещать вакансию в сети мы кинули клич по нашей команде. И, о чудо, откликнулся один из проджект менеджеров и предложил своего товарища.
Товарища мы прособеседовали, взяли в штат и начали ударно работать. Новым сотрудником мы были довольны, потому что он отлично справлялся с возложенными на него обязанностями - вкладывался в общее дело, проводил хорошие сделки, приносил прибыль и так далее. Мы шли навстречу, когда он приходил за повышением зарплаты и процентов со сделок. Давали ему новые обязанности, больше ответственности и самостоятельности. В общем, все было в шоколаде.
Так незаметно прошло около двух лет. Бизнес рос, все были довольны. Мы начали стартап и наш фокус внимания, вполне логично, сместился на него. Запуски, новые клиенты, миллион задач - как обычно бывает на старте нового бизнеса. И у нас начали появляться мысли предложить нашему директору по продажам опцион либо долю в компании, чтобы он впоследствии взял на себя львиную часть руководства студией уже не как наемный сотрудник, но как совладелец.
К этим мыслям ко всему прочему нас подталкивало и общественное мнение. Вот эта вся предпринимательская история, что собственнику в идеале хорошо бы выйти из операционки и заняться стратегическими задачами мирового масштаба. Хорошо, что у нас есть на примете такой человек, который может взять на себя много важных полномочий, - думали мы. Постепенно ослабляли контроль происходящего внутри проектов, доверяли статусам задач, давали ему разруливать самые разные вопросы и все больше уходили в свой стартап.
Все также шло хорошо, конечно, не без косяков, но так ведь и не бывает, чтоб всегда все зашибись. В моменты, когда бизнес чуток проседал, мы обращали на это внимание и естественно шли решать вопросы к нашему директору. Получали полный отчет, почему где не срослось и что предпринято для того, чтобы все разрулить. В общем мы как обычно чувствовали максимум участия, видели большую активность в решении кризисных проблем со стороны нашего коллеги, сохраняли спокойствие, уверенность и занимались нашим стартапом.
Однажды я получил письмо с незнакомого адреса с просьбой прокомментировать некий непонятный пункт договора.
Я протер очки, присмотрелся - все чинно, мирно, благородно. Шаблон договора нашей студии, все данные - про нас. За исключением одного милого нюанса - реквизиты компании не студии, а ИП брата нашего директора.
Подобрав отпавшие челюсти, мы надели костюмы Шерлока Холмса и пошли разбираться, откуда ноги растут. Получили от директора не особо убедительные отмазки, типа клиенту было неудобно, это его личный клиент, а не студии и что-то в этом роде.
Дальше интереснее. Мы начали выяснять, кто делает этот проект, откуда берутся ресурсы. Выяснилось, что некоторые наши сотрудники, которые получали зарплату в студии, работали на этом левом проекте. Сотрудников мы, конечно, не виним. Руководитель им поставил задачу, выдал приоритет, они делают. Вопросов нет.
Возвращаясь к периоду просаживания бизнеса, все встало на свои места. И почему некоторые проекты тормозились, почему заказчики были недовольны, от чего-то отказывались и так далее. Товарищ приоретизировал свой проект и задвигал студийные.
Также мы выяснили, что с ним в сговоре было несколько человек, в том числе и тот сотрудник, который его посоветовал. Он знал, что проект левый, плюс были амбиции, что сейчас они ка-а-ак раскрутятся, выделятся в отдельную команду и будут “делать бабки”. Это, кстати, хороший урок на тему того, что наша компания - “одна большая дружная семья”. Хорошо, конечно, но не стоит сбрасывать со счетов, что эта семья шикарная почва для организации ОПГ корпоративного масштаба.
Тут было бы хорошо рубануть с плеча, всех уволить по статье и написать что-нибудь в личное дело, но… нам надо было сохранить проекты и хорошие отношения с клиентами. Это намного важнее возмездия. Приоритет у нас был в том, чтобы отключить их от нашего бизнеса без более существенных потерь. Поэтому увольнение по статье с занесением в личное дело - это, можно сказать, стало нашим оружием, которым мы заставили их довести свои незаконченные задачи и корректно передать дела.
По началу горе коллеги говорили, что они забирают наших клиентов с собой и уходят с гордо поднятой головой. Мы этот вариант развития событий тоже отрубили. Приняли решение честно рассказать клиентам о том, что случилась вот такая неприятная история. Потому что при всех вводных люди думали, что работают со студией DNA, а не с отдельно взятыми разрабами. Мы ездили на встречи и в целом все было не так страшно, потому что по факту никто никуда уходить не собирался. Репутация, однако!
В итоге история закончилась хорошо и справедливость восторжествовала. Клиенты остались с нами, ребята ушли без особых потерь, а главный зачинщик и мошенник… пусть это останется на его совести. Будем верить в бумеранг. Тем более, на нас уже выходили компании, которые собираются подавать на него в суд из-за того, что он наобещал им золотых гор и ничего не сделал.
Вот такой поучительный урок о выходе собственников из операционки.
Эрмитаж — это настоящий портал в мир искусства, в котором неподготовленный любитель прекрасного может потеряться и выбиться из сил в попытках найти конкретный экспонат, а возможно и просто выход на улицу. Это не шутки, в Эрмитаже больше 360 залов, в которых расположено около 3 млн экспонатов. Плутать и культурно обогащаться можно бесконечно долго. Поэтому современное приложение для ориентации в пространстве Эрмитажа — это был просто мастхэв 21 века.
Приложение под названием «Аудиогид», конечно, существовало, но было больше похоже на экспонат античного зала музея. Оно уже трудно поддерживалось гаджетами, не было версии для Android, имело хилый UX‑дизайн — в общем вся та боль, которая сопровождает приложения, разработанные в 2000-х годах.
На входе мы имели только то самое старое приложение и пожелания заказчика. Четкого ТЗ на руках не было. Поэтому для начала мы совместными усилиями сформулировали задачи, в частности, определили, какие функции должны выполнять приложение (для пользователя) и админка (для заказчика). Стало очевидно, что проще и дешевле сделать все заново, а не переписывать предыдущую версию.
Мы бодро приступили к работе, но через некоторое время грянули санкции, которые затронули сферу IT в том числе.
Некоторые варианты, которые мы планировали в начале сотрудничества, оказались невозможны, и нам пришлось быстро искать новые пути решения задач. Главным челенджем для нас стала навигация по музейному комплексу, так как готовых хороших решений на рынке не было. Второй, уже значительно более простой вызов, - это внедрение платежной системы. С остальными задачами мы расправились в рабочем режиме.
В итоге собрали абсолютно независимое от мировой конъюнктуры приложение, которое работает исключительно на отечественных сервисах, и никакие санкции ему не страшны.
Главная фишка приложения "Аудиогид» — интерактивная карта двух крыльев Эрмитажа: «Зимний дворец» и «Здание Главного штаба». Изначально мы планировали использовать зарубежные библиотеки работы с картами, но этот вариант стал недоступен.
Из исходных материалов на руках была только бумажная карта. Мы приняли решение разметить все залы как отдельные сущности через SVG и отрисовать все возможные переходы между ними в виде графа.
Мобильное приложение запускает Javascript‑код, который на SVG‑файле подсвечивает нужные переходы. А сам кратчайший путь ищется при помощи алгоритма Дейкстры.
Данное решение также дает возможность «включать» и «отключать» залы на карте, когда в этом есть необходимость, например, подготовка к новой выставке. Маршруты перерисовываются соответственно.
Приложение обновляется в фоновом режиме. Это необходимо, в частности, в том случае, когда определенный зал или экспонат становится недоступен для посетителей по какой‑либо причине. Через заданный интервал API синхронизируется. Отправляется запрос на сервер и проверяется контрольная сумма. Если есть какое‑то разночтение, скачивается обновленный пакет данных. Пользователю это не доставляет никаких проблем, он вообще этот процесс не замечает.
Простая в использовании админка — это было одно из главных требований заказчика. Потому что раньше для того, чтобы добавить новый экспонат, надо было задавать координаты: этаж, комнату, сколько метров от угла комнаты и так далее. Это было очень неудобно и отнимало много времени.
Мы реализовали эту задачу опять же через карту. Теперь достаточно кликнуть мышкой в нужное место, появляется возможность прикрепить аудиодорожку, фото и текст. По сути, это одна карта и на фронте, и в бэкенде. Принцип все тот же: SVG‑файл с детальной отрисовкой каждого зала.
Мы не сразу пришли к этому решению, изначально было не очень понятно, как корректно было бы редактировать карту, переносить или двигать экспонаты.
Админка мобильного приложения написана на фреймворке Vue.js и является частью бэкэнда laravel. К монолитной части, которая отвечает за сайт Эрмитажного магазина, прикреплена редактура приложения, чтобы заполнять базу данных и управлять контентом. Туда же прикручено несколько разделов, через которые можно редактировать контент аудиогида Эрмитажа. Таким образом редактура работает на два бэкэнда: редактирует записи сайта и аудиогида чрез разные разделы.
Важный момент — приложение работает в оффлайне. В Эрмитаже есть слепые зоны, куда не добивает интернет. При этом оно не ест много места в телефоне — удельный вес всего 174 МБ.
Также мы реализовали стандартный функционал аудиогида — прослушивание лекций, просмотр фото и т. д. В приложении доступны 10 экскурсий, 2 из которых бесплатные.
И конечно же, аудиогид Эрмитажа теперь доступен на всех операционках — и iOS, и Android.
По последним данным, за год работы приложения уже больше 63 тыс. загрузок, и на 50% выросли продажи экскурсий.