В даний час, Scrum є однією з найбільш популярних «методологій» розробки ПО. Згідно з визначенням, Scrum - це каркас розробки, з використанням якого люди можуть вирішувати проблеми, що з'являються, при цьому продуктивно і виробляючи продукти найвищої значущості.
Ролі в Scrum
У класичному Scrum існує 3 базових ролі:
-Product owner
-Scrum master
-Команда розробки (Development team)
Product owner (PO) є сполучною ланкою між командою розробки та замовником. Завдання PO - максимальне збільшення цінності продукту, що розробляється і роботи команди.
Одним з основних інструментів PO є Product Backlog. Product Backlog містить необхідні для виконання робочі завдання (такі як Story, Bug, Task і ін.), Відсортовані в порядку пріоритету (терміновості).
Scrum master (SM) є «лідером-службовцем » (англ. Servant-leader). Завдання Scrum Master - допомогти команді максимізувати її ефективність за допомогою усунення перешкод, допомоги, навчанні та мотивації команді, допомоги PO
Команда розробки (Development team, DT) складається з фахівців, які виробляють безпосередню роботу над виробленим продуктом. Згідно The Scrum Guide (документу, що є офіційним описом Scrum), DT повинні володіти такими якостями і характеристиками:
-Бути самоорганізованими. Ніхто (включаючи SM і PO) не може вказувати команді яким перетворити Product Backlog в працюючий продукт
-Бути багатофункціональними, володіти всіма необхідними навичками для випуску працюючого продукту
-За виконувану роботу відповідає вся команда, а не індивідуальні члени команди
Рекомендований розмір команди - 7 (плюс-мінус 2) людини. Згідно ідеологам Scrum, команди більшого розміру вимагають занадто великих ресурсів на комунікації, в той час як команди меншого розміру підвищують ризики (за рахунок можливої відсутності необхідних навичок) і зменшують розмір роботи, який команда може виконати в одиницю часу.
Процес Scrum
Основою Scrum є Sprint, в перебігу якого виконується робота над продуктом. По закінченню Sprint повинна бути отримана нова робоча версія продукту. Sprint завжди обмежений по часу (1-4 тижні) і має однакову тривалість протягом всього життя продукту.
Перед початком кожного Sprint проводиться Sprint Planning, на якому проводиться оцінка вмісту Product Backlog і формування Sprint Backlog, який містить завдання (Story, Bugs, Tasks), які повинні бути виконані в поточному спринті. Кожен спринт повинен мати мету, яка є мотивуючим фактором і досягається за допомогою виконання завдань з Sprint Backlog.
Кожен день проводиться Daily Scrum, на якому кожен член команди відповідає на питання «що я зробив вчора?», «Що я планую зробити сьогодні?», «Які перешкоди на своїй роботі я зустрів?». Завдання Daily Scrum - визначення статусу і прогресу роботи над Sprint, раннє виявлення перешкод, що виникли, вироблення рішень щодо зміни стратегії, необхідних для досягнення цілей Sprint'а.
По закінченню Sprint'а виробляються Sprint Review і Sprint Retrospective, завдання яких оцінити ефективність (продуктивність) команди в минулому Sprint'е, спрогнозувати очікувану ефективність (продуктивність) в наступному спринті, виявленні наявних проблем, оцінки ймовірності завершення всіх необхідних робіт по продукту і інше .