53
Проверка гипотез Kanban Method с помощью имитационной модели Денис Тучин Тренер-консультант, ScrumTrek

Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Embed Size (px)

Citation preview

Page 1: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Проверка гипотез KanbanMethod с помощью имитационной модели

Денис Тучин

Тренер-консультант, ScrumTrek

Page 2: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Об авторе

С 2003 имитационное моделирование

C 2004 в разработке коммерческого ПО

С 2009 внедрение Agile практик

С 2011 руководство командами и проектами

b2b и b2c, гос. проекты, стартапы, банковские проекты, проекты для IBM.

Page 3: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Зачем моделировать Канбан?

Нет уверенности, что нам поможет Канбан

Непонятно, как подобрать команду и какие

ограничения выставить на WIP

Без статистики по команде практически не

возможно планировать релиз

? ? ?

?

Page 4: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Содержание доклада

Сбалансированность команды

Взаимопомощь между командами

Как подобрать ограничение WIP?

Вариативность задач

Эффект приоритезации

Page 5: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Имитационное моделирование

Используют если нет аналитической модели (например, есть случайность)

Или если нет аналитического метода решения

Дорого или невозможно экспериментировать на реальном объекте

Page 6: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

О средстве моделирования

Первая версия вышла в 2000

Кросс-платформенное

Начиная с версии 7 на базе IDE Eclipse

Поддерживает Java для сложных и нестандартных моделей

Page 7: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Области применения

Page 8: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

О модели

Page 9: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

О модели

Агент модели

или

Analysis, Dev, Test

Page 10: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Трудозатраты на работу

triangular(0.70, 1.2, 2) /

agent.resource.testExperience

Page 11: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Трудозатраты на работу

triangular(0.70, 1.2, 2) /

agent.resource.testExperience

Page 12: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Трудозатраты на работу

triangular(0.70, 1.2, 2) /

agent.resource.testExperience

Page 13: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

*Experience

Resource analysisExperience devExperience testExperience

Аналитик 1,0 0,1 0,5

Разработчик 0,2 1,0 0,3

Тестировщик 0,4 0,2 1,0

Page 14: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Допущения модели

(unit instanceof Analyst)|| (unit instanceof Developer)

&& (development.seize.queue.size() == 0) && (analysts.idle() == 0)

|| (unit instanceof Tester) && (test.seize.queue.size() == 0) && (analysts.idle() == 0)

Многозадачность

1 задача – 1 исполнитель

Page 15: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Сбалансированная команда

Page 16: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 17: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Несбалансированная команда

Page 18: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 19: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Несбалансированная команда

Время цикла растёт:

Page 20: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Несбалансированная команда

Время цикла растёт:

Задачи делаем всё дольше

Page 21: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Несбалансированная команда

Время цикла растёт:

Задачи делаем всё дольше

Разработчики и аналитики забывают контекст, когда тестировщик берётся за старую задачу

Page 22: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Несбалансированная команда

Время цикла растёт:

Задачи делаем всё дольше

Разработчики и аналитики забывают контекст, когда тестировщик берётся за старую задачу

Часто функционал приходится несколько раз переделывать ещё до того, как она начнёт приносить пользу пользователям и деньги нам

Page 23: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Несбалансированная команда

Время цикла растёт:

Задачи делаем всё дольше

Разработчики и аналитики забывают контекст, когда тестировщик берётся за старую задачу

Часто функционал приходится несколько раз переделывать ещё до того, как она начнёт приносить пользу пользователям и деньги нам

Page 24: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

А что если помочь тестировщикам?

Page 25: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 26: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Почему так?

Page 27: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Почему так?

У всех полно своих дел!

Page 28: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Что делать?

Page 29: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Попробуем ограничить WIP

Как выбрать WIP?

Page 30: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Попробуем ограничить WIP

Как выбрать WIP?

Попробуем

2n + 1

Page 31: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 32: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Как вы подбираете WIP?

Page 33: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Вспомним методы оптимизации

Применим метод координатного спуска

PS: При желании можно использовать метод градиентного спуска

Analysis Dev Test Cycle Time Throughput

5 7 5 ~7,0 ~7,85 7 7 ~7,0 ~8,0

5 7 3 ~6,5 ~7,9

5 7 2 ~6,5 ~7,0

5 7 4 ~7,0 ~7,0

3 7 7 ~5,5 ~7,0

5 5 3 ~6,0 ~7,85 3 3 ~6,0 ~7,0

5 6 3 ~6,5 ~7,5

5 4 3 ~6,0 ~7,5

3 5 3 ~5,5 ~7,0

7 5 3 ~6,0 ~7,8

6 5 3 ~6,0 ~7,8

Page 34: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 35: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Выводы про взаимопомощь

Взаимопомощь не работает, когда все перегружены

Выход: установить ограничение WIP

Подобрать WIP можно экспериментально или с помощью модели

PS: Не стоит забывать про Rework(Cycle Time vs Throughput)

Page 36: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Подробнее с про сбалансированные команды

Page 37: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 38: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Сбалансированная команда

Небольшие задачи

Равномерное поступлениезадач

Все задачи примерно одного размера

Page 39: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Сбалансированная команда

Небольшие задачи

Равномерное поступлениезадач

Все задачи примерно одного размера

Page 40: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Вариативность поступления задач

Page 41: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Вариативность задач

BA Dev QA

BA Dev QA

BA Dev QA

Page 42: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Поступление Трудозатраты

Δt,

дни

0,2 2 10

Pr

T,

ч.дни

0,5 2 30

Pr

Page 43: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 44: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

WIP

Page 45: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 46: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Добавим багов

Page 47: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 48: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Заказчик (разработчики) предпочитает новый функционал багам

Page 49: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели
Page 50: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Выводы про приоритезацию

Приоритезация обычно увеличивает Lead Time

Page 51: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Какая от этого польза?

Вместо распределения можно задать реальную статистику производительности, а также по вариативности задач.

Поставить эксперименты с разными ограничениями WIP

Смоделировать, что изменится при изменении внешних условий

Page 52: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Планы по развитию модели

Page 53: Денис Тучин - Проверка гипотез Kanban Method с помощью имитационной модели

Спасибо за каверзные вопросы!

Денис Тучин, тренер-консультант ScrumTrek

[email protected]

Skype: denis.tuchin

https://www.facebook.com/denis.tuchin

https://ru.linkedin.com/in/denistuchin

https://twitter.com/denistuchin