Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Николай Крапивный (Badoo), CodeFest 2017

CodeFest
January 31, 2018

Николай Крапивный (Badoo), CodeFest 2017

https://2017.codefest.ru/lecture/1207

В Badoo работает более 200 инженеров, и за последние несколько лет количество людей и задач выросло в разы. Тем не менее мы стараемся сохранить темп и гибкость стартапа.

В докладе поговорим про управление server-side командой, которая разрабатывает продукт. Как у нас построен процесс и как он менялся с ростом команды; с какими проблемами мы сталкиваемся; как их решаем и как технарю не приуныть от продуктовой работы.

Расскажу про:
● Unstoppable force: от идеи до продакшена за один день;
● особенности продуктовой разработки: наши tips & tricks по работе с требованиями и приоритетами;
● масштабирование команды и балансировка нагрузки внутри нее;
● зоны ответственности: PM, тимлид, разработчик, тестировщик;
● как работаем в условиях распределенной команды.

CodeFest

January 31, 2018
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. 2 Обо мне ✦ 7 лет в Badoo: начинал php-разработчиком

    ✦ Руковожу техническими отделами: features, антиспам, mail/push ✦ Строю взаимодействие между продуктом и технарями
  2. 3 Что вы узнаете? ✦ Как устроен наш процесс разработки

    ✦ Как добиваемся эффективной работы ✦ Как мы выросли в 5 раз и сохранили темп стартапа
  3. 46 languages 330M users 190 countries “ BADOO IS THE

    LARGEST DATING NETWORK IN THE WORLD — Forbes
  4. 9 C чего все начиналось ✦ Сложность невысокая ✦ Взаимодействий

    немного ✦ Команда маленькая ✦ Все работает «само собой»
  5. 13 PRD* ✦ Документ в wiki * Product Requirements Document

    ✦ Шаблон: зачем делаем, что делаем, как запускаем, как меряем ✦ По сути — заказ на разработку ✦ Шарим знания между участниками процесса
  6. 15 Мобильная эра ✦ Клиентов — 4, не 1 ✦

    Проблема: разные реализации ✦ Проблема: ограничения на платформах ✦ Нужна техническая документация!
  7. 16 MAPI ✦ MAPI = Mobile API ✦ Технические подробности:

    ✦ Протокол между клиентом и сервером CodeFest 2015: доклад «Все о бекенде мобильных приложений Badoo» ✦ Изначально — мобилы, потом и веб
  8. 17 MAPI — часть процесса ✦ Отдельная роль: разработчик MAPI

    ✦ На входе: PRD ✦ На выходе: протокол (MAPI), документация ✦ Внутри: много коммуникации, широкая экспертиза
  9. 19 Что получили? ✦ Явные стадии ✦ Четкий вход и

    выход ✦ У каждой стадии — свой ответственный ✦ Клиент/сервер могут работать параллельно
  10. 20

  11. 25 Баланс! ✦ Основной поток задач: стандартный процесс ✦ По

    необходимости выделяем мини-команды ✦ В общем: высокая скорость ✦ Стартап-подход где нужно
  12. 26 Итого: ✦ Скорость: подстраиваем, получаем там где нужно ✦

    Гибкость: подстраиваемся под требования ✦ Эффективность: не перерасходуем без необходимости ✦ Прозрачность: есть
  13. 28 Features team: ✦ Поддерживаем backend наших приложений ✦ Растем:

    в 5 раз за 5 лет, сейчас 30 человек ✦ Два офиса: Москва и Лондон ✦ Основной заказчик — продуктовая команда
  14. 33 За кадром остается: ✦ Развитие сотрудников ✦ Технический долг

    ✦ Мониторинг, производительность ✦ Технологические вопросы ✦ и еще одна вещь…
  15. 35 Delivery ✦ Доставлять! Retention ✦ Быстро! ✦ Качественно! ✦

    Люди (рост, найм) ✦ Технологии ✦ Найм Задачи:
  16. 38 Что входит: ✦ Технический долг ✦ Технические инициативы и

    предложения ✦ Производительность кода ✦ Надежность кода ✦ DevOps задачи
  17. 40 Отдельная команда? ✦ Гарантирует ресурс под тех задачи ✦

    Способствует росту инженеров ✦ Усложняет работу на retention ✦ Снижает техническую инициативу ✦ Работает от какого-то размера команды
  18. 41 Делаем: ✦ Резервируем время ✦ Максимизируем пользу ✦ Чередуем

    с продуктовыми задачами ✦ Поощряем успешные инициативы
  19. 44 Все делают всё: ✦ Максимальная гибкость ✦ Шаринг знаний,

    разнообразие задач ✦ Не масштабируется ✦ Препятствует развитию экспертизы
  20. 45 Каждому — своё: ✦ Способствует развитию экспертизы ✦ Максимальная

    скорость реализации ✦ Не гибкая с точки зрения ресурсов ✦ Bus factor
  21. 46 Баланс: компоненты ✦ Компоненты — большие функциональные куски (пример:

    мессенджер, профиль) ✦ Между группами: компоненты, каждому — своё ✦ Внутри групп: все делают всё ✦ Внутри групп: «мастера» для каждого компонента ✦ Группы по 4-7 человек
  22. 47 Компоненты: ✦ Достаточная гибкость ✦ Масштабируется ✦ Способствует развитию

    экспертизы ✦ Требует балансировки между компонентами
  23. 49 Итого: ✦ Процесс: делаем максимально гибким, подстраиваем под задачи

    компании ✦ Команда: баланс продуктового/технического! ✦ Команда: компоненты для распределения нагрузки ✦ Процесс: держим баланс гибкости/скорости