SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Эволюция разработки в Badoo
Рыбак Алексей
зам. главы разработки Badoo
a.rybak@corp.badoo.com
привет
Всего лишь ещё один рассказ о том, как
развивалась разработка в большом
проекте
Кризисы роста: области
ответственности, производственные
цепочки
Поделить/переделать, сохранив
ценности и пульс
Badoo
 Социальная сеть для встречи с новыми людьми
 190М users, ~30M MAU, ~10M DAU
 Крупнейшие страны: Испания, Италия, Франция, Бразилия,
США
 2 офиса разработки: Москва и Лондон
 Миллионы строк кода, тысячи серверов, три датацентра
 Стандартный стэк: Linux, nginx, PHP, MySQL, Memcached,
C/C++
 100+ инженеров
Продуктовая интернет-компания
Программа в единственном экземпляре
Менее остро стоят вопросы совместимости ПО
и железа
Можно всё подбирать под себя и
подкручивать «на ходу»
Ценности продуктового стартапа
Быстрый либо мёртвый
Экспериментируем, скорость в ущерб
качеству
24х7, «легкий» саппорт
От стартапа к продуктовой компании
Бизнес-инварианты
«Лёгкий» саппорт: разделение ответственности,
инфраструктурные проекты
Максимально быстрый цикл разработки при
сохранении качества: производственные цепочки
Проследим, как менялась разработка и сохранялись
инварианты
Кризисы роста
Кризис I: саппорт (10 – 20 чел, 2007)
Кризис II: дробление и новые роли в
организации (20 – 50 чел, 2009)
Кризис III: качество (QA) и перестройка
производственных цепочек (50 – 100+ чел,
2011)
Саппорт
 Время программистов = время разработки продукта +
время на саппорт
 Саппорт в широком смысле
• Поиск и мониторинг медленных/ненадежных мест
• Переделка архитектуры
• Инструменты для поддержки (мониторинг, деплой,
управление кластерами...)
• Инструменты для разработки (автоматизация,
ядро...)
Саппорт: отдельную команду не строим
 Пахнет «штрафбатом»
 Вовлеченность и мотивация сотрудников
 Твой софт – твой крест
• Ты накосячил – ты и правь
• Нагрузка вырастет в «стопицот» раз, вокруг всё
миллион раз упадет, наш (твой!) софт должен это
пережить
• Пусть будут ошибки – давай быстро поправим,
просто не тупи и делай
Кризис I: саппорт (2007)
Отдельное направление: производительность,
надежность, мониторинг
Фейл: общие ресурсы
Фикс:
• A-team + C/C++ = Platform
(инфраструктурные проекты)
• Рост группы сисадминов/эксплуатации
Кризис II: дробление (2009?)
Оставить быстрым цикл разработки
Поделить команды функционально
Производственная цепочка по-прежнему
тривиальна: фигак-фигак, в продакшн!
Строим продуктовую команду
Не меняем сильно процессы, боимся сбить ритм
Кризис II: дробление
 Фейл: как «не пошёл» Scrum
 Функциональное дробление без перестройки
производственных цепочек
 С/С++, фичи, биллинг, A-team, мобильная разработка,
бэк-офис, антиспам/почта
 Проблемы: лиды, перераспределение зон
 Фейл: позиции «магов»
 Проблема: качество
 Рекрутинг и HR, системный ревью зп
Кризис III: качество (2011)
Перестройка производственных цепочек
Отдел качества, release engineering
Девелоперская инфраструктура: площадка,
continuous integration, управление релизами, прочая
автоматизация
Перестройка без остановки разработки продукта: Ateam
Параллельно: строим QA/RE
Сейчас: статусы задач (фичи)
 PRD <-> нет вопросов у программистов
 Задача разбита по компонентам (микрокоманды)
 Если нужно железо – есть сроки
 Сопутствующие задачи (BI, мониторинг)
 Код и тесты написаны, тесты прошли на девеле, ревью
 QA passed
 Переводы готовы (40 языков, ~10 основных)
 RE: тесты на стейджинге, деплой
 Деплой м.б. поэтапным: группа пользователей -> метрики -> везде
Кризис III: перестройка процессов
 Подготовка в 2011, плотно - лишь в 2012 году
 Деплой по фичам: svn -> git, «шоты» (фича) и «билды»
(релизы)
 Девелоперская площадка: полная эмуляция 2х ДЦ и
базовых компонент
 Утилиты деплоя и автоматизации, интеграция с JIRA,
доработка staging-инфраструктуры
 Версионирование переводов
Кризис III: перестройка процессов
 Строгий flow в JIRA + автоматизация
 Unit-тесты: 22000 тестов за 3 минуты
 Selenium-тесты: 500 тестов за 20 минут
 2 релиза в день: утром и после обеда
 Стогие стандарты кодирования, заголовки (модулькоманда-человек), покрытие кода
 A-team -> передача сисадминам и релиз-инженерам
Выводы (1)
Методологии не очень существенны
Без фанатизма и сектанства. Waterfall? Пускай. Не
Agile? И что?
Выжили (не везде): backlogs, burn down charts,
stand-up meetings
Выводы (2)
Инфраструктурные проекты неизбежны
Технический долг: время разработки продукта ->
отдельная команда. A-team у нас – не DevOps
Без QA можно обходиться, и долго. Качество на
этапе релиза vs. качество в “продакшне” (ошибки,
мониторинг)
Выводы (3)
Неизбежность QA: рост по числу людей в
команде фич
Если строить QA – чем раньше, тем лучше
Перестройка цепочек – наиболее болезненные
процессы
С отдельной командой – лучше: очень много
сопутствующих задач
Спасибо!
Ваши вопросы, пожалуйста!
a.rybak@corp.badoo.com
http://habrahabr.ru/company/badoo
http://facebook.com/BadooMoscow
http://twitter.com/BadooDev

Weitere ähnliche Inhalte

Was ist angesagt?

Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
ScrumTrek
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрам
Magneta AI
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
ScrumTrek
 
Олег Балбеков (Evrone)
Олег Балбеков (Evrone)Олег Балбеков (Evrone)
Олег Балбеков (Evrone)
Ontico
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
Magneta AI
 
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Ontico
 
щеголев по ту сторону баррикад
щеголев   по ту сторону баррикадщеголев   по ту сторону баррикад
щеголев по ту сторону баррикад
Magneta AI
 
Максим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджера
Максим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджераМаксим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджера
Максим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджера
ScrumTrek
 
сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвы
Magneta AI
 
Михаил Табунов (Coub.com)
Михаил Табунов (Coub.com)Михаил Табунов (Coub.com)
Михаил Табунов (Coub.com)
Ontico
 
Виктор Вальчук (АРБ-консалтинг)
Виктор Вальчук (АРБ-консалтинг)Виктор Вальчук (АРБ-консалтинг)
Виктор Вальчук (АРБ-консалтинг)
Ontico
 
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Denis Tuchin
 

Was ist angesagt? (20)

Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
пылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрампылаева дана, шоколад лего-скрам
пылаева дана, шоколад лего-скрам
 
Процесс Mindbox 2015
Процесс Mindbox 2015Процесс Mindbox 2015
Процесс Mindbox 2015
 
Управление зависимостями между командами
Управление зависимостями между командамиУправление зависимостями между командами
Управление зависимостями между командами
 
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
Сергей Смирнов, Виталий Александров. Оздоровление унаследованной информационн...
 
Олег Балбеков (Evrone)
Олег Балбеков (Evrone)Олег Балбеков (Evrone)
Олег Балбеков (Evrone)
 
бородин об эмпирической разработке
бородин   об эмпирической разработкебородин   об эмпирической разработке
бородин об эмпирической разработке
 
Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.Алексей Лустин. Непрерывная проверка качества кода.
Алексей Лустин. Непрерывная проверка качества кода.
 
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
Опыт осторожного внедрения инструментов Теории Ограничений в крупной компании...
 
щеголев по ту сторону баррикад
щеголев   по ту сторону баррикадщеголев   по ту сторону баррикад
щеголев по ту сторону баррикад
 
как убить поставку скрамом
как убить поставку скрамомкак убить поставку скрамом
как убить поставку скрамом
 
Максим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджера
Максим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджераМаксим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджера
Максим Мельников. Как мы меняли ЦИАН. Эволюция продакт-менеджера
 
сербул по лезвию бритвы
сербул   по лезвию бритвысербул   по лезвию бритвы
сербул по лезвию бритвы
 
Михаил Табунов (Coub.com)
Михаил Табунов (Coub.com)Михаил Табунов (Coub.com)
Михаил Табунов (Coub.com)
 
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думать
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думатьАлексей Пименов. Kanban — это не то, что вы привыкли о нем думать
Алексей Пименов. Kanban — это не то, что вы привыкли о нем думать
 
Виктор Вальчук (АРБ-консалтинг)
Виктор Вальчук (АРБ-консалтинг)Виктор Вальчук (АРБ-консалтинг)
Виктор Вальчук (АРБ-консалтинг)
 
Развитие ИТ
Развитие ИТРазвитие ИТ
Развитие ИТ
 
Михаил Подурец. Почему Agile не работает (на самом деле нет). Agiledays2017
Михаил Подурец. Почему Agile не работает (на самом деле нет). Agiledays2017Михаил Подурец. Почему Agile не работает (на самом деле нет). Agiledays2017
Михаил Подурец. Почему Agile не работает (на самом деле нет). Agiledays2017
 
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
Денис Тучин - Болезни Agile ретроспектив и как их лечить (2016 AgileTour.By)
 
Управление виртуальной командой аналитиков
Управление виртуальной командой аналитиковУправление виртуальной командой аналитиков
Управление виртуальной командой аналитиков
 

Andere mochten auch

"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан..."Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
Badoo Development
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Badoo Development
 
как работают яндекс.пробки
как работают яндекс.пробкикак работают яндекс.пробки
как работают яндекс.пробки
Yandex
 
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
Yandex
 
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
Badoo Development
 
LinkMeUp-V15 (05.2014)
 LinkMeUp-V15 (05.2014) LinkMeUp-V15 (05.2014)
LinkMeUp-V15 (05.2014)
eucariot
 

Andere mochten auch (20)

"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан..."Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
"Sharding - patterns & antipatterns". Доклад Алексея Рыбака (Badoo) и Констан...
 
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
Доклад Валерия Старынина на DevConf 2014. "StatsCollector, или "Мама! Он и ме...
 
Near-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проектеNear-realtime аналитика событий в высоконагруженном проекте
Near-realtime аналитика событий в высоконагруженном проекте
 
"Развитие ветки PHP-7"
"Развитие ветки PHP-7""Развитие ветки PHP-7"
"Развитие ветки PHP-7"
 
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
Эволюция php code coverage в Badoo. Доклад Ильи Агеева на LoveQA РИТ.
 
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
Доклад Ильи Кудинова на конференции LoveQA. "Как мы разгоняли тесты — от баш-...
 
Эволюция ускорения юнит-тестов в Badoo - от баш-скриптов до облака
Эволюция ускорения юнит-тестов в Badoo - от баш-скриптов до облакаЭволюция ускорения юнит-тестов в Badoo - от баш-скриптов до облака
Эволюция ускорения юнит-тестов в Badoo - от баш-скриптов до облака
 
Эволюция разработки в Badoo
Эволюция разработки в BadooЭволюция разработки в Badoo
Эволюция разработки в Badoo
 
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
Доклад Ильи Кудинова на DevConf 2013. "Организация автоматизированного тестир...
 
Без чего не работают самые крутые технологии
Без чего не работают самые крутые технологииБез чего не работают самые крутые технологии
Без чего не работают самые крутые технологии
 
Yandex20131017 ageev-2
Yandex20131017 ageev-2Yandex20131017 ageev-2
Yandex20131017 ageev-2
 
как работают яндекс.пробки
как работают яндекс.пробкикак работают яндекс.пробки
как работают яндекс.пробки
 
Yandex1
Yandex1Yandex1
Yandex1
 
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
Максим Мусин - Умные компьютеры, как это работает, где этому научиться и когд...
 
Доклад "Специфика верстки мультиязычных веб-приложений в Badoo" на MoscowJS M...
Доклад "Специфика верстки мультиязычных веб-приложений в Badoo" на MoscowJS M...Доклад "Специфика верстки мультиязычных веб-приложений в Badoo" на MoscowJS M...
Доклад "Специфика верстки мультиязычных веб-приложений в Badoo" на MoscowJS M...
 
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
Доклад Анатолия Панова на конференции РИТ++ 2014. "Биллинг в большом проекте"
 
Доклад Александра Хози и Николая Козлова на конференции LoveQA. "Есть ли жизн...
Доклад Александра Хози и Николая Козлова на конференции LoveQA. "Есть ли жизн...Доклад Александра Хози и Николая Козлова на конференции LoveQA. "Есть ли жизн...
Доклад Александра Хози и Николая Козлова на конференции LoveQA. "Есть ли жизн...
 
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
Доклад Виталия Котова на конференции LoveQA. "Selenium тесты. От RC и одного ...
 
LinkMeUp-V15 (05.2014)
 LinkMeUp-V15 (05.2014) LinkMeUp-V15 (05.2014)
LinkMeUp-V15 (05.2014)
 
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
Приём платежей в Badoo - взгляд изнутри, Анатолий Панов (Badoo)
 

Ähnlich wie Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.

CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crm
Roman Savran
 
эволюция методологий управления (водопад, Rup, Agile) башакин
эволюция методологий управления (водопад, Rup, Agile)   башакинэволюция методологий управления (водопад, Rup, Agile)   башакин
эволюция методологий управления (водопад, Rup, Agile) башакин
WRider
 
м.токовинин компромиссная производительность
м.токовинин   компромиссная производительностьм.токовинин   компромиссная производительность
м.токовинин компромиссная производительность
HighLoad2009
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Nikolay Samokhvalov
 
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
ScrumTrek
 
Юрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границЮрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границ
sqadays8
 

Ähnlich wie Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo. (20)

DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
DevOps-трансформация Альфа-Банка / Антон Исанин (Альфа-Банк)
 
CI для Microsoft Dynamics crm
CI для Microsoft Dynamics crmCI для Microsoft Dynamics crm
CI для Microsoft Dynamics crm
 
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
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
DevOps для 1С
DevOps для 1СDevOps для 1С
DevOps для 1С
 
MSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on ArchitectureMSDevCon 2016 DevOps Impact on Architecture
MSDevCon 2016 DevOps Impact on Architecture
 
Автоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапеАвтоматическое управление DevOps активностями в стартапе
Автоматическое управление DevOps активностями в стартапе
 
эволюция методологий управления (водопад, Rup, Agile) башакин
эволюция методологий управления (водопад, Rup, Agile)   башакинэволюция методологий управления (водопад, Rup, Agile)   башакин
эволюция методологий управления (водопад, Rup, Agile) башакин
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
 
Software craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы AgileSoftware craftsmanship фиксит проблемы Agile
Software craftsmanship фиксит проблемы Agile
 
Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015Борьба с багами: RailsClub на DevConf 2015
Борьба с багами: RailsClub на DevConf 2015
 
м.токовинин компромиссная производительность
м.токовинин   компромиссная производительностьм.токовинин   компромиссная производительность
м.токовинин компромиссная производительность
 
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва... Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
Эксперименты с Postgres в Docker и облаках — оптимизация настроек и схемы ва...
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
раубичи ронд
раубичи рондраубичи ронд
раубичи ронд
 
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
Кирилл Толкачев, Александр Тарасов, Хипстеры в энтерпрайзе. Шагаем в ногу со ...
 
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
 
Юрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границЮрий Ковалев -- Нагрузочное тестирование без границ
Юрий Ковалев -- Нагрузочное тестирование без границ
 
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
Виталий Шибаев - Креативный менеджмент глазами разработчика: как выжить в agi...
 

Mehr von Badoo Development

Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
Badoo Development
 
Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo
Badoo Development
 
5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада
Badoo Development
 

Mehr von Badoo Development (20)

Viktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel AutomationViktar Karanevich – iOS Parallel Automation
Viktar Karanevich – iOS Parallel Automation
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Григорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RUГригорий Джанелидзе, OK.RU
Григорий Джанелидзе, OK.RU
 
Андрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.БраузерАндрей Сидоров, Яндекс.Браузер
Андрей Сидоров, Яндекс.Браузер
 
Филипп Уваров, Avito
Филипп Уваров, AvitoФилипп Уваров, Avito
Филипп Уваров, Avito
 
Cocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magicCocoaheads Meetup / Alex Zimin / Swift magic
Cocoaheads Meetup / Alex Zimin / Swift magic
 
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature developmentCocoaheads Meetup / Kateryna Trofimenko / Feature development
Cocoaheads Meetup / Kateryna Trofimenko / Feature development
 
Alex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High AvailabilityAlex Krasheninnikov – Hadoop High Availability
Alex Krasheninnikov – Hadoop High Availability
 
Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данных
 
Александр Зобнин, Grafana Labs
Александр Зобнин, Grafana LabsАлександр Зобнин, Grafana Labs
Александр Зобнин, Grafana Labs
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»  Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
Паша Мурзаков: Как 200 строк на Go помогли нам освободить 15 серверов»
 
Как мы готовим MySQL
 Как мы готовим MySQL  Как мы готовим MySQL
Как мы готовим MySQL
 
Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo Архитектура хранения и отдачи фотографий в Badoo
Архитектура хранения и отдачи фотографий в Badoo
 
5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада5 способов деплоя PHP-кода в условиях хайлоада
5 способов деплоя PHP-кода в условиях хайлоада
 
ChromeDriver Jailbreak
ChromeDriver JailbreakChromeDriver Jailbreak
ChromeDriver Jailbreak
 
Git хуки на страже качества кода
Git хуки на страже качества кодаGit хуки на страже качества кода
Git хуки на страже качества кода
 
Versioning strategy for a complex internal API
Versioning strategy for a complex internal APIVersioning strategy for a complex internal API
Versioning strategy for a complex internal API
 
Как мы готовим MySQL
Как мы готовим MySQLКак мы готовим MySQL
Как мы готовим MySQL
 
Методология: БЭМ, Модули, Отношения
Методология: БЭМ, Модули, ОтношенияМетодология: БЭМ, Модули, Отношения
Методология: БЭМ, Модули, Отношения
 

Доклад Алексея Рыбака на Whalerider 2013. Эволюция разработки в Badoo.

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