1. Жизнь на передовой: управление технической
командой в продуктовой разработке
Николай Крапивный
CodeFest, 2017
2. 2
Обо мне
✦ 7 лет в Badoo: начинал php-разработчиком
✦ Руковожу техническими отделами: features,
антиспам, mail/push
✦ Строю взаимодействие между продуктом и
технарями
3. 3
Что вы узнаете?
✦ Как устроен наш процесс разработки
✦ Как добиваемся эффективной работы
✦ Как мы выросли в 5 раз и сохранили темп стартапа
13. 13
PRD*
✦ Документ в wiki
* Product Requirements Document
✦ Шаблон: зачем делаем, что делаем, как
запускаем, как меряем
✦ По сути — заказ на разработку
✦ Шарим знания между участниками процесса
15. 15
Мобильная эра
✦ Клиентов — 4, не 1
✦ Проблема: разные реализации
✦ Проблема: ограничения на платформах
✦ Нужна техническая документация!
16. 16
MAPI
✦ MAPI = Mobile API
✦ Технические подробности:
✦ Протокол между клиентом и сервером
CodeFest 2015: доклад «Все о бекенде мобильных
приложений Badoo»
✦ Изначально — мобилы, потом и веб
17. 17
MAPI — часть процесса
✦ Отдельная роль: разработчик MAPI
✦ На входе: PRD
✦ На выходе: протокол (MAPI), документация
✦ Внутри: много коммуникации, широкая экспертиза
25. 25
Баланс!
✦ Основной поток задач: стандартный процесс
✦ По необходимости выделяем мини-команды
✦ В общем: высокая скорость
✦ Стартап-подход где нужно
26. 26
Итого:
✦ Скорость: подстраиваем, получаем там где нужно
✦ Гибкость: подстраиваемся под требования
✦ Эффективность: не перерасходуем без необходимости
✦ Прозрачность: есть
28. 28
Features team:
✦ Поддерживаем backend наших приложений
✦ Растем: в 5 раз за 5 лет, сейчас 30 человек
✦ Два офиса: Москва и Лондон
✦ Основной заказчик — продуктовая команда
38. 38
Что входит:
✦ Технический долг
✦ Технические инициативы и предложения
✦ Производительность кода
✦ Надежность кода
✦ DevOps задачи
39.
40. 40
Отдельная команда?
✦ Гарантирует ресурс под тех задачи
✦ Способствует росту инженеров
✦ Усложняет работу на retention
✦ Снижает техническую инициативу
✦ Работает от какого-то размера команды
44. 44
Все делают всё:
✦ Максимальная гибкость
✦ Шаринг знаний, разнообразие задач
✦ Не масштабируется
✦ Препятствует развитию экспертизы
45. 45
Каждому — своё:
✦ Способствует развитию экспертизы
✦ Максимальная скорость реализации
✦ Не гибкая с точки зрения ресурсов
✦ Bus factor
46. 46
Баланс: компоненты
✦ Компоненты — большие функциональные куски (пример:
мессенджер, профиль)
✦ Между группами: компоненты, каждому — своё
✦ Внутри групп: все делают всё
✦ Внутри групп: «мастера» для каждого компонента
✦ Группы по 4-7 человек