Прокачайся в код-рев’ю: для перших 50 учасників — курс безкоштовний

час читання: 6 хв

Що таке Scrum і як використовувати його в роботі

Що таке Scrum і чим він відрізняється від Agile? Що належить до структури, артефактів і подій Scrum, як влаштована команда?

Детально про поняття та процеси розповідає автор Anywhere Club — бізнес-аналітик Єлизавета Сокол.

Читай інші статті автора:

Якщо ви почали освоювати професію бізнес-аналітика або вже стали джуніор фахівцем, то напевно не раз чули про Scrum. Багато команд вважають, що вони «працюють по Scrum», хоча насправді використовують лише його деякі атрибути.

Давайте спробуємо з’ясувати, що ж насправді він собою являє і чим відрізняється від Agile.

Що таке Scrum

Щоб краще зрозуміти цю тему, пропоную почати з визначення. Часто можна почути думку, що Scrum — це методологія розробки програмного забезпечення. Чи так це насправді?

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

Посібник описує структуру — основні компоненти, ролі та принципи — і визначає взаємозв’язки між різними елементами: «Scrum не надає докладних інструкцій, а натомість лише задає орієнтири для відносин і взаємодій між людьми».

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

У чому різниця між Scrum і Agile

Agile (Agile Software Development — «гнучке» розроблення ПЗ) — це філософія, спосіб мислення і набір принципів, описаних в Agile Manifesto, який складається з 4 головних цінностей і 12 принципів.

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

В свою чергу, Scrum, як ми вже з’ясували, — це фреймворк, який допомагає впроваджувати Agile принципи в управління проєктами. Таким чином, Agile — ширша філософія або підхід, що охоплює різноманітні фреймворки та методології, включно зі Scrum та ін., наприклад, Kanban, Lean, Extreme Programming.

Тепер, коли ми розібралися з основними поняттями, давайте повернемося до суті фреймворку. Посібник зі Scrum каже, що «Scrum використовує ітеративний, інкрементальний підхід для оптимізації передбачуваності та управління ризиками». Що ж це означає?

Ітеративний підхід передбачає наявність ітерацій або циклів. Якщо розглядати це в контексті розроблення ПЗ, то ітеративний підхід передбачає, що весь процес розроблення розбивається на серію повторюваних циклів. У кожному циклі за короткий проміжок часу відбуваються всі необхідні етапи життєвого циклу розроблення програмного забезпечення (англ. Software Development Life Cycle,SDLC). У рамках Scrum спринт є формою ітерації. Спринт — це фіксований період часу, як правило, від 1 до 4 тижнів, протягом якого команда розробляє та постачає готовий інкремент продукту. Протягом спринту відбуваються всі етапи розробки від планування до тестування, а потім розпочинається новий спринт.

Цикл розробки ПЗ
Джерело зображення: bigwater.consulting

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

«Уся скрам-команда несе відповідальність за створення цінного, корисного інкремента в кожному спринті».

Структура Scrum-фреймворку

А тепер давайте розглянемо структуру фреймворку трохи докладніше і почнемо з подій Scrum (англ. Scrum Events).

Події Scrum

У посібнику зі Scrum визначається п’ять основних подій:

  • Спринт/Sprint — подія, яка містить усю роботу та всі інші події, що відбуваються протягом обмеженого за часом періоду розроблення (контейнер для всіх інших подій). Тривалість спринту зазвичай становить від 1 до 4 тижнів.
  • Планування спринту/Sprint Planning — ініціює початок спринту. У межах нього планується робота, яку необхідно виконати протягом даного спринту (елементи беклогу продукту, що будуть включені до спринту), визначається мета — Sprint Goal (часто вирішувана бізнес-проблема), а також план їх реалізації. Усе разом це називається Sprint Backlog, який і буде результатом цієї події.
  • Щоденний скрам/Daily Scrum — це щоденна подія для Developers, що входять до Scrum-команди. Вона призначена для інспекції (відстеження прогресу) в досягненні мети спринту та коригування запланованої роботи по мірі необхідності.
  • Огляд спринту/Sprint Review — подія для перевірки інкременту продукту, отриманого в результаті спринту, а також оцінювання впливу виконаної роботи на загальний прогрес у досягненні мети продукту і беклогу. Цей комплекс дій дає змогу максимізувати цінність наступного спринту.
  • Ретроспектива спринту/Sprint Retrospective — завершує спринт, основна функція — вивчення минулого спринту і планування покращень, які мають бути реалізовані під час майбутніх спринтів.

Є ще одна подія, не позначена як обов’язкова у посібнику зі Scrum, але не менш важлива для досягнення мети продукту — це уточнення беклогу продукту (англ. Product Backlog Refinement). Недосвідчене око може не визначити її як таку, вивчаючи посібник зі Scrum, але ця подія активно використовується в рамках проєктів. Вона необхідна для опрацювання елементів беклогу продукту командою спільно з власником продукту. Backlog Refinement проводять для того, щоб ці елементи мали достатню деталізацію, за потреби були декомпозовані, пріоритизовані та загалом були готові для розгляду на плануванні спринту.

Артефакти Scrum

До артефактів Scrum відносяться такі поняття:

  • Беклог продукту/Product Backlog — складається з упорядкованого списку робіт/завдань, які необхідно виконати для створення та підтримки продукту. Перекладаючи це визначення на реалії будь-якого проєкту — це пріоритизований список усіх можливих завдань (наприклад, користувацькі історії, баги, технічні задачі та ін.), які необхідні для створення, розвитку та підтримки продукту.
  • Беклог спринту/Sprint Backlog — включає:

- мету спринту — чому нам потрібен цей спринт,

- набір обраних для спринту елементів беклогу продукту —що саме ми будемо робити в рамках спринту,

- план дій з постачання інкременту — як ми будемо це робити.

  • Інкремент/Incrementпосібник зі Scrum визначає його як «конкретну сходинку в досягненні мети продукту». Насправді ж інкремент являє собою невелику працюючу частину продукту, яка готова наприкінці кожного спринту.

Scrum-команда

Ще одна не менш значуща частина фреймворку — це Scrum Team, невелика команда людей — зазвичай не більше 10 осіб. До неї входять:

  • Власник продукту/Product Owner — це завжди одна людина в рамках команди, яка відповідає за максимізацію цінності продукту, що розробляється командою, а також за управління Product Backlog.
  • Scrum Master — керує, спрямовує, навчає і допомагає команді в правильному розумінні та використанні Scrum. Він також відповідає за ефективність команди, допомагаючи покращувати її методи роботи в рамках фреймворку. Цю роль також виконує тільки одна людина в рамках команди.
  • Команда розробки/Developers— згідно з визначенням з посібника зі Scrum, це люди в скрам-команді, які «віддані створенню будь-якого аспекту готового до використання інкременту в кожному спринті».

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

Зображення демонструє, як усі перелічені елементи Scrum взаємодіють між собою:

Фреймворк Scrum

Висновки

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

Багато хто забуває про критичну частину фреймворку — ту, з якої починається опис поняття Scrum. Важливою частиною Scrum є його 3 стовпи (англ. Pillars of Scrum) — прозорість, інспекція та адаптація, а також його цінності (англ. Scrum Values) — почуття обов'язку, відкритість, сфокусованість, повага та сміливість. Вони забезпечують основу для успішного впровадження фреймворку і спрямовують поведінку та мислення скрам-команди.

Стовпи та цінності Scrum

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

Варто зазначити, що описаний у посібнику зі Scrum фреймворк не підлягає зміні. Хоча використання його окремих елементів допустиме, «отриманий результат не буде Scrum».

Не можна сказати, що команда працює за Scrum методологією, якщо:

  • команда не знає і не поділяє цінності Scrum;
  • якщо немає Product Goal, і в рамках планування спринту ніколи не визначається Sprint Goal;
  • у команді немає Scrum Master, який допомагає зрозуміти, як правильно застосовувати фреймворк, а є тільки проєктний менеджер, який відповідає за терміни і бюджети;
  • якщо ваша команда не гнучка і не готова адаптуватися до змін.

Але хто сказав, що це погано, якщо такий змінений підхід допомагає вам досягти потрібного результату?

Корисні матеріали для вивчення: