
Agile — це цінності й принципи розробки програмного забезпечення з навчанням на досвіді та пристосуванням до змін. Scrum — фреймворк, який надає команді конкретну структуру для складної роботи. Зв’язок тісний, проте ці назви не взаємозамінні. Команда може дотримуватися гнучких принципів без Scrum, а сам розклад Scrum-зустрічей не гарантує ані здатності пристосовуватися, ані корисних результатів.
Відмінність пояснює практичне питання: що має статися, коли команда виявляє, що початковий план більше не відповідає проблемі? Гнучкий підхід розглядає нову інформацію як підставу переглянути план. Scrum створює регулярні можливості перевіряти роботу й коригувати її. Жоден із підходів не усуває потреби в меті, професійному судженні чи увазі до якості.
Програмні проєкти часто починаються з неповного знання. Користувачам буває важко пояснити потребу, доки вони не побачать можливого рішення; розробники іноді виявляють технічні обмеження лише під час спроби реалізації. Якщо всі вимоги вважати остаточно визначеними на початку, можна сумлінно виконати план, який уже не веде до найкориснішого продукту. Пізнє виявлення такої невідповідності робить виправлення дорожчим і складнішим.
Відповіддю була не відмова від планування, а скорочення часу між рішенням і з’ясуванням його результативності. Замість очікування однієї великої фінальної поставки команди могли створювати менші придатні до використання результати, збирати відгуки й оновлювати пріоритети. Таке мислення розвивалося в кількох підходах ще до того, як Agile став спільною назвою. Воно не виникло за один день як завершений винахід однієї людини.
Важливою передумовою стала стаття Хіротаки Такеучі та Ікудзіро Нонаки 1986 року The New New Product Development Game. Її регбійна метафора допомогла бачити розробку продукту як узгоджений рух команди замість простої послідовності передавання роботи. Стаття стосувалася розробки продуктів загалом; її не слід ототожнювати з пізнішим програмним фреймворком у повністю визначеній формі.
Кен Швабер і Джефф Сазерленд розробляли Scrum на початку 1990-х років і спільно представили його на конференції OOPSLA 1995 року. Їх визнають співтворцями, хоча до розвитку долучалися й інші практики. Перший Scrum Guide з’явився 2010 року. Послідовність важлива: Scrum існував до Маніфесту, а згодом став одним із найвідоміших фреймворків гнучкої розробки.
11–13 лютого 2001 року сімнадцять практиків програмної розробки зустрілися у Сноуберді, штат Юта. Вони представляли різні підходи, зокрема Extreme Programming, Scrum і Crystal. За офіційною розповіддю про зустріч, вони прагнули знайти спільну основу поза громіздкими процесами, зосередженими на документах. Результатом став Маніфест гнучкої розробки програмного забезпечення, відомий як Agile Manifesto.
Його сімнадцять підписантів — Кент Бек, Майк Бідл, Арі ван Беннекум, Алістер Кокберн, Ворд Каннінгем, Мартін Фаулер, Джеймс Греннінг, Джим Гайсміт, Ендрю Гант, Рон Джеффріс, Джон Керн, Браян Мерік, Роберт Сесіл Мартін, Стів Меллор, Кен Швабер, Джефф Сазерленд і Дейв Томас. Отже, Agile має колективне авторство. Обидва співтворці Scrum були серед підписантів, але ширший рух не можна приписувати лише їм.
Маніфест надає більшої ваги людській співпраці, ніж жорсткій залежності від процедур; працездатному програмному забезпеченню, ніж вичерпним описам; тривалим відносинам із замовником, ніж договірному торгу; пристосуванню до обставин, ніж механічному збереженню старого плану. Ці пріоритети допомагають розв’язувати суперечності реальних проєктів. Вони не забороняють інструментів, договорів, документації чи планів.
Це уточнення принципове. Регульований продукт може потребувати великої документації; розподілена команда може сильно залежати від інструментів. Питання в тому, чи підтримують вони роботу й людей, яким потрібні її результати. Дванадцять супровідних принципів додають часте постачання, сталий темп, технічну якість і регулярне осмислення. Agile закликає перевіряти спосіб роботи, а не лише засвоювати модний словник.
Scrum організовує роботу навколо малої команди, спільного продуктового напряму й повторюваних періодів — Спринтів. Спринт триває не довше місяця. Протягом нього команда рухається до Цілі Спринту й створює придатне до використання доповнення продукту. Короткий цикл обмежує час, коли припущення залишаються неперевіреними, якщо команда справді досліджує результати, а не лише звітує про діяльність.
Scrum Guide визначає три відповідальності. Product Owner відповідає за максимізацію цінності продукту й управління впорядкованим Product Backlog. Developers створюють придатний результат та організовують роботу. Scrum Master допомагає запровадити Scrum і підвищити ефективність команди. Його не визначають як керівника, який щодня розподіляє завдання, а Product Owner — одна людина, не комітет для ухвалення рішень.
Sprint Planning визначає, чому наступний Спринт важливий, що команда може взяти в роботу та як діятиме. Під час Спринту Daily Scrum дає Developers п’ятнадцять хвилин, щоб перевірити поступ до мети й адаптувати план. Sprint Review досліджує результат разом із зацікавленими сторонами та впливає на подальшу роботу. Sprint Retrospective зосереджена на покращенні співпраці всередині команди.
Ці події мають різне призначення. Review — не просто бар’єр погодження, а ретроспектива — не привід звинувачувати когось у складному тижні. Щоденна зустріч також не стає ефективною лише тому, що всі стоять. Зв’язок між спостереженням і дією важливіший за зовнішність: коли виявляється перешкода чи хибне припущення, команда повинна мати реальну можливість відповісти.
Уявімо команду, яка створює навчальний сайт. Замість будувати цілу платформу курсів до першої демонстрації вона може спочатку надати невелику працездатну можливість навчання. Учні відкривають урок, читають матеріал і позначають його завершеним. Їхні відгуки можуть показати, що розуміння прогресу важливіше за складну панель, яку команда планувала першою. Це відкриття здатне змінити порядок наступної роботи.
Це умовний приклад, не історичний проєкт. Він показує дві взаємодоповнювальні ідеї: інкрементна розробка додає придатні можливості, а ітеративна переглядає й покращує вивчене чи створене. Прототип для дослідження ідеї може бути цінним, але не стає автоматично завершеним доповненням продукту. У Scrum робота має відповідати командній Definition of Done, перш ніж належати до завершеного Increment.
Agile ширший за Scrum. Extreme Programming особливо наголошує на програмній інженерії; Kanban зосереджується на потоці й обмеженні одночасної роботи. Команди також можуть застосовувати історії користувача, техніки оцінювання або візуальні дошки. Вони здатні допомагати, але Scrum не вимагає історій користувача, балів чи покеру планування. Плутанина між поширеною рекомендацією й офіційним правилом робить фреймворк уявно складнішим.
Пізніше викладачі й автори допомагали поширювати ідеї. Наприклад, Майк Кон запропонував впливові пояснення історій користувача та гнучкого планування, хоча не підписував Маніфесту. CI/CD належить до технічного боку: часта інтеграція, автоматизовані перевірки й надійний випуск можуть підтримувати короткі цикли зворотного зв’язку. Це не інша назва Agile і не обов’язковий компонент Scrum.
Agile і Scrum не обіцяють легкості кожного проєкту чи правильності кожного терміну. Вони роблять невизначеність керованою через видиму роботу, відгуки та пристосування. Це потребує умов за межами кімнати для зустрічей: доступу до користувачів, ясних пріоритетів, права вирішувати й сталої уваги до якості. Зміна назв посад без зміни цих умов може залишити початкові проблеми недоторканими.
Тож корисна перевірка конкретна: чи здатна команда раніше знаходити непорозуміння, реагувати на свідчення й створювати придатний результат? Завантажений календар і заповнена дошка не відповідають на це питання. Історія допомагає зберігати мету: Agile сформулював спільні пріоритети, тоді як Scrum надав структуру для повторюваного ритму навчання й узгодженого постачання.
12 питань