Agile vs традиційна методологія розробки програмного забезпечення
Сьогодні в галузі програмного забезпечення використовується низка різних методологій розробки програмного забезпечення. Метод розробки водоспаду - один з найбільш ранніх методів розробки програмного забезпечення. V-Model, RUP та кілька інших лінійних, ітеративних та комбінованих лінійно-ітеративних методів, що з'явилися після методології водоспаду, мали на меті усунути багато питань методу водоспаду. Усі ці попередні методології називаються традиційними методологіями розробки програмного забезпечення. Модель Agile - це більш нова модель розробки програмного забезпечення, введена для усунення недоліків, виявлених у традиційних моделях. Основна увага Agile - включити тестування якомога раніше та випустити робочу версію продукту дуже рано, розбивши систему на дуже малі та керовані підрозділи.
Що таке традиційна методологія розробки програмного забезпечення?
Програмні методології, такі як метод Waterfall, V-Model та RUP, називаються традиційними методологіями розробки програмного забезпечення. Методологія водоспаду - одна з найбільш ранніх моделей розробки програмного забезпечення. Як випливає з назви, це послідовний процес, під час якого прогрес проходить через кілька етапів (аналіз потреб, проектування, розробка, тестування та впровадження) зверху вниз, аналогічно водоспаду. V-Model розглядається як розширення моделі розробки програмного забезпечення Waterfall. V-Model використовує однакові взаємозв'язки між фазами, визначеними в моделі Водоспаду. Але замість того, щоб лінійно спускатися (як модель водоспаду), V-Model спускається по діагоналі, а потім рухається назад вгору (після фази кодування), утворюючи форму літери V. RUP (Раціональний об'єднаний процес) є пристосованою рамкою процесу (не єдиний конкретний процес), який може бути налаштований організацією розвитку відповідно до їх потреб. Трохи схожий на водоспад, він має зафіксовані фази як зародження, розробку, будівництво та перехід. Але на відміну від водоспаду, RUP - це ітераційний процес.
Що таке Agile?
Agile - це дуже недавня методологія розробки програмного забезпечення (або, правильніше, група методологій), заснована на маніфесті спритності. Це було розроблено для вирішення деяких недоліків у традиційних методологіях розробки програмного забезпечення. Agile методи засновані на наданні високого пріоритету участі клієнтів на початку циклу розробки. Він рекомендує включати тестування замовником якнайшвидше та часто, наскільки це можливо. Тестування проводиться в кожній точці, коли стає доступною стабільна версія. Фундація Agile базується на тестуванні починаючи з початку проекту та продовжуючи його до кінця проекту. Програмування Scrum і Extreme - це дві найпопулярніші варіанти методів Agile.
Ключовим значенням Agile є «якість - це відповідальність команди», яка підкреслює, що за якість програмного забезпечення покладається відповідальність всієї команди (а не лише на тестувальну команду). Ще один важливий аспект Agile - це розбиття програмного забезпечення на менші керовані частини та дуже швидка доставка їх до замовника. Постачання робочого продукту є надзвичайно важливим. Потім команда продовжує вдосконалювати програмне забезпечення та здійснювати постійне обслуговування на кожному великому кроці. Це досягається за рахунок дуже коротких циклів випуску (званих спринтами в Scrum) та отримання зворотного зв'язку для покращення в кінці кожного циклу. Співробітники без особливих взаємодій команди, такі як розробники та тестери за попередніми методами, тепер працюють разом у рамках Agile моделі.
Чим відрізняється Agile від традиційної методології розробки програмного забезпечення?
Хоча метод Agile заснований на ітераційному розвитку, оскільки деякі традиційні підходи, Agile та Traditional методології мають ключові відмінності. Традиційні підходи використовують планування як свій механізм управління, тоді як моделі Agile використовують зворотний зв'язок від користувачів як основний механізм управління. Agile можна назвати підходом, орієнтованим на людей, ніж традиційні методи. Модель Agile доставляє робочу версію продукту дуже рано в порівнянні з традиційними методологіями, так що замовник може реалізувати деякі переваги на початку. Час циклу тестування Agile порівняно короткий порівняно з традиційними методами, оскільки тестування проводиться паралельно розробці. Більшість традиційних моделей дуже жорсткі і порівняно менш гнучкі, ніж модель Agile. Через всі ці переваги в даний час Agile віддається перевазі традиційним методологіям.