Віха

Урок 3 з 4

Kanban

Kanban (канбан) японською означає «картка» або «вивіска». На заводах Toyota картка була сигналом виготовити нові деталі, коли попередні вже забрали: виробляли рівно стільки, скільки потрібно далі. У 2000-х цю ідею перенесли на розробку програм. Тут роботу не роздають людям, люди самі беруть наступну задачу, коли звільняться.

Після релізу гри робота в студії змінилася: баги від гравців, дрібні покращення, новий рівень раз на місяць. Ніхто не хоче чекати двотижневого планування, щоб полагодити вильоти. Для такого потоку краще підходить Kanban.

Дошка

Канбан-дошка показує всю роботу і її шлях. Колонки — етапи: «Черга», «В роботі», «Тестування», «Готово». Кожна задача — картка, яка рухається зліва направо. Колонки налаштовують під свій процес: у студії між «В роботі» і «Тестуванням» є ще «Перегляд коду».

Обмеження незавершеної роботи

Головне правило Kanban — обмежити незавершену роботу (WIP limit, від work in progress — робота в процесі). Наприклад, у колонці «В роботі» може бути не більше двох карток. Поки їх там дві, нову задачу не беруть, а допомагають закінчити ті, що вже є.

Обмеження здається гальмом, але скорочує час кожної задачі. Коли одночасно відкрито багато задач, люди перемикаються між ними, а задачі довго чекають на перегляд і тестування. Правило просте: спершу закінчити, потім починати.

Закон Літтла

Середній час задачі в роботі =кількість задач у роботіпропускна здатність= \dfrac{\text{кількість задач у роботі}}{\text{пропускна здатність}}

Пропускна здатність — скільки задач команда закінчує за день. Якщо вона закриває одну задачу на день і тримає в роботі шість задач, кожна в середньому йде шість днів. Щоб задачі йшли швидше за тієї самої швидкості команди, є лише один спосіб: тримати в роботі менше задач. Цей зв'язок 1961 року довів математик Джон Літтл.

Обмеження незавершеної роботи

Що більше задач одночасно в роботі, то довше йде кожна.

6

6 задач в роботі: кожна йде в середньому 6 днів. На людину припадає більше однієї задачі, тож люди перемикаються між ними, і на практиці виходить ще довше.

Команда підтримки — 3 людини, і вона закриває одну задачу на день. Тоді середній час задачі в роботі дорівнює кількості задач у роботі.

Показники потоку

  • Час виконання (lead time) — від моменту, коли задачу попросили, до моменту, коли її зроблено. Це те, що відчуває гравець: скільки чекати на виправлення.
  • Час циклу (cycle time) — від початку роботи над задачею до «готово». Це швидкість самої команди.
  • Пропускна здатність (throughput) — скільки задач закінчено за тиждень.
  • Накопичувальна діаграма потоку (cumulative flow diagram) показує по днях, скільки задач у кожній колонці, у вигляді смуг. Якщо смуга «В роботі» розширюється, роботу починають швидше, ніж закінчують.

Накопичувальна діаграма потоку

Скільки задач у кожній колонці дошки, день за днем.

0102030тиждень 1тиждень 2тиждень 3тиждень 4
Черга: 0В роботі: 11Готово: 19день 20

Без обмеження на 20-й день у роботі вже 11 задач: смуга «В роботі» розширюється, бо роботу починають швидше, ніж закінчують. Кожна задача йде все довше.

Чотири тижні роботи команди підтримки після релізу: 30 заявок, одна закрита задача на день. Наведіть на діаграму, щоб побачити день.