Эволюционное масштабирование�разработки
в поисках баланса...
Александр Горник
Mindbox CEO
Обычно про бирюзу, открытые ЗП и право вето
Важно и полезно, но сегодня не про то
CEO Разработчик
400к
40
микросервисов
65 тб
7127+
Монолит�2 млн строк
распределенных транзакций в минуту
реляционных данных
500+ млн профилей
20+ млрд фактов
Касс�работающих «24/7»
��
3 ⇢ 70 чел
Эволюционируем с 2004 2007
0 ⇢ 621 млн
в разработке
(10⇢150 в компании)
выручка в 2020
MRR
2014
2021
2017
Эволюция — поиск баланса
Автономия
Централизация
Автономные инженеры победили
Бизнес победил
Две организационные крайности
Крупное делать страшно, кончается революцией
Накопление техдолга, кончается революцией
Две архитектурные крайности
Микросервисы
Монолит
Быстро, но по мере роста неэффективно за счет дублирования решений и повторения ошибок
эффективно, но по мере роста — медленно за счет каплинга
Есть ли�срединный�путь?
НАША ВЕРСИЯ:
Продуктовые автономные�команды�с централизованным�управлением касающегося всех команд
для нас это роадмэп монолита, надёжность и инфраструктура, стоимость железа и DX
Как ходили по граблям
Бизнес прёт, а в разработке треш и угар такооое
Lvl 1: < 4-х команд, монолит, ревью рисков – 1 чел
MRR�60М руб
😊
2017
2018
2019
2020
2021
2016
Lvl 2: Нужно больше продуктов. Бирюза! Каждому продукту — команду
MRR�60М руб
L1
😊
😋
2017
2018
2019
2020
2021
2016
Lvl 3: Работает! Инфраструктурная ⟶ 2 продуктовых
MRR�60М руб
L1
😊
😎
L2
😋
2017
2018
2019
2020
2021
2016
Продукты запускаются
Продажи прут!
Продуктовые команды —� отличная штука
Lvl 4: ЧП — лежим. Черезвычайный спринт надежности
MRR�60М руб
L1
😊
L2
😋
L3
😎
😒
2017
2018
2019
2020
2021
2016
Stop the world
не работает!
Децентрализованные команды плохо чинят централизованную инфраструктуру
Lvl 5: Значит LESS и крепкая рука централизация
MRR�60М руб
L1
😊
L2
😋
L3
😎
L4
😒
😐
2017
2018
2019
2020
2021
2016
Надёжность и масштабирование монолита всё равно
магически децентрализованно не случились
Lvl 6: 30% LESS ресурса на техдолг! CTO как продукт
MRR�60М руб
L1
😊
L2
😋
L3
😎
L4
😒
😠
L5
😐
2017
2018
2019
2020
2021
2016
Ритуал надежности:
команды рассказывают, что сделали и почему, CTO помогает
Децентрализация общего при разумной регуляции —
работает
Lvl 7: Снова лежим на ЧП. Усталость от LESS
MRR�60М руб
L1
😊
L2
😋
L3
😎
L4
😒
L5
😐
L6
😠
😭
2017
2018
2019
2020
2021
2016
Решили сворачивать LESS и возвращаться к продуктовым командам
Вместе с этим свернули грейды ЗП разработчиков от скорости (спросите после)
Lvl 8: вернули продуктовые команды (в т.ч. платформы)
MRR�60М руб
L1
😊
L2
😋
L3
😎
L4
😒
L5
😐
L6
😠
L7
😭
2017
2018
2019
2020
2021
2016
😐
Из LESS оставили кросс-командный рефаймент,�чтобы снимать риски монолита, управлять роадмэпом ставками
Платформенная команда.
Не только отлично работает, но и мотивировала всех
(не отнимали ресурс на техдолг у команд)
Техдолг — ±30% платформа, ±30% команды�Около 50% в целом
Lvl 9: автоматизация SLA — метрика надежности
MRR�60М руб
L4
😒
L5
😐
L6
😠
L7
😭
L8
😐
😏
L1
😊
L2
😋
L3
😎
2017
2018
2019
2020
2021
2016
Увидели что правда стало надежнее
2019
2021
Lvl 10: Пережили ЧП
MRR�60М руб
L1
😊
L2
😋
L3
😎
L4
😒
L5
😐
L6
😠
L7
😭
😎
L8
😐
L9
😏
2017
2018
2019
2020
2021
2016
Lvl 11: Скорость растим через централизацию препятствий (DX)
MRR�60М руб
L1
😊
L2
😋
L3
😎
L4
😒
L5
😐
L6
😠
L7
😭
L8
😐
L9
😏
L10
😎
😊
2017
2018
2019
2020
2021
2016
Пример препятствия (+excel и рефлексия)
Итого
Получилось на сегодня
Сервисы-продукты размера 1 команды
Общее
DX, платформа — must have
(перемещение между командами, меньше дублирования)
Надежность, зависимости (если монолит)
Косты, найм (если не автономные-окупаемые)
7 разработчиков команда:
�2 Крупное (роадмэп)
1 Малое
1 Техдолг
1 Баги
1 Отпуск / болезнь
1 Грум
Децентрализация по-умолчанию. �Централизуем то, что затрагивает всех
Виртуальная команда (круг) управления
😊
😊
😊
😊
Продуктовые автономные команды
Продуктовые автономные команды
Продуктовые команды и команда управления, которая фасилитирует все кросс-командное, что ей доверили: надежность, стоимость железа и DX
Круг управления�разработкой
Ритуалы управления
Главный инсайт
Что такое хорошо?�Не скорость и не роадмэп
Разработка
Команда
Непрерывный запуск и оптимизация ТТМ новых продуктов*, �в рамках SLA, стоимости железа, не увеличивая техдолг
Непрерывный релиз и оптимизация TTM сильных* инкрементов,
в рамках SLA, стоимости железа, не увеличивая техдолг
* которые принял клиент на проде
* которыми можно гордиться
Хорошо это:
— Вопросы?
УДАЛЕН-НЫЕ�СЛАЙДЫ
2. Обязательные общие парадигмы / части стэка
Надежность, стоимость, если у вас монолит
Команда на поддержку и развитие devEx
(перемещение между командами, меньше дублирования)
7 разработчиков команда:
2 Крупное
1 Малое
1 Техдолг
1 Баги
1 Отпуск / болезнь
1 Грум
Ставку разбивают архитектор с ПО
Коллективное снятие рисков
Смотрим: месячное демо и малое
Смотрим: % техдолга, багов, модель железа
В команде: канбан
Заводим препятствия, чиним баги и дефекты
Подвели итоге эксперимента с грейдами
Центральная оценка — невозможна.
Скорость что-то показывает только в команде
Демотивирует качество и другие роли