Скрам
Скрам (англ. scrum — штовханина; сутичка навколо м'яча (у регбі)) — підхід управління проєктами для гнучкої розробки програмного забезпечення. Скрам чітко робить акцент на якісному контролі процесу розробки. ІсторіяПідхід вперше описали Гіротака Такеучі та Ікуджіро Нонака[1] в статті The New New Product Development Game (Гарвардський Діловий Огляд[2], січ-лют 1986). Вони відзначили, що проєкти, над якими працюють невеликі, крос-функціональні команди, зазвичай систематично продукують кращі результати, і пояснили це, як «підхід регбі». У 1991 році ДеҐрейс та Шталь у книжці Злі проблеми, справедливі рішення[3] послалися на цей підхід, як на Scrum (штовханина; сутичка навколо м'яча (у регбі)), спортивний термін, згаданий в статті Такеучі і Нонака. Кен Швабер на початку 1990-х використовував підхід, який привів Scrum в його компанію. Вперше метод Scrum було представлено на загальний огляд задокументованим, чітко сформульованим та описаним спільно Сазерлендом та Швабером на OOPSLA'96 в Остіні. Швабер та Сазерленд протягом наступних років працювали разом щоб обробити та описати весь їхній досвід та найкращі практичні зразки для індустрії в одне ціле, в ту методологію, що відома сьогодні як Scrum. Швабер об'єднав зусилля з Майком Бідлом[4] в 2001, щоб детально описати метод в книжці Agile Software Development with SCRUM. Незважаючи на те, що для Scrum нарекли долю управління проєктами з розробки ПЗ, він може також використовуватися в роботі команд обслуговувань програмного забезпечення (software maintenance teams), або як підхід управління розробкою і супроводом програм: Scrum of Scrums. ВизначенняScrum — це кістяк процесу, який включає набір методів і попередньо визначених ролей. Головні дійові особи — ScrumMaster, той хто опікується процесами, веде їх і працює як керівник проєкту, Власник Продукту, людина, що представляє інтереси кінцевих користувачів та інших зацікавлених в продукті сторін, та Команду, яка включає розробників. Протягом кожного спринту[5], 15-30 денного періоду (тривалість визначається командою), працівники створюють функціональний ріст програмного забезпечення. Набір можливостей, які імплементуються кожного спринту, приходять з етапу, що має назву product backlog (документація запитів на виконання робіт), який має найвищу пріоритетність за рівнем вимог до роботи, що повинна бути виконана. Запити на виконання робіт (backlog items), що визначені протягом наради з планування спринту (sprint planning meeting), переміщуються в етап спринту. Протягом цієї наради Власник Продукту інформує про завдання, які він хоче, аби були виконані. Тоді Команда визначає, скільки з бажаного вони можуть зробити, щоб завершити необхідні частини протягом наступного спринту[6]. Протягом спринту команда виконує визначений фіксований список завдань (т.з. backlog items). Впродовж цього періоду ніхто не має права змінювати перелік запитів на виконання робіт, що слід розуміти, як заморожування вимог (requirements) протягом спринту. Ролі (дійові особи)За методикою Scrum у виробничому процесі є визначені ролі, що розбиті на дві групи — «свиней» та «курей». Ці назви використані через жарт про свиню та курку[6].
Отже, свині використовуються для побудови продукту регулярно і часто (повністю задіяні), тоді як будь-які інші — кури, ті, що зацікавлені (і задіяні) в проєкті, але не мають прямого стосунку до приготування страви. Потреби, бажання, ідеї та вплив курей беруться до уваги, але їм не завжди дозволяють прямо впливати, видозмінювати або включатися в хід Scrum проєкту. «Свині»Свині повністю задіяні в проєкті, у скрам-процесі, так би мовити вони єдині з «власним беконом» на виробничій лінії.
Власник Продукту представляє зацікавлені сторони та є голосом клієнта. Він є відповідальним за забезпечення того що команда додає цінність до бізнесу.
Методологія Scrum застосовується за сприяння Scrum-керівника, який є відповідальним за спроможність команди виконати поставлені цілі і вирішення складнощів, які виникають.
Команда розробників є відповідальною за доставку потенційно готових частин продукту в кінці кожного спринту (the sprint goal). Команда складається з 3-9 людей що виконують роботу (аналізують, виконують дизайн, пишуть код, тестують, готують документацію і таке інше). У Scrum, команда є самокерованою. «Кури»
АртефактиProduct backlog (беклог)Product backlog — це документ, який має список вимог до функціональності, які упорядковані згідно зі ступенем важливості. Product backlog представляє список того, що повинно бути реалізовано. Елементи цього списку називаються «історіями» (user story) або елементами backlog-у (backlog items). Product backlog відкритий для редагування усім учасникам Scrum-процесу.
Sprint backlogSprint backlog — містить функціональність, обрану Product Owner із Product Backlog. Всі функції розбиті по задачах, кожна з яких оцінюється командою. Кожен день команда оцінює об'єм роботи, який необхідно провести для завершення задачі. Burndown chartBurndown chart — показує, скільки вже виконано і скільки ще залишається зробити. РозширенняКритерії готовності (Definition of ready, DoR) — критерії готовності задачі до того, щоб взяти її у роботу. Критерії повної готовності (Definition of Done, DoD) — критерії повної готовності задачі. Критерії прийнятності (Acceptance Criteria, AC) — критерії того, що задача не тільки повністю готова, але й в результаті працює як потрібно. Церемонії (зустрічі)Планування спринта (Sprint Planning Meeting)Проходить на початку нової ітерації Спринта.
Щоденна нарада (Daily Scrum Meeting)Відбувається кожен день протягом спринта. Є «пульсом» ходу спринта. Нараді властиві наступні обмеження:
Протягом наради кожен член команди відповідає на 3 запитання:
Демонстрація (Sprint Review Meeting)
Ретроспектива (Sprint Retrospective)
Засоби управління проєктами, що підтримують скрам
Див. такожПримітки
Посилання
|