Slide 1

Slide 1 text

Как построить бизнес- ориентированную разработку?
 Опыт ДомКлик

Slide 2

Slide 2 text

Привет! 2 Меня зовут Алексей Кузьмин. Я директор разработки в ДомКлик – дочке ПАО Сбербанк, занимающейся вопросами недвижимости и ипотечного кредитования. Я курирую направления машинного обучения и работы с данными. Связь: ▪ [email protected] ▪ @alex_kuzmin

Slide 3

Slide 3 text

ДомКлик 3 ДомКлик 300 сервисов 4 языка разработки 265 сотрудников 49 команд 1500 cpu 1 ПБ HDD, 6 TB Ram

Slide 4

Slide 4 text

Краткое содержание 1. Как мы работали год назад 2. Новая структура компании 3. Что нам потребовалось сделать a. CI/CD b. Метрики 4. Итоги 4 Или о чем мы будем сегодня говорить

Slide 5

Slide 5 text

1. Как мы работали раньше Немного истории 5

Slide 6

Slide 6 text

ДомКлик Как мы работали раньше 6 Генеральный директор Директор WEB разработки Директор по контролю качества Директор проектов Коммерческий директор Разработка Тестирование Руководитель проектов Продуктолог Команда

Slide 7

Slide 7 text

ДомКлик Как мы работали раньше 7 Идея Реализация Тестирование Оценка Выпуск

Slide 8

Slide 8 text

ДомКлик Плюсы и минусы Разделение ответственности Каждый сотрудник выполняет одну определенную функцию Простой контроль Контроль за качеством ПО осуществлялся по классической схеме. Все просто и понятно Легкость реализации Известная технология разработки. Так делают многие. Ее легко реализовать 8 Незаменимость Рост эксклюзивных компетенций. Людей сложнее менять Соответствие продукта Продуктолог слабо вовлечен в процесс разработки. Из-за этого есть риски несоответствия продукта и ожидания от него Долгий релизный цикл T2M затягивается ввиду обилия коммуникаций

Slide 9

Slide 9 text

2. Новая структура Вперед! 9

Slide 10

Slide 10 text

SBERGILE Agile-трансформация в одной отдельно взятой компании 10

Slide 11

Slide 11 text

ДомКлик Как мы стали жить по новому Слияние компетенций 11 Фабрика продукта Вовлечение продуктологов

Slide 12

Slide 12 text

ДомКлик Вовлечение специалистов по продукту 12 Генеральный директор Директор WEB разработки Директор по контролю качества Директор проектов Коммерческий директор Разработка Тестирование Руководитель проектов Продуктолог Команда

Slide 13

Slide 13 text

ДомКлик Вовлечение специалистов по продукту Что нам дало? 13 ▪ Продукт стал соответствовать ожиданиям продуктолога ▪ Сокращены сроки T2M ▪ Команда теперь отвечает и за «прибыльность» продукта ▪ Разработка и бизнес «скованы одной цепью»

Slide 14

Slide 14 text

ДомКлик Как восприняла команда? ▪ В целом позитивно - Их голос начал учитываться - Продуктолог – не чужой человек ▪ Что помогло хорошей интеграции? - Провели обучение зачем и для чего - Сели рядом в одном месте - Договорились о правилах работы и ритуалах ▪ Правда, не все члены команды приняли новые правила игры (чаще дергают, новые встречи и тп) 14

Slide 15

Slide 15 text

ДомКлик Слияние компетенций 15 Генеральный директор Директор WEB разработки Директор по контролю качества Директор проектов Коммерческий директор Разработка Тестирование Руководитель проектов Продуктолог Команда

Slide 16

Slide 16 text

ДомКлик Слияние компетенций Что нам дало? 16 ▪ Уменьшение автобусного фактора ▪ Повышение компетенции команды в разных частях разработки ▪ Повышение соответствия создаваемого продукта ожиданиям ▪ Нет стоп-факторов. Что-то непонятно - можешь сам сходить узнать ▪ Минус – сложный поиск персонала (больше требований к кандидату)

Slide 17

Slide 17 text

ДомКлик Куда дели людей? ▪ Провели обучение - Несколько курсов по разработке - Один по машинному обучению ▪ Часть людей все-таки не смогла адаптироваться =( 17

Slide 18

Slide 18 text

3. Фабрика продукта Автоматизация жизненного цикла продукта 18

Slide 19

Slide 19 text

ДомКлик Фабрика продукта 19 CI/CD Метрики работы Бизнес-метрики Качество кода Фабрика

Slide 20

Slide 20 text

ДомКлик Фабрика продукта 20 База данных: Бекэнд: Фронтенд:

Slide 21

Slide 21 text

ДомКлик Фабрика продукта Мониторинг и метрики: DevOps и среда разработки:

Slide 22

Slide 22 text

ДомКлик CI/CD Если выполнять интеграцию разрабатываемой системы достаточно часто, то можно избежать большей части связанных с ней проблем. 22 ▪ 3 стенда - QA - STAGE - PROD ▪ Автоматизированный pipeline (Jenkins) ▪ Deploy одной кнопкой

Slide 23

Slide 23 text

ДомКлик Как прошло внедрение? ▪ Разработчики были готовы к этому и понимали необходимость ▪ Прошло скорее позитивно ▪ Были проблемы с унификацией ▪ Потребовалось серьезное обучение продуктологов «как ставить задачи» 23

Slide 24

Slide 24 text

ДомКлик CI/CD 24

Slide 25

Slide 25 text

ДомКлик Jenkins ▪ Плюсы - Бесплатно - Широко распространено ▪ Минусы - Не очень очевидный интерфейс - Настройка pipeline’ов требует достаточно высоких компетенций 25

Slide 26

Slide 26 text

ДомКлик Метрики работы ▪ Запущенный сервис != работающий сервис ▪ Обязательные измерения - Время ответа - Количество 500-ых ошибок - Ping ▪ Обязательное уведомление о качестве работы 26

Slide 27

Slide 27 text

ДомКлик NewRelic 27

Slide 28

Slide 28 text

ДомКлик NewRelic ▪ Плюсы - Удобно / красиво / метросексуально - Внешний хостинг - Алерты и проверки ▪ Минусы - Нет поддержки асинхронных фреймворков для Python - Сложно (почти невозможно) достать свои данные 28

Slide 29

Slide 29 text

ДомКлик Prometheus + Influx + Grafana 29

Slide 30

Slide 30 text

ДомКлик Prometheus + Influx + Grafana ▪ Плюсы - Данные всегда доступны - Работает бесплатно ▪ Минусы - Нужно поддерживать 30

Slide 31

Slide 31 text

ДомКлик Ежедневная рассылка с результатам и доступности 31

Slide 32

Slide 32 text

ДомКлик Контроль качества кода ▪ 80% покрытие unit-тестами ▪ Code-review ▪ Проверка кода SonarQube ▪ Запрет выкатки, если код не достаточно качественный ▪ Интеграционные тесты при сборке API-тесты Selenium 32

Slide 33

Slide 33 text

ДомКлик Контроль качества кода 33

Slide 34

Slide 34 text

ДомКлик SonarQube 34 Инструмент интересный, но нужно контролировать. Иначе на него никто не смотрит

Slide 35

Slide 35 text

ДомКлик Интеграция с BitBucket 35 Очень важный инструмент – заставляет смотреть на результаты CI/CD

Slide 36

Slide 36 text

ДомКлик Метрики продукта ▪ Сначала формулируется бизнес-польза, потом разрабатывается сервис ▪ Бизнес-польза должна быть измеримой - DWH - Графики и отчеты 36

Slide 37

Slide 37 text

ДомКлик Метрики продукта 37

Slide 38

Slide 38 text

4. Как мы с этим живем? 38

Slide 39

Slide 39 text

ДомКлик Как мы с этим живем? ▪ Меньше незаменимых людей ▪ Выкатить релиз может кто угодно ▪ Сокращение T2M ▪ Повышение прозрачности ▪ Высокая доступность – 99.85% + ▪ Повышение вовлеченности разработки 39

Slide 40

Slide 40 text

ДомКлик Спасибо за внимание! 40