Непродуктовая разработка в VK

Недавно прошел лекторий «ВКонтакте на практике», на котором с докладом «Непродуктовая разработка в VK» выступил разработчик инфраструктуры Алексей Акулович.

Он рассказал, как формировалась команда инфраструктурной разработки и поделился, какими были его первые задачи в команде.

Немного истории

VK стартовал как обычный веб-сайт — существовала команда веб-разработчиков и команда тех, кто занимался базой данных.

Непродуктовая разработка в VK, image #1

Затем появились клиенты для Android и iOS. С тех пор появилось некое разделение: одна команда занималась веб-разработкой, а другая API для мобильных устройств. Также существовала общая база данных, которой пользовались обе команды.

Непродуктовая разработка в VK, image #2

Позже появились десктоп-приложение, использующее API, и полноценная мобильная версия, использующая, по сути, код web-приложения.

Непродуктовая разработка в VK, image #3

Common — большая кодовая база, которой пользуется каждая команда разработчиков. Алексей работает в команде, которая находится где-то на стыке между общим кодом и кодом базы данных.

Непродуктовая разработка в VK, image #4

Алексей пришёл в команду летом 2014 года, когда там работали примерно 12 человек. Тогда каждый занимался fullstack-разработкой и полностью отвечал за свою часть продукта.

Первые задачи

Первым заданием Алексея стал рефакторинг кода видеозаписей. На тот момент сервис пусть уже и существовал, но работал нестабильно.

Непродуктовая разработка в VK, image #5

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

Непродуктовая разработка в VK, image #6

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

Непродуктовая разработка в VK, image #7

Все три задачи на этом этапе никак не были связаны с прямым взаимодействием с пользователем, оттого эта разработка и назвалась «непродуктовой». Разработки использовались другими командами для реализации какой-либо фичи, которые в дальнейшем применялись пользователями.

Судьба команды

К 2015 году уже начала собираться полноценная команда backend-разработчиков, которая занималась проектом только изнутри.

Непродуктовая разработка в VK, image #8

Команда инфраструктурной разработки работала с самыми различными сервисами.

Непродуктовая разработка в VK, image #9

Количество бэкенд-разработчиков в 2019 году возросло до 13.

Непродуктовая разработка в VK, image #10

Каждый в команде знает 4 языка разработки.

Непродуктовая разработка в VK, image #11

С увеличением штата росли и возможности. Ожидаемо увеличился и объём работ.

Непродуктовая разработка в VK, image #12

Широкий спектр задач требует совершенно разного опыта, поэтому каждый разработчик может подобрать или даже придумать то, что интересно именно ему.

Непродуктовая разработка в VK, image #13

Много задач — много багов. Мало того, другие команды зачастую просят что-то исправить или реализовать именно у команды инфраструктурной разработки.

Непродуктовая разработка в VK, image #14

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

Непродуктовая разработка в VK, image #15

Из-за того, что команда Алексея занимается нижележащим кодом, разработчики вправе сами выбирать инструменты, которые наиболее подходящим образом решают конкретную задачу.

Непродуктовая разработка в VK, image #16

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

У команды всё классно!

Непродуктовая разработка в VK, image #17

Запись выступления можно посмотреть ниже.

Непродуктовая разработка в VK, image #18

The Brown Room — независимое интернет-издание про социальные сети и современные технологии

Автор: Илья Филиппов
Корректоры: Лена NL / Арсений Метелев
Слайды и данные: VK Education / Алексей Акулович

190 views·4 shares
190 views