Чому швидкість Scrum-команд не збільшується протягом часу

Всіх вітаю, шановна спільното!

Спочатку трохи про себе. Мене звати Висоцький Владлен, колись давно закінчив НТУУ «КПІ», отримав диплом магістра (з відзнакою) за спеціальністю вимірювальна техніка та метрологія, до 2018 року працював в різноманітних Конструкторських Бюро державного та напів-державного типу, отже все своє життя до цього року був інженером, займався embedded системами, мікроконтролерами, сенсорами та іншими цікавими речами. Вісім років тому набрався сміливості та перейшов працювати у велику міжнародну ІТ-компанію, приєднався як розробник по С/С++, але вже через півроку перейшов на Scrum Master трек і ось вже понад сім років працюю в цій ролі. Мені подобається ця роль, і подобається настільки, що вирішив почати ділитися власним досвідом та результатами своїх досліджень з усіма, кому це буде цікаво. Тим більше, що інженерну справу я не покинув, просто переніс її на інший рівень — рівень процесів. Мій досвід і тут допомагає мені.

Ця стаття — мій перший досвід, перший і, дуже сподіваюся, не останній, крок в нову для мене сферу публікацій в медіа. Вона буде корисна аудиторії, яка так чи інакше має відношення до процесу оцінювання задач в Agile командах: Скрам Майстри, розробники, проектні менеджери, продакти, бізнес-аналітики, тощо.

Повністю підтверджую, що ця стаття написана особисто, окрім зображень. Вони — це справа «рук» ШІ, з якою він досить непогано впорався. Але сюжет зображень та їх стилістика — це також повністю моя ідея, люблю я мову аналогій та метафор. Текст даної статті може містити орфографічні помилки, вибачаюсь за це, але просто не хотів редагувати її через ШІ, не знаю, як і що може вплинути на рішення команди DOU стосовно її публікації.

У чому справа

Гадаю, вам доводилося колись чути такі запитання від менеджменту проєкту, як «Чому велосіті наших команд за останній рік не збільшилася?» або «Давайте побрейнштормимо, як можна збільшити показник швидкості наших команд» тощо. Я чув їх і не раз, особливо на достатньо «молодих» проєктах. Питання можуть бути різними, але їхня суть одна й та сама — як ми цифрами можемо показати, що кількість роботи, яку виконують команди, збільшилась за певний проміжок часу.

Тут хочеться відзначити, що мова йде саме про оцінку швидкості в Story Points. Сподіваюсь, що всі про них чули і, впевнений, що всі або принаймні майже всі з вас, шановні читачі, використовували чи й досі використовуєте їх в своїх командах при оцінках задач. Я так само зустрічався з цією одиницею виміру обсягу робіт майже на всіх проектах, де я був залучений, переважно, як Скрам Майстер. Декілька років тому я і сам запитував себе — чому команда починає робити більше роботи за спринт або квартал (це той факт, який я спостерігаю), але її швидкість (velocity) не збільшується. Швидкість команди роками залишається плюс-мінус однаковою, а зміни спостерігаються тільки зі змінами в складі (capacity) команди, а саме: більше розробників — більша швидкість, менше розробників — менша швидкість. Тому я почав досліджувати цей феномен більш детально і виявив дуже цікаві речі, якими і хочу поділитися з вами, шановні читачі.

Давайте розбиратися

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

Уявіть собі юнака, який тільки-но почав ходити до спортзалу підкачати свої м’язи. І, як всі початківці, він починає з невеликої ваги — хай це буде 10 кілограмів —, а за тиждень вже здатний піднімати 20 та 30 кілограмів. І цей юнак в кінці тренування може вам розповісти щось на кшталт такого:

  • 10 кг для мене це легко, можу підняти 3 рази за десять секунд, навіть однією рукою;
  • 20 кг це вже не так легко, але і не зовсім-то і важко, можу підняти 3 рази за три хвилини, але вже двома руками, мушу після кожного підйому перепочити кілька секунд;
  • 30 кг — це ще поки важко для мене, ледь-ледь її можу підняти один раз, а щоб підняти три рази, то треба майже півгодини, відпочиваючи по десять хвилин після кожного разу, дуже важко.

Ну, про час, гадаю, тут все зрозуміло: чим важче, тим більше часу потрібно, щоб підняти штангу декілька разів. Або про зусилля, які витрачаються на це, так само, гадаю, все зрозуміло: чим важче, тим більше зусиль потрібно витратити. Якщо б ми ознайомили його з технікою оцінювання в Story Points (а в більшості випадків розробникам розповідають про зусилля, які потрібно витратити на вирішення задачі) та попросили його оцінити цю роботу по підйому штанги різної ваги, то вийшло би щось таке: 10 кг — це 1 SP, 20 кг — це 2 SP, 30 кг — це 3 SP (можна і більше, але не суть). Теж виглядає все логічно, вірно? Тоді йдемо далі.

Отже, наш юнак продовжує ходити в спортзал, не пропускаючи жодного заняття, і вже через декілька місяців його м’язи збільшуються, і він може вже піднімати більшу вагу, аніж на перших тренуваннях. Йому не цікава вага 10 та 20 кг, для нього це дуже легко, і зараз він використовує штангу вагою від 30 кг.

І цей юнак, як і в перший місяць свого тренування, може поділитися з нами своїми враженнями:

  • 30 кг для мене зараз — це легко, можу підняти 3 рази за тридцять секунд, навіть однією рукою. Гадаю, скоро і від цієї ваги відмовлюся, бо стає нецікаво;
  • 50 кг це вже цікавіше, є з чим працювати, можу підняти 3 рази за три хвилини, але двома руками, мушу після кожного підйому перепочити;
  • 80 кг — о, це поки важко для мене, ледь-ледь її можу підняти один раз, а щоб підняти три рази, то треба майже півгодини, відпочиваючи по десять хвилин після кожного разу.

Приблизно така сама історія, як і на початку. А от тут виникає питання: якщо би ми знову попросили би його оцінити роботу в Story Points, то які б цифри він поставив?

І тут я впевнений, що вийшло б щось таке: 30 кг — це 1 SP, 50 кг — це 2 SP, 80 кг — це 3 SP. Чому я такий впевнений? Тому що спостерігав таку картину багато разів в своїх командах, на різних проєктах.

Як же так? — запитаєте ви. — Вага же збільшилась, і тут однозначно потрібно оцінювати по-іншому, що 30 кг — це 3 SP, як і було в попередній раз, 50 кг — це вже 5 SP, а 80 кг — це точно 8 SP (або навіть і більше, але не суть). І я з вами абсолютно погоджуюся, саме так і має бути. Але ж оцінюємо не ми, а він, і він оцінює з точки зору зусиль, які він витрачає, а порівняти одне зусилля з іншим він може тільки через час: ця задача робиться швидше, зусиль потрібно менше, а ця робиться повільніше, зусиль потрібно більше, а отже, перша задача менша, а друга — більша. І «менша» або «більша» — це не з точки зору ваги, а з точки зору зусиль, які потрібно витратити, а зусилля всі сприймають по-різному, тому що це персональна оцінка. Ось тут і знаходиться та сама причина, чому ми не бачимо зростання velocity команди протягом певного періоду. Гадаю, ви вже здогадалися, що це за причина? Якщо хочете, не гортайте далі сторінку, а розмірковуйте над тією історією, яку ви щойно почули.

В чому криється причина

Ця причина криється в тому, що ми продовжуємо оцінювати задачі через час, потрібний на її виконання, через персональні скіли, персональні зусилля, забуваючи про те, що Story Points були придумані саме для того, щоб виключити ці персональні складові при оцінюванні задачі. Вони були придумані для того, щоб оцінювати саме РОЗМІР задач, тобто вагу штанги, а не витрачений ЧАС на виконанні вправи з нею. Як тільки ми починаємо дивитися саме на вагу штанги, то все стає на свої місця: з часом розробники, набираючи більше впевненості в своїх знаннях, діях, знаннях продукту (тобто збільшуючи свої «м’язи»), починають робити більше роботи (тобто починають піднімати «штангу» більшої ваги). І якби все так і було, і вони оцінювали б саме вагу, то результат був би таким: 10 кг = 1 SP, 20 кг = 2 SP, 30 кг = 3 SP, 50 кг = 5 SP, 80 кг = 8 SP. І графік нашої швидкості показав би нам, що від нашої першої появи в спортзалі до моменту, коли ми вже здатні піднімати 80 кілограмів, що наша velocity зросла у 8 разів.

Але зазвичай такого не трапляється, і наш графік коливається біля якоїсь сталої (середньої) величини. Продовжуючи тягнути в оцінку час, розробники, як команда, так і залишаються з тими ж Story Points, що були у них на початку. Ну, майже з тими, але кардинального збільшення я ніколи не спостерігав. А як у вас, шановні читачі, чи спостерігаєте ви зростання velocity ваших команд у декілька разів? Поділіться, будь ласка, своїм досвідом в коментарях.

Отже, це те, до чого я прийшов, аналізуючи цю ситуацію, швидкість команди, тобто її velocity, не збільшується протягом існування проекту саме тому, що ми оцінюємо задачі в ЧАСі (хвилини, години, дні, тижні т.д.), а не в РОЗМІРі (Story Points).

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

Завершення

На завершення хочу сказати, що я не проти використання Story Points. Навіть при такому їх використанні можна отримати користь від цього, наприклад, при плануванні робіт на невеликий період (як два-чотири-вісім тижнів) чи як привід розробникам поспілкуватися один з одним на рефайменті задач чи на плануванні спринта. Але погодьтеся, що Story Points — це, в першу чергу, інструмент, який має використовуватися належним чином, а якщо він використовується неналежним чином, то чи варто його взагалі використовувати? Філософське питання, але з радістю почитаю ваші думки в коментарях.

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

З повагою до всіх читачів моєї статті,

Владлен

👍ПодобаєтьсяСподобалось8
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

На велосіті багато ще чого впливає — стабільність команди (нові люди, ролі, звільнення, відпустки тощо), складність задач, зміна вимог, середовища тощо. І лише коли ці параметри стабільні середньо в довгому періоді, тільки тоді можна робити висновки щодо якості велосіті.
І так СП це не про час, але і не про Розмір. Це комплексна Відносна оцінка складності, включаючи ризики, тестування.
Це лише один з багатьох показників ефективності делівері.

Дякую за відгук, Andre!
Хотілось би ще відмітити, що SP були вигадані для оцінки саме командних задач, що звуться User Story, від цього і назва Story Point, тобто задач, над якою працює декілька людей/ролей одночасно. В ідеалі, звісно, всі Розробники. Тобто, одна задача — багато розробників. Тут про оцінку в часі складно розмовляти, тому СП більш вигідніше. Але в більшості випадків у нас є інший флоу: одна задача — одна людина. Про які Відносні SP тут можна казати взагалі? Тут людина дає оцінку в часі, і для неї це теж Відносна річ: ця задача складніше/довша/більша відносно іншої, але це все відбувається в часі. А потім цей час трансформується в SP: 1 — 2 дні роботи над задачею = 1 SP. А мало б бути навпаки, спочатку SP без прив"язки до часу, а потім дивимося, скільки це зайняло днів.
Буду радий почути вашу думку

Те що вам зручніше в часі оцінити не робить використання СП таким чином правильним.
В загалі на спринт ті ж хто вигадав сп рекомендують оцінки давати в годинах (спринт). Причому звісно робочих годин 5-6. Це теж варіант. Але точно не намагатись прирівняти якось сп до часу під час оцінки. Це тупо

Абсолютно згоден. Чомусь СП намагаються використати будь-де, будь-як. Тому і результат може бути неочікуваний.

Гарна вийшла стаття про часто «незрозумілий» інструмент. Особливо він незрозумілий в командах, які почали впроваджують скрам. Чекаю на продовження.

Дякуюза відгук, Kateryna Khyzhniak! Продовження готую, чекайте ;)

Правильне невикориснання Story Points набагато краще неправильного використання!

Я теж за те, щоб або правильно використовувати, або не використовувати взагалі.
Дякую за відгук, Andrii Bezuglyi

в мене нема жодних сертифікацій по цьому

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

ну типу є цілі книги по тому як краще рахувати SP, є десятки методик, тисячі статтей — це все не дуже вкладається в agile підхід який може зрозуміти будь хто за 15 хв і почати використовувати завтра

останнім часом почав потрапляти на статті #noestimates які тягнуть все у іншу сторону і кажуть, що estimation в тому виді який присутній зараз — просто вбиває час і продуктивність. Треба від цього всього відмовлятись і кидати нафіг.

з однієї крайності в іншу)

Дякую, Станіславе, за відгук! Зі SP не все так просто, як хотілось би. До речі, це і сам їх винахідник Рон Джеффріс (Ron Jeffries) признає. Останні три роки в різних командах командах слідкую за кількістю закритих задач (throughtput) (це той самий noestimatе), то хочу зазначити, що це так само працює не гірше за SP.
Тут більше потрібно подумати, яку саме проблему ви хочете вирішити естімацією. І від цього вже відштовхуватися при виборі одиниць виміру.

Дякую за людський текст. Дуже відчутно, що писала дива людина, а не АІ🙌🏻.

А щодо проблеми прогресу в даній методиці, то мені абсолютно зрозуміло, що Ви хотіли донести.

Розкажіть, а які саме методики, Ви вибрали для себе найбільш вдалими?

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

Вітаю, Владлен!
Дякую за статтю! Цікавий матеріал і я також стикався із подібними проблемами в своїх проєктах.
В моєму досвіді найбільше зусиль потребувало аби пояснити командам «що таке SP» і пояснити менеджменту, що на питання «а скільки годин в одному SP?» нема відповіді.

Маю питання: чи доречно змінювати вимір 1 SP з часом, коли команда стає мачурнішою? Якщо так, то як зрозуміти, коли настав час змінити шкалу вимірювання?

Дякую за відгук, Oleksandr Tsapenko!
Я чомусь підозрюю, що SP змінюється самою командою з часом, і це несвідомо. Буду радий, якщо би ви подивилися в своїй команді на задачі пару років тому і зараз і порівняли їх, ну і підтвердили б мою підозру або спростували її. Я таке збираю у власну «копілочку». До речі, тема для ретороспективи непогана, не знаходите?
А стосовно зміни шкали вимірювання, то це теж до «а що ви хочете досягти цим»? Гадаю, різні цілі можуть дати різні відповіді.

Так, на практиці так і виходить, що з часом SP зазнають певної «інфляції» в команді, бо краще розуміння продукту, краще розуміння технології, домену і т.д.

На ретроспективах консенсусу в цьому питанні не досягли. Тому залишили як є і змирились, що продуктивність команди «застигла» в певному діапазоні. Хоча це і є логічним з точки зору процесу — не може продуктивність нескінченно зростати без модернізації засобів та підходів — але іноді C-менеджери задають питання «а чому більше не зростаємо?».

Відповідно тут і зʼявляється думка «а чи не переглянути шкалу?». Однак це породжує купу супутніх операційних запитань.

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

Як Agile Coach, я частіше бачу реальні можливості для покращення не в Story Points, а в скороченні Lead Time, зменшенні кількості залежностей, покращенні якості та підвищенні швидкості отримання зворотного зв’язку від користувачів. Саме ці показники краще відображають адаптивність та здатність системи доставки створювати цінність.

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

Дякую за відгук, Oleh Lukutin! Згоден, що з часом у команди з"являється стабільний рівень Velocity. Але час, як-то кажуть, не стоїть на місці, прогрес рухається вперед, з«являються нові інструменти типу «АІ», тобто щось, що однозначно впливає на цю саму Швидкість команди в більшу/кращу сторону, але цифри не показують це. Гадаю, ви можете самі спостерігати цей феномен.
І так, абсолютно з годен, що краще дивитися на Цінність, яка надається користувачам, а також на метрики навколо неї, але чомусь SP залишаються незмінним атрибутом в багатьох проектах. І дуже часто — єдиним показником ефективності. Нажаль.

Підписатись на коментарі