Уявіть собі будівництво будинку.
Waterfall (Водоспад) схожий на послідовне виконання всіх етапів: спочатку закладаємо фундамент, потім зводимо стіни, потім дах, і лише в кінці займаємося внутрішнім оздобленням. Кожен етап має чіткий початок і кінець, а перехід до наступного можливий лише після завершення попереднього.
Зрозуміло, що такий підхід більш передбачуваний для нас. Ми маємо чіткий план, зрозумілу структуру та легкість контролю на кожному етапі. Однак, головний недолік такого підходу є його низька гнучкість, яка не дозволяє вносити зміни на пізніх етапах розробки і отримати не той результат, який ми очікували на початку.
Розглянемо на прикладі. Уявіть, що на етапі внутрішнього оздоблення ви розумієте, що хочете змінити розташування стін. У моделі Waterfall це буде дуже складно і дорого, оскільки попередні етапи вже завершені. Тепер потрібно відмовитися від частини вже проробленої роботи і якось викручуватися з ситуації, щоб задовольнити замовника.
Agile (Гнучкий підхід), в свою чергу, більше схожий на будівництво з постійним зворотним зв'язком. Ми будуємо невеликими ітераціями (спринтами), постійно показуючи замовнику проміжні результати та враховуючи його побажання. Це дозволяє швидко адаптуватися до змін і мінімізувати ризики.
Це основний підхід у розробці, коли в нас немає чіткого плану дій і нам важливий зворотний зв’язок із замовником та кінцевими користувачами, щоб поступово наповнювати наш продукт цінністю, яку очікують. Але зрозуміло, що ця привабливість має свою ціну. В Agile проєктах складніше контролювати загальний час та бюджет, необхідна активна залученість замовника і вміння PM, за допомоги бізнес аналітика (BA), фокусуватися на основному, щоб не роздути проєктні задачі на декілька років і сотні тисяч доларів.
Таку модель складно імплементувати на будівельних проєктах, але для розробки програмного продукту вона дуже вдало використовується.
Розглянемо на прикладі. Уявіть розробку вебсайту за Agile. Кожні кілька тижнів команда показує замовнику нові розроблені функції. Замовник може одразу висловити свої зауваження та побажання, які команда врахує в наступних ітераціях. Таким чином, кінцевий продукт максимально відповідатиме його потребам і немає загрози зробити частину функціоналу, яка потім виявиться непотрібною.
Так, як не можна сказати, що викрутка краще молотка (або навпаки), не правильно говорити, що Agile краще Waterfall. Просто вони підходять для різних задач. У випадку передбачуваності і чіткого планування PM обирає Waterfall, а ось коли рамки бюджету і часу гнучкі, а результат буде адаптуватися під вимоги ринку з плином часу - перевага надається Agile.
Своєю концепцією, Agile надихнув проєктних спеціалістів на створення похідних фреймворків, таких як Scrum і Kanban. Розберемося з ними детальніше.
Scrum – це одна з найпопулярніших Agile-методологій. Уявіть собі спортивну команду (наприклад, команду з регбі - звідки й назва "Scrum"), де кожен гравець має свою роль, а всі разом вони рухаються до спільної мети невеликими, інтенсивними "спринтами" (зазвичай 1-4 тижні). Так як і в будь-якій спортивній грі, є свої правила, ритуали і обов’язки.
Розберемося детальніше з основними елементами Scrum.
Спринти (Sprints): короткі часові проміжки (ітерації), протягом яких команда розробляє певну частину продукту. Зазвичай вони тривають від 1 до 4 тижнів, але рекомендовано не змінювати тривалість спринту протягом роботи, щоб не збивати темп учасників проєктної команди.
Команда Scrum (Scrum Team):
Скрам-події (Scrum Events): регулярні зустрічі, які допомагають команді координувати свою роботу:
Артефакти Scrum (Scrum Artifacts): інструменти, які допомагають керувати роботою та зробити процес розробки легшим і контрольованим:
З правилами розібралися. А як же виглядає типовий робочий процес команди, яка наслідує принципи фреймворку Scrum?
Здається, правил не мало, але розпочавши працювати на проєкті по Scrum, вже після першої ітерації робочий процес буде зрозумілим і комфортним 🙂
Kanban (Канбан) у перекладі з японської означає "картка" або "візуальна дошка". Уявіть собі дошку, розділену на кілька стовпців, що відображають різні стадії виконання завдання (наприклад, "Потрібно зробити", "В роботі", "На перевірці", "Готово"). Кожне завдання представлене окремою карткою, яка переміщується між стовпцями в міру виконання. PM, BA, розробники бачать і список задач, і статус виконання кожної задачі… Зручно, правда?
Kanban, як і інші підходи, які ми розібрали вище має свої правила та ритуали. Давайте розберемося в них.
Основні принципи Kanban:
Знаючи принципи, розглянемо, а як же налаштувати робочий процес по Kanban, щоб одразу отримати всі вигоди цього підходу.
Kanban часто використовується як самостійна методологія або як доповнення до інших підходів, таких як Scrum. Він особливо корисний для проєктів з постійним потоком завдань, так званим конвеєром. З поміж всіх інших методологій, саме Kanban вважається найбільш гнучкою моделлю через можливість відразу реагувати на зміни (без необхідності чекати завершення спринту як в Scrum).
Розуміння цих методологій є важливим для кожного, хто працює в ІТ, будь то PM, BA або розробник. Вибір правильного підходу залежить від специфіки проєкту, вимог замовника та особливостей команди. Agile та Waterfall представляють два основні філософські напрямки: гнучкість проти передбачуваності. Agile, у свою чергу, включає такі популярні фреймворки, як Scrum, що робить акцент на ітеративних спринтах та командній взаємодії, та Kanban, який фокусується на візуалізації потоку роботи та обмеженні незавершених завдань. Сподіваємося, ця стаття допомогла вам розібратися в основних концепціях і надихнула на подальше вивчення цієї захопливої сфери!
Розширте свої знання на нашому повному курсі навчання fullstack в ІТ компанії
GIT, HTML, CSS, JavaScript, TypeScript, Штучний інтелект, React, Redux, Linux, Node.js, PostgreSQL та MongoDB, Клієнт-серверна взаємодія, Docker, UNIT-тести, Спільна робота над проєктом, Індивідуальний проєкт.
ПерейтиРозширте свої знання на нашому повному курсі навчання проєктному менеджменту в ІТ компанії
Введення в ІТ, Технічна грамотність менеджера, Дослідження особливостей проєкту, Оцінка та планування задач, Контроль та реліз проєкту, Інструментарій розробника та штучний інтелект, Організація командної взаємодії, Закриття проєкту, Особливості продажів в ІТ.
Перейти