«Частые релизы — способ стимулировать команду устранять неоптимальности»: ключевое из подкаста с CTO RuStore Артёмом Аниным
Привет, это подкаст «Код за деньги» от КОД9. Записали выпуск с Артёмом Аниным, техническим директором магазина приложений RuStore. Поговорили про инфраструктуру сторов, обсудили, как измерять эффективность технической команды и строить карьерный путь, чтобы не терять интерес к профессии даже через много лет. В статье — только ключевые мысли в текстовом виде.
Про Артёма Анина
Технический директор RuStore — магазина приложений для Android. Окончил Новосибирский государственный технический университет.
Solution architect, PMP, выступает на конференциях и ведёт блог, где рассказывает про управление командами.
«В ИТ я уже 20 лет»: профессиональный путь Артёма
В двухтысячных поступил в Новосибирский университет на прикладную информатику. Мне была интересна экономика и ИТ, поэтому, когда выбирал специальность, хотел объединить два этих увлечения.
Нравится, что моя работа и хобби неразделимы, благодаря этому мне интересно в профессии даже спустя много лет.
В ИТ я пришёл в 2004 году, а в 2007 мне уже дали руководить отделом. Тогда я быстро переквалифицировался в менеджеры и с тех пор иду по этому треку. Руководил разными продуктовыми командами.
Затем работал деливери-менеджером в аутсорс-компании EPAM. Там были интересные задачи, например, мы автоматизировали проверку приживаемости генных-модификаций у мышей. Но несмотря на это, я быстро понял, что мне больше нравится разрабатывать продукты, и перешёл в другое место.
Перед пандемией начал работать в международном стриминговом сервисе. Управлял командами двух направлений: модерации и платежей.
Обычно мне давали бизнесовые метрики, а я должен был искать способы улучшать их с помощью нового функционала или инструментов конфигурирования бизнеса на проде. Влиял на продуктовые и технические решения, которые растили перформанс.
Очень драйвило чувство, что мне доверяют целое направление — я мог принимать решения и вести компанию к успеху.
А ещё на протяжении всего карьерного пути мне хотелось сделать свой стартап. Я 4 раза пытался, начинал разные проекты, например, создал сервис видеотрансляции вечеринок. Но если вы технарь, который не умеет продавать, всё быстро глохнет, и в итоге мотивация теряется.
«Я сразу согласился, когда меня позвали в RuStore, потому что развивать стор — это редкая задача»
В 2022 году стриминговый сервис, в котором я работал, уехал на Кипр. Я переезжать не хотел, и так совпало, что именно в этот момент меня позвали работать в RuStore.
Когда пришёл в компанию, стор только появился и мало кто понимал, зачем скачивать приложение из стороннего сервиса, если есть Google Play, App Store или Galaxy Store.
Тогда моими основными задачами было: повышать уровень доверия к приложению и растить аудиторию.
Работать нужно было не только с пользователями, но и с командой. Я доносил сотрудникам, что мы делаем важный инфраструктурный продукт, потому что это понимание часто появляется не сразу. Нам довольно быстро стали доверять, а аудитория RuStore растёт до сих пор.
За 2 года команда RuStore выросла в 10 раз: 30 → 300 человек.
Как технически устроен RuStore
Как и в других маркетплейсах в RuStore есть две части — B2B и B2C. Бизнесовая часть — это работа с публикацией приложений, а B2C — развитие витрин, откуда люди скачивают приложения.
В B2B части есть:
👉 Консоль разработчика, из которой он может опубликовать свои приложения в магазине. Это основной пользовательский сценарий, который хорошо проработан.
В консоль мы добавили разные сценарии публикации: разработчик может раскатить приложение на всю аудиторию, её часть или, например, запустить альфа-тестирование.
В консоли отображается, как приложение проходит модерацию, и там же можно подключать дополнительные инструменты, например, пуш-уведомления или монетизацию, отвечать на отзывы.
👉 Модуль модерации, в котором мы проверяем, соответствуют ли отзывы правилам площадки.
👉 Большая админ-панель, в которой мы проводим модерацию и проверяем приложения на безопасность — смотрим документы, платёжные интеграции.
Ещё с помощью этой админки контентная команда занимается фичерингом, ранжирует приложения в поиске.
B2С состоит из нескольких витрин:
👉 Android-витрина в приложении телефона.
👉 Сайт стора, откуда можно скачать приложение себе на устройство. Кстати, мы договорились с некоторыми вендорами, и теперь наше приложение предустанавливается на часть смартфонов.
👉 Веб-витрина — она работает как инструмент привлечения дополнительного трафика. Там есть каталог, можно посмотреть приложения, почитать про консоль.
Три основные задачи технического директора по версии Артёма
Подбирать людей в команду. Если нет людей, на которых можете опереться, — всё посыпется. Постепенно качество команды будет влиять на количество и стабильность фичей, которые она выпускает.
Стимулировать команду улучшаться. Даже если очень профессиональные инженеры делают свою работу хорошо, но не видят, что можно улучшить и оптимизировать — постепенно они будут замедляться.
Задача руководителя — указывать на зоны роста и фокусировать сотрудников, чтобы все члены команды росли и развивались.
Объяснять бизнесу на его языке, что делают технические команды, и как это поможет компании развиваться.
«Стараемся делать стабильно, много и быстро»: про мотивацию команды
Для мотивации сотрудников мы используем цели и фокусировку. Цели определяют, что и как мы будем растить, а я постоянно фокусирую команду на важном, чтобы цели выполнялись.
Чтобы сформулировать цели, мы опираемся на метрики. Когда у сотрудников перед глазами есть показатели, инженеры начинают думать, что нужно делать, чтобы ускоряться, и сами предлагают инициативы. Наши ключевые показатели — это DORA-метрики (DevOps Research and Assessment) и сокращение time to market.
Расскажу подробнее про 5 показателей, за которыми мы следим:
👉 Длительность задачи от старта разработки до выхода в прод — в часах.
👉 Стабильность релизов — доля релизов, которые происходят без откатов или с откатами.
👉 Скорость расследования инцидентов и устранения блокеров.
👉 Частотность релизов.
👉 Service level agreement — уровень надёжности. Эту метрику мы ввели как дополнительную к основным четырём DORA-показателям.
«Делаем аналог Firebase»: про инструменты для разработчиков в RuStore
Мы выпустили ряд утилит, которые доступны на нашей платформе, и частью из них пользуемся в работе сами. Вот что у нас есть:
Утилита для поиска и аналитики технических проблем в приложениях под Android и iOS. Инструмент называется Tracer, даёт возможность смотреть расширенную статистику по поведению приложения и проблемам, которые могут возникнуть.
A/B-тесты — позволяют выпускать одну фичу в разных вариациях, чтобы проверять, какая реализация больше нравится пользователям.
Remote config — утилита для удалённого конфигурирования приложения. Позволяет включать и выключать функции, чтобы поведение приложения менялось.
Так как разработчики мобильных приложений хотят получать прибыль, для них важны разные маркетинговые и монетизационные инструменты. Такие мы тоже добавили в стор. Например, реализовали собственный транспорт, который доставляет пуш-уведомления на устройства пользователей, и используем инструмент MyTracker для сбора аналитики в мобильном приложении.
В этой статье — только мысли Артёма из подкаста. А мои дополнения и другие заметки про агентский бизнес можно посмотреть в телеграм-канале 👇🏻