«Частые релизы — способ стимулировать команду устранять неоптимальности»: ключевое из подкаста с CTO RuStore Артёмом Аниным

Привет, это подкаст «Код за деньги» от КОД9. Записали выпуск с Артёмом Аниным, техническим директором магазина приложений RuStore. Поговорили про инфраструктуру сторов, обсудили, как измерять эффективность технической команды и строить карьерный путь, чтобы не терять интерес к профессии даже через много лет. В статье — только ключевые мысли в текстовом виде.

«Частые релизы — способ стимулировать команду устранять неоптимальности»: ключевое из подкаста с CTO 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 для сбора аналитики в мобильном приложении.

В этой статье — только мысли Артёма из подкаста. А мои дополнения и другие заметки про агентский бизнес можно посмотреть в телеграм-канале 👇🏻

1111
Начать дискуссию