Выстроить хорошую продуктовую команду непросто. Ещё сложнее это сделать, когда речь идёт о ядре high-load системы, которое не является самостоятельным продуктом. В окружении опытных, состоявшихся разработчиков, за которыми охотятся наши и зарубежные компании. Со всеми проблемами мотивации и ролевого дисбаланса. Я расскажу как я формировал команду, опираясь на ролевую модель Белбина, как мы улучшали взаимодействие с другими продуктовыми командами, как меняли отношения с бизнесом. Коснусь также и технических аспектов (CI/CD, коммуникации, метрики, мониторинг, SWAT team). Приходите, будет интересно!
2. Часть I - входные данные
2Max Bukovskiy: Scrum in core team
3. Особенности
3Max Bukovskiy: Scrum in core team
▪ крупный рекламный нетворк
▪ ~ 300 сотрудников
▪ > 50 IT специалистов
▪ 6 продуктовых команд
Компания:
4. Технологические особенности
4Max Bukovskiy: Scrum in core team
▪ Гео-распределённая система
▪ HighLoad (> 100K rps)
▪ сложная система принятия
решений
▪ Response time <20 ms
5. Команда ядра
5Max Bukovskiy: Scrum in core team
▪ закрытая элитная группа
▪ свой уютный мирок
▪ недостаточная предсказуемость
разработки
▪ непонятная поставка
6. Надо что-то менять…
6Max Bukovskiy: Scrum in core team
▪ формирование продукта
▪ формирование команды
▪ новые процессы работы
▪ перестроение коммуникаций
▪ влияние на всю компанию
...а лучше - всё!
7. Часть II - технологическая
7Max Bukovskiy: Scrum in core team
8. Продуктовая команда
8Max Bukovskiy: Scrum in core team
▪ формирование из ядра
самостоятельного продукта
▪ определение чётких границ
ответственности
▪ процедура поставки
Чем конкретно занимается команда и за что отвечает:
9. Определение границ
9Max Bukovskiy: Scrum in core team
▪ API layers (core <=> products)
▪ data monitoring
▪ verbose mode
▪ debug API (X-mode)
10. Процедура поставки
10Max Bukovskiy: Scrum in core team
▪ ручная выкатка на сервера
▪ скрипты для автоматизации
▪ Blue Green releases
▪ Admin monitoring (CPU, RAM, disk, ...)
Было:
11. Процедура поставки
11Max Bukovskiy: Scrum in core team
▪ Integration Contracts
▪ Parallel Change
▪ Staging (with % of mirror traffic)
▪ Canary releases (with Cluster Immune
System)
▪ A/B tests
▪ DevOps + Business monitoring
Стало:
12. Часть III - организационная
12Max Bukovskiy: Scrum in core team
14. Работа с бэклогом
14Max Bukovskiy: Scrum in core team
▪ делаем сводный бэклог
▪ лучшая оценка
Business Value -
деньги!
Решение:
15. Работа с бэклогом
15Max Bukovskiy: Scrum in core team
▪ измеряем
удовлетворённость
заказчика
▪ проверяем
реальный Business
Value
Часть 2:
16. Прокачиваем коммуникации
16Max Bukovskiy: Scrum in core team
▪ разработка - с одной стороны
▪ бизнес - с другой стороны
▪ нужен “проводник - коммуникатор”
▪ сложная, избыточная система
Было:
17. Почему так сложно?
17Max Bukovskiy: Scrum in core team
▪ PO/BO - в своём купе
▪ разработчики - в своём купе
▪ PM и аналитик - проводники
...поезд куда-то едет
Было:
18. Прокачиваем коммуникации
18Max Bukovskiy: Scrum in core team
▪ меняем отношение заказчиков
▪ меняем психологию
разработчиков
▪ приводим заказчиков в команду
▪ сами ходим к заказчикам
▪ поддерживаем атмосферу
Что делаем:
20. Да, но у нас… интроверты :(
20Max Bukovskiy: Scrum in core team
▪ времена waterfall прошли
▪ все agile-практики предполагают
общение!
▪ это такой же профессиональный
навык
▪ востребованность на рынке ИТ
Решение:
21. Новости для системных аналитиков
21Max Bukovskiy: Scrum in core team
“...а зачем нам кузнец?
Не, нам кузнец не нужен.
Что я, лошадь, чтоль?” (с)
Аналитики не прижились :(
22. По итогам спринта
22Max Bukovskiy: Scrum in core team
Проводим:
▪ Интеграционное демо с участием всех
команд
▪ Ретро с командой в неформальной
обстановке
▪ Решения с ретро берём в спринты как
задачи
23. Часть IV - команда
23Max Bukovskiy: Scrum in core team
24. Построение команды
24Max Bukovskiy: Scrum in core team
▪ agile manifesto
▪ Балансируем состав команды
▪ Формируем общие ценности
▪ Одна цель
26. Почему Белбин?
26Max Bukovskiy: Scrum in core team
Альтернативы:
▪ Роли по Дэвиду Кейрси
▪ Роли по Раулю Шиндлеру
▪ Роли по Тимоти Бернарцу
(7 отрицательных ролей)
▪ Колесо команды Марджерисона - МакКенна
▪ Модель управленческих ролей Базарова
▪ Модель DISC
27. Оптимизация
27Max Bukovskiy: Scrum in core team
▪ Даём всем выговориться
▪ Быстрее проходим фазы
storming + norming
▪ Ищем и убираем препятствия
▪ Постоянно улучшаемся
28. Пару слов о метриках
28Max Bukovskiy: Scrum in core team
Решение:
▪ “нет” формальным KPI
▪ трассировка целей (OKR)
29. Пару слов о метриках
29Max Bukovskiy: Scrum in core team
3 уровня целей:
▪ компания
“заработать $ ХХХ в Q1”
▪ команда
“сделать фичи YYY и ZZZ в Q1”
▪ личные цели
“развить навыки Resource Investigator”
“начать писать продакшен-код на Go”
30. Толерантность к ошибкам
30Max Bukovskiy: Scrum in core team
Для чего:
▪ позволяет не закрываться
▪ оставляем простор для
творчества
▪ продолжаем играть в нападении
31. SWAT-team
31Max Bukovskiy: Scrum in core team
▪ не рушим спринты
▪ всегда есть кому заняться
проблемой
▪ быстрое реагирование
▪ “никто, кроме нас”
32. Часть V - итоги
32Max Bukovskiy: Scrum in core team
33. ...и что в результате
33Max Bukovskiy: Scrum in core team
Достижения:
▪ +100% к Team Velocity
▪ стали успевать Roadmap
▪ прозрачность деятельности
команды
▪ позитивная обратная связь от
владельцев бизнеса
34. Про удачу
34Max Bukovskiy: Scrum in core team
▪ крутые бизнес-решения
▪ вычищаем технический долг,
делаем удобные инструменты
▪ улучшения внутри команды
▪ улучшение взаимодействия с
окружающим миром
35. Спасибо за внимание
35Max Bukovskiy: Scrum in core team
Есть вопросы? Обращайтесь!
destroyer_mb
linkedin.com/in/mbukovskiy