Перейти до змісту
Увійти

Теорія

Трудомісткість — не тривалість: коли додаткові люди допомагають

Чому десять днів рецензії не стають двома з п'ятьма рецензентами: частини, які не поділити, ціна координації та очікування, яке не прибере жодна додаткова людина.

~8 хв читання · 9 вправ · 250 балів

Перед початком

П'ятеро рецензентів — два дні?

Знову запуск фізики в Klasna: десятиденна рецензія програми від Vira лежить на критичному шляху. Leo знає п'ятьох учителів фізики й має швидке рішення: п'ятеро рецензентів — два дні.

Цей урок питає, чому трудомісткість — не тривалість і коли додаткові люди справді скорочують графік.

Трудомісткість і тривалість — різні числа

Трудомісткість (effort) — обсяг роботи в людино-днях. Тривалість (duration) — календарний час від початку до кінця, з очікуванням, введенням у курс і частинами, які може зробити лише одна людина. Вони пов'язані, але тривалість ніколи не дорівнює просто трудомісткості, поділеній на кількість людей.

Арифметика Leo (десять днів рецензії, п'ятеро рецензентів — два дні) уявляє рецензію купою однакових незалежних шматків. Це не так. Частину можна розділити: прочитати й перевірити розділи. Частину — ні: хтось має тримати всі п'ять розділів в одній голові для фінального проходу, і це Vira. А кожен новий рецензент коштує часу, перш ніж почне допомагати, бо має дізнатися, що вважати помилкою, інакше вийде п'ять різних стандартів, які доведеться зводити.

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

  • Так
    «Рецензія: 10 людино-днів трудомісткості; з другим рецензентом — близько 7 календарних днів»
  • Не так
    «Десять днів роботи, п'ятеро людей — два дні»

    Трудомісткість поділено на людей.

Подільна робота, неподільне ядро й введення в курс

Будь-яку задачу можна описати трьома частинами, і тривалість випливає з них.

  • Робота, яку можна поділити: розподіляється між людьми. Для рецензії Vira — 8 днів читання й перевірки розділів, близько 1,6 дня на розділ.
  • Робота, яку поділити не можна: її робить одна людина за будь-яких умов. 2-денний фінальний прохід Vira всіма п'ятьма розділами — чи збігаються терміни, позначення й рівень складності.
  • Координація: 1 день на кожного додаткового рецензента, щоб ввести в курс і домовитися, що вважати помилкою.

З n рецензентами: тривалість = 8 ÷ n + 2 + (n − 1) × 1. Сама Vira потребує 8 + 2 = 10 днів. З двома рецензентами: 4 + 2 + 1 = 7 днів, на три дні менше на критичному шляху.

Зверни увагу на нижню межу: 2 дні Vira не змінюються, хоч скільки людей приєднається. Подільна частина скорочується до нуля, але ніколи не нижче того, що може зробити лише одна людина. Danylo бачить те саме в розробці: двоє розробників на одній фічі витрачають перший день, щоб домовитися, як вона має працювати.

  • Так
    «Двоє рецензентів: 8 ÷ 2 + 2 + 1 = 7 днів»
  • Не так
    Забути про 2-денний фінальний прохід Vira, додаючи рецензентів

    Він задає межу, яку не прибере жодна кількість людей.

Більше людей може зробити довше

Застосуй ту саму формулу до п'ятьох рецензентів Leo: 8 ÷ 5 + 2 + (5 − 1) × 1 = 1,6 + 2 + 4 = 7,6 дня. Це довше, ніж із двома рецензентами (7), і далеко від 2 днів, на які розраховував Leo.

Чому? Кожна додаткова людина скорочує подільну частину менше, ніж попередня (з 4 днів із двома рецензентами до 1,6 з п'ятьма), а координація щоразу зростає на цілий день (з 1 до 4). Частина, яку може зробити лише Vira, не зсувається. Після певної межі кожна нова людина додає більше введення в курс, ніж забирає читання.

Ця закономірність загальна. Додаткові люди найбільше допомагають, коли приєднуються перші одна-дві; далі віддача падає й може стати від'ємною, особливо коли новачкам потрібна увага саме тієї людини, що на критичному шляху. Найкраща кількість людей для задачі часто невелика, і знаходять її розрахунком, а не припущенням «більше — швидше».

  • Так
    «Двоє рецензентів: 7 днів. П'ятеро: 7,6. Беремо одного додаткового рецензента»
  • Не так
    «Якщо двоє швидше, то п'ятеро — найшвидше»

    Координація зростає з кожною людиною.

Чому координація зростає швидше за кількість людей

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

Кількість пар у групі з n людей — n × (n − 1) ÷ 2. Двоє людей: 1 пара. Троє: 3. П'ятеро: 10. Восьмеро: 28. Людей додають по одному; можливих розмов стає в рази більше. П'ятеро рецензентів, що звіряють розділи зі стандартами одне одного, можуть означати десять окремих розбіжностей, які треба владнати.

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

  • Так
    «Кожен рецензент погоджує стандарт помилок із Vira, а не між собою»
  • Не так
    П'ятеро рецензентів в одному чаті, у кожного своє уявлення про помилку

    Десять пар, які треба узгодити.

Коротша тривалість коштує більшої трудомісткості

Додаткові люди скорочують календар, але збільшують трудомісткість. З двома рецензентами рецензія триває 7 календарних днів, але роботи 8 + 2 + день введення в курс для кожного з двох = 12 людино-днів, тоді як сама Vira — 10. Ти купуєш календарний час додатковою трудомісткістю, і хтось за це платить: Hanna закладає 8 000 грн на додаткового рецензента, як власне припущення плану, із 154 550 грн, що лишаються під стелею.

Такий обмін вартий того лише на критичному шляху. Три дні, зекономлені там, зсувають дату старту; три дні, зекономлені на задачі з резервом, нічого не дають і однаково коштують додаткової трудомісткості.

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

  • Так
    «Другий рецензент: +2 людино-дні й 8 000 грн, щоб зняти 3 дні з критичного шляху»
  • Не так
    Додати рецензента до задачі з 14 днями резерву

    Більше трудомісткості, а старт не раніше.

Коли додаткова людина скорочує графік

Додаткова людина скорочує графік проєкту лише тоді, коли кілька умов виконуються разом:

  • Задача на критичному шляху. Поза ним раннє завершення не зсуває дату. Задача з 30 днями резерву нічого не виграє.
  • Більшу частину її роботи можна поділити на незалежні частини, як читання окремих розділів. Задача, що здебільшого є судженням однієї людини, як фінальний прохід Vira, майже не скорочується.
  • Новачок приєднується рано, тож введення в курс окупається за достатню кількість днів, що лишилися.
  • Введення в курс не забирає часу критичної людини. Якщо новачкові потрібен тиждень навчання від найзавантаженішої людини проєкту, критичний шлях може подовжитися.
  • Тривалість — це робота, а не очікування. Дні очікування відповідей не діляться.

Пропусти хоч одну умову — і додаткова людина коштуватиме трудомісткості й грошей, не зсунувши дати. Тому один додатковий рецензент на рецензії Vira працює: критична задача, переважно подільна, рано, коротке введення в курс.

  • Так
    Один додатковий рецензент, якого Vira вводить у курс у перший день рецензії
  • Не так
    Двоє новачків в останні три дні критичної задачі

    Введення в курс з'їдає час, який вони мали заощадити.

Очікування не ділиться

Розрив між трудомісткістю й тривалістю часто означає очікування, а не повільну роботу. Відбір у Roman — 9 людино-днів трудомісткості, але 18 днів тривалості: кандидати відповідають кілька днів і вільні лише ввечері та на вихідних. Половина тривалості — очікування.

Очікування не ділиться між людьми. Другий рекрутер писав би іншим кандидатам, а потім здебільшого теж чекав би; 18 днів майже не скоротилися б, а трудомісткість і витрати зросли б. Прохання до Roman «працювати швидше» хибно читає проблему: він не повільний.

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

  • Так
    «Питати про вільні години на тиждень у першому ж дзвінку»

    На один раунд листування менше.

  • Не так
    «Троє рекрутерів скоротять 18 днів до 6»

    Очікування не ділиться на три.

Чотири запитання, перш ніж когось додати

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

  1. Чи задача на критичному шляху? Якщо ні, зупинись: швидша задача не зсуне дату завершення.
  2. Чи справді її роботу можна поділити? Порахуй частину, яку може зробити лише одна людина.
  3. Хто введе новачка в курс, і чи ця людина теж критична?
  4. Тривалість — це робота чи очікування? Очікування не ділиться.

Перше запитання йде першим, бо дешево відсіює більшість поганих ідей. Доступність, ціна за день і стиль роботи важать лише після нього.

А якщо на кожне запитання відповідь «ні»? Тоді змінюй план, а не кількість людей: почни щось раніше, запусти паралельно або вріж обсяг на критичному шляху.

Як це складається докупи: трудомісткість — це робота, тривалість — календарний час; додаткові люди допомагають лише на критичному шляху, для подільної роботи, якщо приєднуються рано, і вони збільшують трудомісткість. Далі кейс збирає всі сімнадцять задач і питає, чи справді тримається 1 лютого.

  • Так
    «Чи критична? Ні. Тоді другий рекрутер не зсуне старт»
  • Не так
    Почати з «хто вільний наступного тижня?»

    Пропускає, чи це взагалі допоможе.

Готові потренуватися?

Виконайте вправи уроку й отримайте 250 балів, коли пройдете його вперше.

Розпочати вправи