Урок 3 з 4
Kanban
Kanban (канбан) японською означає «картка» або «вивіска». На заводах Toyota картка була сигналом виготовити нові деталі, коли попередні вже забрали: виробляли рівно стільки, скільки потрібно далі. У 2000-х цю ідею перенесли на розробку програм. Тут роботу не роздають людям, люди самі беруть наступну задачу, коли звільняться.
Після релізу гри робота в студії змінилася: баги від гравців, дрібні покращення, новий рівень раз на місяць. Ніхто не хоче чекати двотижневого планування, щоб полагодити вильоти. Для такого потоку краще підходить Kanban.
Дошка
Канбан-дошка показує всю роботу і її шлях. Колонки — етапи: «Черга», «В роботі», «Тестування», «Готово». Кожна задача — картка, яка рухається зліва направо. Колонки налаштовують під свій процес: у студії між «В роботі» і «Тестуванням» є ще «Перегляд коду».
Обмеження незавершеної роботи
Головне правило Kanban — обмежити незавершену роботу (WIP limit, від work in progress — робота в процесі). Наприклад, у колонці «В роботі» може бути не більше двох карток. Поки їх там дві, нову задачу не беруть, а допомагають закінчити ті, що вже є.
Обмеження здається гальмом, але скорочує час кожної задачі. Коли одночасно відкрито багато задач, люди перемикаються між ними, а задачі довго чекають на перегляд і тестування. Правило просте: спершу закінчити, потім починати.
Закон Літтла
Середній час задачі в роботі
Пропускна здатність — скільки задач команда закінчує за день. Якщо вона закриває одну задачу на день і тримає в роботі шість задач, кожна в середньому йде шість днів. Щоб задачі йшли швидше за тієї самої швидкості команди, є лише один спосіб: тримати в роботі менше задач. Цей зв'язок 1961 року довів математик Джон Літтл.
Обмеження незавершеної роботи
Що більше задач одночасно в роботі, то довше йде кожна.
6 задач в роботі: кожна йде в середньому 6 днів. На людину припадає більше однієї задачі, тож люди перемикаються між ними, і на практиці виходить ще довше.
Показники потоку
- Час виконання (lead time) — від моменту, коли задачу попросили, до моменту, коли її зроблено. Це те, що відчуває гравець: скільки чекати на виправлення.
- Час циклу (cycle time) — від початку роботи над задачею до «готово». Це швидкість самої команди.
- Пропускна здатність (throughput) — скільки задач закінчено за тиждень.
- Накопичувальна діаграма потоку (cumulative flow diagram) показує по днях, скільки задач у кожній колонці, у вигляді смуг. Якщо смуга «В роботі» розширюється, роботу починають швидше, ніж закінчують.
Накопичувальна діаграма потоку
Скільки задач у кожній колонці дошки, день за днем.
Без обмеження на 20-й день у роботі вже 11 задач: смуга «В роботі» розширюється, бо роботу починають швидше, ніж закінчують. Кожна задача йде все довше.