Практики масштабирования гибкой разработки
-
Upload
askhat-urazbaev -
Category
Software
-
view
859 -
download
4
description
Transcript of Практики масштабирования гибкой разработки
![Page 1: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/1.jpg)
Паттерны масштабирования разработки ПОАсхат УразбаевAgile CoachScrumTrek
![Page 2: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/2.jpg)
Асхат Уразбаев
• ScrumTrek• Agile Coach• Управляющий партнер
• В прошлом• Программист, менеджер,
архитектор процессов
![Page 3: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/3.jpg)
![Page 4: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/4.jpg)
Front End
Back End
Testers
Architect
OPS
6 ppl
8 ppl
4 ppl
BossДо-о-олго!
![Page 5: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/5.jpg)
С точки зрения заказчика
РазработчикиФичиПродукт
![Page 6: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/6.jpg)
Внимание, черный ящик
Разработчики специализированы по… • Ролям • Знанию технологий• Знанию бизнес домена• Знанию компонентов
Идея
анализ
проектирование
разработка
тестирование
релиз
Разработчики
![Page 7: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/7.jpg)
Backlog (список фич)
Продукт
![Page 8: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/8.jpg)
Почему может быть долго?
Продукт
Очередь здесьЖдет начала работы
Очередь здесьС начала работы до окончания
![Page 9: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/9.jpg)
![Page 10: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/10.jpg)
Закон Литтла
• Среднее время ожидания = размер очереди / скорость обслуживания
• Lead Time = WIP / Average Completion Rate
200 человек / 20 чел в час = 10 часов
![Page 11: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/11.jpg)
Почему WIP большой?
![Page 12: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/12.jpg)
1. Бизнес «упихивает задачи»
Продукт
Входной поток больше выходного
Здесь жизни нет
![Page 13: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/13.jpg)
2. Узкое место (bottleneck)
Продукт
Несбалансированная команда
![Page 14: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/14.jpg)
2. Узкое место (bottleneck)
ПродуктВариации в баклоге
![Page 15: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/15.jpg)
3. Дефекты
Продукт
![Page 16: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/16.jpg)
ДефектыИдея
анализ
проектирование
разработка
тестирование
релиз
![Page 17: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/17.jpg)
Стоимость исправления дефектов
![Page 18: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/18.jpg)
4.Изменение требований
Время цикла < период полураспада требований
![Page 19: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/19.jpg)
5. Большие фичи
Продукт
Время реализации растетПоявляются узкие места
![Page 20: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/20.jpg)
Паттерн «Кроссфункциональная команда»
• Взаимопомощь • Взаимозаменямость• Ранняя интеграция• Быстрое
исправление дефектов
• Минимум бюрократии
Размер: 7±2
![Page 21: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/21.jpg)
Scrum и Kanban
• Таймбокс • WIP Limit
РазработкаОчередь Тест Готово
3 2
Готово
![Page 22: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/22.jpg)
Интеграция с онлайн-банком
Разбиение работ на Пользовательские Истории
База данных Server Side Front end
Оплата ЖКХ
Свободный платеж
Оплата мобильного телефона
![Page 23: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/23.jpg)
Spotify.com
http://agilerussia.ru/practices/spotifyscaling/
![Page 24: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/24.jpg)
• s
![Page 25: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/25.jpg)
Front End
Back End
Testers
Architect
OPS
6 ppl
8 ppl
4 ppl
BossДо-о-олго!
![Page 26: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/26.jpg)
Boss
Feature Team 1 Feature Team 2 Feature Team 3
Architect
Отстойно!
Я больше не могу
контролировать ВСЕ!
![Page 27: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/27.jpg)
Boss
Feature Team 1 Feature Team 2 Feature Team 3
Architect
![Page 28: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/28.jpg)
Паттерн «Виртуальная команда»
• Из разных команд• Регулярно собираются вокруг
общей проблемы– Архитектура, инфраструктура,
тестирование, …
![Page 29: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/29.jpg)
Spotify
http://agilerussia.ru/practices/spotifyscaling/
![Page 30: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/30.jpg)
Service Team, Functional Teams
• Service Team– Помогает другим командам– Не несет прямой ценности
пользователю– Заказчики — другие команды
• Functional Team– Команда специалистов сходной
компетенции
![Page 31: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/31.jpg)
Flow Design
Web
Core Lib
Backend
Video Encoding
iOS AndroidWinPhone
Testing
![Page 32: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/32.jpg)
![Page 33: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/33.jpg)
Работа над одной фичей разными командами
![Page 34: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/34.jpg)
Технологический стек Feature Team
Android
iOS
C++
Obj C
Video
Java
JavaScriptHTML/CSS
Ruby/Python
![Page 35: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/35.jpg)
Feature Team
• Большой размер• Проблемы с
взаимопомощью • Изолированные
работы• Проблемы с
поставкой• Бессмысленность
стендапов
![Page 36: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/36.jpg)
Flow Design
Web
Core Lib
Backend
Video Encoding
iOS AndroidWinPhone
Testing
Узкое место
![Page 37: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/37.jpg)
Проблема производительности
Бутылочное горлышко
Capacity problem Rework problem
![Page 38: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/38.jpg)
Паттерн #X. Устранение узких мест
~throughput
![Page 39: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/39.jpg)
Паттерн #X. Устранение узких мест
![Page 40: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/40.jpg)
Теория ограничений
• Identify. Определить ограничение• Exploit. Использовать по
максимуму• Subordinate. Подчинить работу
ограничению• Elevate. Расширить ограничение
по максимуму
![Page 41: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/41.jpg)
Identify
Type I• Быстрая
реакция• Работа на
пределе, переработки
• Некогда улучшать качество
Type II• Долгие
ожидания результата
• Длина очереди заявок со стороны других командType III
• Долгая реализация
![Page 42: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/42.jpg)
Exploit
• Передать все работы, которые возможно, другим командам
• Освободить от лишних митингов, добавить PM для административной работы
![Page 43: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/43.jpg)
Subordinate
• Уменьшить планы до возможностей команды-бутылочного горлышка
![Page 44: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/44.jpg)
Elevate
• Нанимать по мере возможности
![Page 45: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/45.jpg)
Rework
![Page 46: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/46.jpg)
Rework problem
![Page 47: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/47.jpg)
Design
Web
Core Lib
Backend
Video Encoding
iOS AndroidWinPhone
Testing
Где узкое место?
![Page 48: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/48.jpg)
Паттерн «Интеграционная команда»
• Кросс-функциональная команда
• Там где rework максимальный
• Супер-спецы
Размер: 7±2
![Page 49: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/49.jpg)
Структура баклога
Интеграционные фичи ~ 30% баклога
Team 1Team 2Team 3
![Page 50: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/50.jpg)
Узкое место может измениться
• Фича может затронуть любое количество команд
• «Путь» фичи через команды может быть различным
• Количество фич разного типа меняется
![Page 51: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/51.jpg)
Портфельная доска
![Page 52: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/52.jpg)
Releases и Portfolio Kanban
• Короткие релизы • WIP Limit
Business CaseОчередь Development Готово
Готово
Список фич
Релиз
![Page 53: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/53.jpg)
Tiger Team• Временная• Команда
формируется вокруг таска
• Небольшая • Сложнее
балансировать• Проще набрать
Feature Team• Постоянная• Таски выдаем
команде• Крупная• Проще
балансировать нагрузку
• Сложнее набрать
![Page 54: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/54.jpg)
4 keystone habits (by Ahmed Sidky)1. Коммуникации и
взаимопомощь2. Поставлять
эволюционными улучшениями
3. Интегрировать как можно раньше
4. Собирать обратную связь на всех уровнях как можно раньше
![Page 55: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/55.jpg)
Пример: совместная интеграция
![Page 56: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/56.jpg)
Специальные роли
• Subject Matter Expert – Консультант – Присоединяется где нужен
• System Owner– Отвечает за качество и целостность
компонента
![Page 57: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/57.jpg)
Summary
• Functional Team
• Feature Team• Tiger Team• Service Team• Virtual Team• SME • System Owner
РазработкаОчередь Ревью Готово3 2
Готово
РазработкаОчередь Интеграция Готово
В работе
Готово
Концепт
Доска задач продукта
Доски команд
РазработкаОчередь Ревью Готово3 2
ГотовоРазработкаОчередь Ревью Готово
3 2
Готово
![Page 58: Практики масштабирования гибкой разработки](https://reader033.fdocuments.net/reader033/viewer/2022061213/54988086b47959e7258b4584/html5/thumbnails/58.jpg)
Askhat [email protected] askhat.urazbaev @zibsun askhatu