1 of 48

Эволюционное масштабирование�разработки

в поисках баланса...

Александр Горник

Mindbox CEO

2 of 48

Обычно про бирюзу, открытые ЗП и право вето

Важно и полезно, но сегодня не про то

3 of 48

CEO Разработчик

400к

40

микросервисов

65 тб

7127+

Монолит2 млн строк

распределенных транзакций в минуту

реляционных данных

500+ млн профилей

20+ млрд фактов

Касс�работающих «24/7»

4 of 48

��

5 of 48

3 ⇢ 70 чел

Эволюционируем с 2004 2007

0 ⇢ 621 млн

в разработке

(10⇢150 в компании)

выручка в 2020

MRR

2014

2021

2017

6 of 48

Эволюция — поиск баланса

Автономия

Централизация

7 of 48

Автономные инженеры победили

Бизнес победил

Две организационные крайности

Крупное делать страшно, кончается революцией

Накопление техдолга, кончается революцией

8 of 48

Две архитектурные крайности

Микросервисы

Монолит

Быстро, но по мере роста неэффективно за счет дублирования решений и повторения ошибок

эффективно, но по мере роста — медленно за счет каплинга

9 of 48

Есть ли�срединный�путь?

10 of 48

НАША ВЕРСИЯ: 

Продуктовые автономные�команды�с централизованным�управлением касающегося всех команд

для нас это роадмэп монолита, надёжность и инфраструктура, стоимость железа и DX

11 of 48

Как ходили по граблям

Бизнес прёт, а в разработке треш и угар такооое

12 of 48

Lvl 1: < 4-х команд, монолит, ревью рисков – 1 чел

  • Супер быстро и эффективно

MRR�60М руб

😊

2017

2018

2019

2020

2021

2016

13 of 48

  • Роадмэп поехал (2 новых продукта)

Lvl 2: Нужно больше продуктов. Бирюза! Каждому продукту — команду

MRR�60М руб

L1

😊

😋

2017

2018

2019

2020

2021

2016

14 of 48

Lvl 3: Работает! Инфраструктурная 2 продуктовых

  • Роадмэп поехал быстрее (еще 2 продукта)

MRR�60М руб

L1

😊

😎

L2

😋

2017

2018

2019

2020

2021

2016

15 of 48

Продукты запускаются

Продажи прут!

Продуктовые команды —� отличная штука

16 of 48

Lvl 4: ЧП — лежим. Черезвычайный спринт надежности

  • Роадмэп остановился

MRR�60М руб

L1

😊

L2

😋

L3

😎

😒

2017

2018

2019

2020

2021

2016

17 of 48

Stop the world

не работает!

Децентрализованные команды плохо чинят централизованную инфраструктуру

18 of 48

Lvl 5: Значит LESS и крепкая рука централизация

  • Разово подчинили надёжность
  • Роадмэп поехал (предсказуемыми большими кусками)

MRR�60М руб

L1

😊

L2

😋

L3

😎

L4

😒

😐

2017

2018

2019

2020

2021

2016

19 of 48

Надёжность и масштабирование монолита всё равно

магически децентрализованно не случились

20 of 48

Lvl 6: 30% LESS ресурса на техдолг! CTO как продукт

  • Роадмэп поехал (предсказуемыми большими кусками)
  • Техдолг поехал

MRR�60М руб

L1

😊

L2

😋

L3

😎

L4

😒

😠

L5

😐

2017

2018

2019

2020

2021

2016

21 of 48

Ритуал надежности:

команды рассказывают, что сделали и почему, CTO помогает

22 of 48

Децентрализация общего при разумной регуляции

работает

23 of 48

Lvl 7: Снова лежим на ЧП. Усталость от LESS

  • Роадмэп едет рваный
  • Техдолг едет
  • Демотивация инженеров (от не своего домена и переключений)
  • Демотивация продактов (ТTM — полгода-год)

MRR�60М руб

L1

😊

L2

😋

L3

😎

L4

😒

L5

😐

L6

😠

😭

2017

2018

2019

2020

2021

2016

24 of 48

Решили сворачивать LESS и возвращаться к продуктовым командам

Вместе с этим свернули грейды ЗП разработчиков от скорости (спросите после)

25 of 48

Lvl 8: вернули продуктовые команды (в т.ч. платформы)

  • Роадмэп и малое поехали (+мотивация)
  • Техдолг едет

MRR�60М руб

L1

😊

L2

😋

L3

😎

L4

😒

L5

😐

L6

😠

L7

😭

2017

2018

2019

2020

2021

2016

😐

26 of 48

Из LESS оставили кросс-командный рефаймент,�чтобы снимать риски монолита, управлять роадмэпом ставками

27 of 48

Платформенная команда.

Не только отлично работает, но и мотивировала всех

(не отнимали ресурс на техдолг у команд)

28 of 48

Техдолг — ±30% платформа, ±30% команды�Около 50% в целом

29 of 48

Lvl 9: автоматизация SLA — метрика надежности

  • Роадмап едет
  • Техдолг едет
  • Стало надежнее, команды взялись бодрее

MRR�60М руб

L4

😒

L5

😐

L6

😠

L7

😭

L8

😐

😏

L1

😊

L2

😋

L3

😎

2017

2018

2019

2020

2021

2016

30 of 48

Увидели что правда стало надежнее

2019

2021

31 of 48

Lvl 10: Пережили ЧП

  • Роадмап едет
  • Техдолг едет
  • Стало надежнее

MRR�60М руб

L1

😊

L2

😋

L3

😎

L4

😒

L5

😐

L6

😠

L7

😭

😎

L8

😐

L9

😏

2017

2018

2019

2020

2021

2016

32 of 48

Lvl 11: Скорость растим через централизацию препятствий (DX)

  • Роадмап едет
  • Техдолг едет

MRR�60М руб

L1

😊

L2

😋

L3

😎

L4

😒

L5

😐

L6

😠

L7

😭

L8

😐

L9

😏

L10

😎

😊

  • Надежнее
  • Быстрее?

2017

2018

2019

2020

2021

2016

33 of 48

Пример препятствия (+excel и рефлексия)

34 of 48

Итого

Получилось на сегодня

35 of 48

Сервисы-продукты размера 1 команды

Общее

DX, платформа — must have

(перемещение между командами, меньше дублирования)

Надежность, зависимости (если монолит)

Косты, найм (если не автономные-окупаемые)

7 разработчиков команда:

�2 Крупное (роадмэп)

1 Малое

1 Техдолг

1 Баги

1 Отпуск / болезнь

1 Грум

Децентрализация по-умолчанию. �Централизуем то, что затрагивает всех

36 of 48

Виртуальная команда (круг) управления

😊

😊

😊

😊

Продуктовые автономные команды

Продуктовые автономные команды

Продуктовые команды и команда управления, которая фасилитирует все кросс-командное, что ей доверили: надежность, стоимость железа и DX

Круг управления�разработкой

37 of 48

Ритуалы управления

38 of 48

Главный инсайт

Что такое хорошо?Не скорость и не роадмэп

39 of 48

Разработка

Команда

Непрерывный запуск и оптимизация ТТМ новых продуктов*, �в рамках SLA, стоимости железа, не увеличивая техдолг

Непрерывный релиз и оптимизация TTM сильных* инкрементов,

в рамках SLA, стоимости железа, не увеличивая техдолг

* которые принял клиент на проде

* которыми можно гордиться

Хорошо это:

40 of 48

Вопросы?

Александр Горник

fb.com/alexandergornik

gornik@mindbox.ru

TG: @agornik

41 of 48

УДАЛЕН-НЫЕ�СЛАЙДЫ

42 of 48

  1. Сервисы-продукты размера 1 команды

2. Обязательные общие парадигмы / части стэка

Надежность, стоимость, если у вас монолит

Команда на поддержку и развитие devEx

(перемещение между командами, меньше дублирования)

7 разработчиков команда:

2 Крупное

1 Малое

1 Техдолг

1 Баги

1 Отпуск / болезнь

1 Грум

43 of 48

Ставку разбивают архитектор с ПО

Коллективное снятие рисков

44 of 48

Смотрим: месячное демо и малое

45 of 48

Смотрим: % техдолга, багов, модель железа

46 of 48

В команде: канбан

Заводим препятствия, чиним баги и дефекты

47 of 48

Подвели итоге эксперимента с грейдами

Центральная оценка — невозможна.

Скорость что-то показывает только в команде

Демотивирует качество и другие роли

48 of 48