SlideShare a Scribd company logo
Эволюция разработки в Badoo
Рыбак Алексей
зам. главы разработки Badoo
Привет
Это ещё один рассказ о том, как
развивалась разработка в большом проекте
Кризисы роста: области ответственности,
производственные цепочки
Поделить/переделать, сохранив ценности и
пульс
2
Badoo - это:
Социальная сеть для встречи с новыми людьми
177М пользователей, ~30M MAU, ~10M DAU
Крупнейшие страны: Испания, Италия, Франция, Бразилия,
США
2 офиса разработки: Москва и Лондон
Миллионы строк кода, тысячи серверов
Стандартный стэк: Linux, NGINX, PHP, MySQL, Memcached,
C/C++
120 инженеров
3
Продуктовая интернет-компания
Программа в единственном экземпляре
Менее остро стоят вопросы совместимости
ПО и железа
Можно всё подбирать под себя и
подкручивать на ходу
4
Ценности продуктового стартапа
Быстрый либо мёртвый
Экспериментируем, скорость в ущерб
качеству
24х7, “легкий” саппорт
5
От стартапа к продуктовой
компании
Бизнес-инварианты
Лёгкий саппорт: разделение
ответственности, инфраструктурные
проекты
Максимально быстрый цикл разработки при
сохранении качества: производственные
цепочки
Проследим, как менялась разработка и
сохранялись инварианты
6
Кризисы роста
Кризис I: саппорт (10 – 20 чел, 2007)
Кризис II: дробление и новые роли в
организации (20 – 50 чел, 2009)
Кризис III: качество (QA) и перестройка
производственных цепочек (50 – 100+ чел,
2011)
7
Саппорт
Время программистов = время разработки продукта +
время на саппорт
Саппорт в широком смысле
− Поиск и мониторинг медленных/ненадежных мест
− Переделка архитектуры
− Инструменты для поддержки (мониторинг, деплой,
управление кластерами ...)
− Инструменты для разработки (автоматизация, ядро ...)
8
Саппорт: отдельную команду не строим
Пахнет “штрафбатом”
Вовлеченность и мотивация сотрудников
Твой софт – твой крест
− Ты накосячил – ты и правь
− Нагрузка вырастет в “стопицот” раз, вокруг всё миллион
раз упадет, наш (твой!) софт должен это пережить
− Пусть будут ошибки – давай быстро поправим, просто не
тупи и делай
9
Кризис I: саппорт (2007)
Отдельное направление: производительность,
надежность, мониторинг
Фейл: общие ресурсы
Фикс:
− A-team + C/C++ = Platform (инфраструктурные
проекты)
− Рост группы сисадминов/эксплуатации
10
Кризис II: дробление (2009?)
Оставить быстрым цикл разработки
Поделить команды функционально
Производственная цепочка по-прежнему
тривиальна: фигак-фигак, в продакшн!
Строим продуктовую команду
Не меняем сильно процессы, боимся сбить
ритм
11
Кризис II: дробление
Фейл: как “не пошёл” скрам
Функциональное дробление без перестройки
производственных цепочек
С/С++, Фичи, биллинг, A-team, мобильная разработка, бэк-
офис, антиспам/почта
Проблемы: лиды, перераспределение зон
Фейл: позиции “магов”
Проблема: качество
Рекрутинг и HR, системный ревью зп
12
Кризис III: качество (2011)
Перестройка производственных цепочек
Отдел качества, release engineering
Девелоперская инфраструктура: площадка,
continuous integration, управление релизами,
прочая автоматизация
Перестройка без остановки разработки продукта:
A-team
Параллельно: строим QA/RE
13
Сейчас: статусы задач (фичи)
 PRD <-> нет вопросов у программистов
 Задача разбита по компонентам (микрокоманды)
 Если нужно железо – есть сроки
 Сопутствующие задачи (BI, мониторинг)
 Код и тесты написаны, тесты прошли на девеле, ревью
 QA passed
 Переводы готовы (40 языков, ~10 основных)
 RE: тесты на стейджинге, деплой
 Деплой может быть поэтапным: на части пользователей -> метрики ->
везде
14
Кризис III: перестройка процессов
Подготовка в 2011, плотно - лишь в 2012 году
Деплой по фичам: svn -> git, “шоты” (фича) и
“билды” (релизы)
Девелоперская площадка: полная эмуляция 2х ДЦ
и базовых компонент
Утилиты деплоя и автоматизации, интеграция с
JIRA, доработка staging-инфраструктуры
Версионирование переводов
15
Кризис III: перестройка процессов
Строгий flow в JIRA + автоматизация
Unit-тесты: 15000 тестов за 3 минуты
Selenium-тесты: 200 тестов за 20 минут
2 релиза в день: утром и после обеда
Стогие стандарты кодирования, заголовки
(модуль-команда-человек), покрытие кода
A-team -> передача сисадминам и релиз-
инженерам
16
Выводы (1)
 Методологии не очень существенны
 Без фанатизма и сектантства. Waterfall?
Пускай. Не-agile? И что?
 Backlogs, burn down charts, stand-up
meetings
17
Выводы (2)
Инфраструктурные проекты неизбежны
Технический долг: время разработки
продукта -> отдельная команда. A-team у
нас – не DevOps
Без QA можно обойтись, и долго. Качество
на этапе релиза vs качество в “продакшене”
(ошибки, мониторинг)
18
Выводы (3)
Если QA неизбежен (число людей): чем
раньше строить QA – тем лучше
Перестройка цепочек – наиболее
болезненные процессы, с отдельной
командой - лучше
19
Спасибо!
Ваши вопросы, пожалуйста!
 a.rybak@corp.badoo.com
 http://habrahabr.ru/company/badoo
 http://facebook.com/BadooMoscow
 http://twitter.com/BadooDev
20

More Related Content

What's hot

Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Vadim Martynov
 
Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)
Oksana Kurysheva
 
Как проекты приходят к DevOps?
Как проекты приходят к DevOps?Как проекты приходят к DevOps?
Как проекты приходят к DevOps?
SQALab
 
Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программист
ru_Parallels
 
Software craftsmanship meetup #4
Software craftsmanship meetup #4Software craftsmanship meetup #4
Software craftsmanship meetup #4
Pavel Veinik
 
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
Microsoft
 
Организация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm finalОрганизация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm final
Microsoft
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
ScrumTrek
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
CEE-SEC(R)
 
Software craftsmanship 7
Software craftsmanship 7Software craftsmanship 7
Software craftsmanship 7
Pavel Veinik
 

What's hot (10)

Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
 
Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)Управление проектами (Алексей Васюков, ITD Systems)
Управление проектами (Алексей Васюков, ITD Systems)
 
Как проекты приходят к DevOps?
Как проекты приходят к DevOps?Как проекты приходят к DevOps?
Как проекты приходят к DevOps?
 
Что должен уметь Linux программист
Что должен уметь Linux программистЧто должен уметь Linux программист
Что должен уметь Linux программист
 
Software craftsmanship meetup #4
Software craftsmanship meetup #4Software craftsmanship meetup #4
Software craftsmanship meetup #4
 
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOpsALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
ALM Roadshow Организация процессов разработки – введение в Microsoft ALM/DevOps
 
Организация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm finalОрганизация процессов разработки – введение в Microsoft alm final
Организация процессов разработки – введение в Microsoft alm final
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
 
Software craftsmanship 7
Software craftsmanship 7Software craftsmanship 7
Software craftsmanship 7
 

Viewers also liked

Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Badoo Development
 
Solit 2013, Open Source continuous integration in java, Калачев Дмитрий
Solit 2013, Open Source continuous integration in java, Калачев ДмитрийSolit 2013, Open Source continuous integration in java, Калачев Дмитрий
Solit 2013, Open Source continuous integration in java, Калачев Дмитрий
solit
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
Kairat Yussupov
 
Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?
Vitebsk Miniq
 
AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)
Anton Katkov
 
Алексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationАлексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous Integration
Oleg Poludnenko
 
Continuous Integration для тестировщиков
Continuous Integration для тестировщиковContinuous Integration для тестировщиков
Continuous Integration для тестировщиков
Uladzimir Kryvenka
 
Continuous Integration для QA
Continuous Integration для QAContinuous Integration для QA
Continuous Integration для QA
Ivan Kolodyazhny
 
Без чего не работают самые крутые технологии
Без чего не работают самые крутые технологииБез чего не работают самые крутые технологии
Без чего не работают самые крутые технологии
ADV/web-engineering
 
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
Badoo Development
 
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Badoo Development
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...Badoo Development
 
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТ
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТЮнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТ
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТ
Badoo Development
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
Badoo Development
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
Badoo Development
 
Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?
Badoo Development
 
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Badoo Development
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
Badoo Development
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Docker, Inc.
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma
Badoo Development
 

Viewers also liked (20)

Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
 
Solit 2013, Open Source continuous integration in java, Калачев Дмитрий
Solit 2013, Open Source continuous integration in java, Калачев ДмитрийSolit 2013, Open Source continuous integration in java, Калачев Дмитрий
Solit 2013, Open Source continuous integration in java, Калачев Дмитрий
 
Continious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-AgileContinious integration-Automated Testing-Solid-Agile
Continious integration-Automated Testing-Solid-Agile
 
Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?Зачем авто-тесты нам нужны?
Зачем авто-тесты нам нужны?
 
AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)AgileCamp’11 Новосибирск - Continuous Integration (CI)
AgileCamp’11 Новосибирск - Continuous Integration (CI)
 
Алексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous IntegrationАлексей Рыстенко: Continuous Integration
Алексей Рыстенко: Continuous Integration
 
Continuous Integration для тестировщиков
Continuous Integration для тестировщиковContinuous Integration для тестировщиков
Continuous Integration для тестировщиков
 
Continuous Integration для QA
Continuous Integration для QAContinuous Integration для QA
Continuous Integration для QA
 
Без чего не работают самые крутые технологии
Без чего не работают самые крутые технологииБез чего не работают самые крутые технологии
Без чего не работают самые крутые технологии
 
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.
 
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
 
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
QaAPI. Взгляд на тестирование с другой стороны баррикад. Доклад Дмитрия Марущ...
 
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТ
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТЮнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТ
Юнит-тесты: от общего к частному. Доклад Александра Свинцова На LoveQA РИТ
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
Мобильный веб: назад в будущее
Мобильный веб: назад в будущееМобильный веб: назад в будущее
Мобильный веб: назад в будущее
 
Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?Технологии vs коммуникации: что важнее?
Технологии vs коммуникации: что важнее?
 
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторонБагфиксинг процесса разработки в iOS: взгляд с двух сторон
Багфиксинг процесса разработки в iOS: взгляд с двух сторон
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
 
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
Build, Publish, Deploy and Test Docker images and containers with Jenkins Wor...
 
TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma TechLeads meetup: Евгений Потапов, ITSumma
TechLeads meetup: Евгений Потапов, ITSumma
 

Similar to Эволюция разработки в Badoo

Автоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапеАвтоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапе
Evgeny Savitsky
 
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
Ontico
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
Sergey Baranov
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Ontico
 
раубичи ронд
раубичи рондраубичи ронд
раубичи ронд
zolik
 
Управление Big data платформой Почты России
Управление Big data платформой Почты РоссииУправление Big data платформой Почты России
Управление Big data платформой Почты России
Andrey Bashchenko
 
горник процесс Mindbox
горник   процесс Mindboxгорник   процесс Mindbox
горник процесс MindboxMagneta AI
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
Alexander Gornik
 
BPM: вернуться к истокам
BPM: вернуться к истокамBPM: вернуться к истокам
BPM: вернуться к истокам
Anatoly Belychook
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)
Василий Савунов
 
вольман окб новатор
вольман окб новаторвольман окб новатор
вольман окб новаторNatalya Press
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get Done
Max Klymyshyn
 
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Ontico
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
Anton Zhukov
 
Software craftsmanship 8
Software craftsmanship 8Software craftsmanship 8
Software craftsmanship 8
Pavel Veinik
 
Прагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектовПрагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектов
Anatol Filin
 
Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015
Александр Ежов
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
Alexey Lustin
 
Req Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийReq Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийAlexander Kalouguine
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
Maksym Bezuglyi
 

Similar to Эволюция разработки в Badoo (20)

Автоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапеАвтоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапе
 
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
раубичи ронд
раубичи рондраубичи ронд
раубичи ронд
 
Управление Big data платформой Почты России
Управление Big data платформой Почты РоссииУправление Big data платформой Почты России
Управление Big data платформой Почты России
 
горник процесс Mindbox
горник   процесс Mindboxгорник   процесс Mindbox
горник процесс Mindbox
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
 
BPM: вернуться к истокам
BPM: вернуться к истокамBPM: вернуться к истокам
BPM: вернуться к истокам
 
Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)Что вас ждет на пути реализации Soa (Битрикс отступает)
Что вас ждет на пути реализации Soa (Битрикс отступает)
 
вольман окб новатор
вольман окб новаторвольман окб новатор
вольман окб новатор
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get Done
 
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
Разработка кроссплатформенного фреймворка на С++ для мобильных платформ / Вла...
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Software craftsmanship 8
Software craftsmanship 8Software craftsmanship 8
Software craftsmanship 8
 
Прагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектовПрагматичный подход к документированию Веб-проектов
Прагматичный подход к документированию Веб-проектов
 
Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
Req Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требованийReq Labs'2011. Коммуникация нефункциональных требований
Req Labs'2011. Коммуникация нефункциональных требований
 
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать"Этот код плохой, его нужно переписать". Слышали? Как обосновать
"Этот код плохой, его нужно переписать". Слышали? Как обосновать
 

More from ADV/web-engineering

Стратегия персонализации магазина
Стратегия персонализации магазинаСтратегия персонализации магазина
Стратегия персонализации магазина
ADV/web-engineering
 
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
ADV/web-engineering
 
RTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчасRTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчас
ADV/web-engineering
 
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникацииPerformance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
ADV/web-engineering
 
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетингеМультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
ADV/web-engineering
 
Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?
ADV/web-engineering
 
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
ADV/web-engineering
 
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиентаСекции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
ADV/web-engineering
 
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
ADV/web-engineering
 
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
ADV/web-engineering
 
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
ADV/web-engineering
 
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
ADV/web-engineering
 
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
ADV/web-engineering
 
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
ADV/web-engineering
 
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
ADV/web-engineering
 
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
ADV/web-engineering
 
Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.
ADV/web-engineering
 
Рефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствиеРефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствие
ADV/web-engineering
 
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...
ADV/web-engineering
 

More from ADV/web-engineering (20)

Стратегия персонализации магазина
Стратегия персонализации магазинаСтратегия персонализации магазина
Стратегия персонализации магазина
 
3 rif final_ofsys
3 rif final_ofsys3 rif final_ofsys
3 rif final_ofsys
 
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
 
RTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчасRTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчас
 
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникацииPerformance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
 
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетингеМультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
 
Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?
 
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
 
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиентаСекции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
 
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
 
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
 
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
 
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
 
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
 
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
 
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
 
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
 
Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.
 
Рефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствиеРефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствие
 
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...
День ADV на Russian Digital Week: Каким должно быть агентство, чтобы крупные ...
 

Эволюция разработки в Badoo

  • 1. Эволюция разработки в Badoo Рыбак Алексей зам. главы разработки Badoo
  • 2. Привет Это ещё один рассказ о том, как развивалась разработка в большом проекте Кризисы роста: области ответственности, производственные цепочки Поделить/переделать, сохранив ценности и пульс 2
  • 3. Badoo - это: Социальная сеть для встречи с новыми людьми 177М пользователей, ~30M MAU, ~10M DAU Крупнейшие страны: Испания, Италия, Франция, Бразилия, США 2 офиса разработки: Москва и Лондон Миллионы строк кода, тысячи серверов Стандартный стэк: Linux, NGINX, PHP, MySQL, Memcached, C/C++ 120 инженеров 3
  • 4. Продуктовая интернет-компания Программа в единственном экземпляре Менее остро стоят вопросы совместимости ПО и железа Можно всё подбирать под себя и подкручивать на ходу 4
  • 5. Ценности продуктового стартапа Быстрый либо мёртвый Экспериментируем, скорость в ущерб качеству 24х7, “легкий” саппорт 5
  • 6. От стартапа к продуктовой компании Бизнес-инварианты Лёгкий саппорт: разделение ответственности, инфраструктурные проекты Максимально быстрый цикл разработки при сохранении качества: производственные цепочки Проследим, как менялась разработка и сохранялись инварианты 6
  • 7. Кризисы роста Кризис I: саппорт (10 – 20 чел, 2007) Кризис II: дробление и новые роли в организации (20 – 50 чел, 2009) Кризис III: качество (QA) и перестройка производственных цепочек (50 – 100+ чел, 2011) 7
  • 8. Саппорт Время программистов = время разработки продукта + время на саппорт Саппорт в широком смысле − Поиск и мониторинг медленных/ненадежных мест − Переделка архитектуры − Инструменты для поддержки (мониторинг, деплой, управление кластерами ...) − Инструменты для разработки (автоматизация, ядро ...) 8
  • 9. Саппорт: отдельную команду не строим Пахнет “штрафбатом” Вовлеченность и мотивация сотрудников Твой софт – твой крест − Ты накосячил – ты и правь − Нагрузка вырастет в “стопицот” раз, вокруг всё миллион раз упадет, наш (твой!) софт должен это пережить − Пусть будут ошибки – давай быстро поправим, просто не тупи и делай 9
  • 10. Кризис I: саппорт (2007) Отдельное направление: производительность, надежность, мониторинг Фейл: общие ресурсы Фикс: − A-team + C/C++ = Platform (инфраструктурные проекты) − Рост группы сисадминов/эксплуатации 10
  • 11. Кризис II: дробление (2009?) Оставить быстрым цикл разработки Поделить команды функционально Производственная цепочка по-прежнему тривиальна: фигак-фигак, в продакшн! Строим продуктовую команду Не меняем сильно процессы, боимся сбить ритм 11
  • 12. Кризис II: дробление Фейл: как “не пошёл” скрам Функциональное дробление без перестройки производственных цепочек С/С++, Фичи, биллинг, A-team, мобильная разработка, бэк- офис, антиспам/почта Проблемы: лиды, перераспределение зон Фейл: позиции “магов” Проблема: качество Рекрутинг и HR, системный ревью зп 12
  • 13. Кризис III: качество (2011) Перестройка производственных цепочек Отдел качества, release engineering Девелоперская инфраструктура: площадка, continuous integration, управление релизами, прочая автоматизация Перестройка без остановки разработки продукта: A-team Параллельно: строим QA/RE 13
  • 14. Сейчас: статусы задач (фичи)  PRD <-> нет вопросов у программистов  Задача разбита по компонентам (микрокоманды)  Если нужно железо – есть сроки  Сопутствующие задачи (BI, мониторинг)  Код и тесты написаны, тесты прошли на девеле, ревью  QA passed  Переводы готовы (40 языков, ~10 основных)  RE: тесты на стейджинге, деплой  Деплой может быть поэтапным: на части пользователей -> метрики -> везде 14
  • 15. Кризис III: перестройка процессов Подготовка в 2011, плотно - лишь в 2012 году Деплой по фичам: svn -> git, “шоты” (фича) и “билды” (релизы) Девелоперская площадка: полная эмуляция 2х ДЦ и базовых компонент Утилиты деплоя и автоматизации, интеграция с JIRA, доработка staging-инфраструктуры Версионирование переводов 15
  • 16. Кризис III: перестройка процессов Строгий flow в JIRA + автоматизация Unit-тесты: 15000 тестов за 3 минуты Selenium-тесты: 200 тестов за 20 минут 2 релиза в день: утром и после обеда Стогие стандарты кодирования, заголовки (модуль-команда-человек), покрытие кода A-team -> передача сисадминам и релиз- инженерам 16
  • 17. Выводы (1)  Методологии не очень существенны  Без фанатизма и сектантства. Waterfall? Пускай. Не-agile? И что?  Backlogs, burn down charts, stand-up meetings 17
  • 18. Выводы (2) Инфраструктурные проекты неизбежны Технический долг: время разработки продукта -> отдельная команда. A-team у нас – не DevOps Без QA можно обойтись, и долго. Качество на этапе релиза vs качество в “продакшене” (ошибки, мониторинг) 18
  • 19. Выводы (3) Если QA неизбежен (число людей): чем раньше строить QA – тем лучше Перестройка цепочек – наиболее болезненные процессы, с отдельной командой - лучше 19
  • 20. Спасибо! Ваши вопросы, пожалуйста!  a.rybak@corp.badoo.com  http://habrahabr.ru/company/badoo  http://facebook.com/BadooMoscow  http://twitter.com/BadooDev 20