Термін | Визначення |
Agile | Буквально — гнучкий. Це радше не SDLC модель розробки програмного забезпечення, а підхід: гнучкий підхід до виконання завдань замовника, де вимоги можуть змінюватися, результат видимий швидко і є предметом до обговорення і покращення, робота гнучко реорганізується на користь ефективності й швидкості результату, а не на користь дотримання процесу. Agile розуміють як використання на проекті гнучких підходів, таких як Scrum, Kanban, Extreme Programming та інших, в яких вимоги і рішення розвиваються на основі співпраці між собою учасників самоорганізованої, крос-функціональної команди. Це сприяє адаптивному плануванню, еволюційному розвитку, ранньому наданню продукту, постійному вдосконаленню, дозволяє швидко і гнучко реагувати на зміни. |
Sprint | Це відрізок часу, який береться для виконання сформованого списку завдань. Рекомендується брати 1-4 тижні (тривалість визначається командою один раз). |
Backlog | Це список всіх робіт. Можна сказати, що це проектний щоденник загального користування. |
Plan the Next Iteration Планування наступної ітерації — планування робіт для наступної ітерації.
Product Backlog Список завдань по продукту — створення повного списку всіх загальних завдань, при реалізації яких ми отримаємо кінцевий продукт.
Sprint Planning Планування спринта — планування завдань на Спринт, в якій береться кілька найважливіших загальних завдань з Product Backlog, які реалістично виконати протягом періоду стринта (1-4 тижні), ці завдання в свою чергу розбиваються на дрібніші і детальніші робочі завдання. Як результат, створюється Sprint Backlog.
Sprint Backlog Список завдань на спринт — це список завдань, який визначено і погоджено на найближчий звітний період. Завдання в спринт-беклог беруться з Product Backlog.
Sprint Спринт — це період, коли завдання виконуються: пишеться код, тестується, виправляються помилки, перетестовуються і т.д. Що не зроблене в поточному спринті потрапляє або в Product Backlog, або в наступний спринт, залежно від важливості. Спринти повторюються ітеративно (циклічно).
Potentially Shippable Software Програмне забезпечення потенційно готове до відправки клієнту — в кінці спринту отримується готовий до показу клієнту продукт, демонструється клієнту, отримуються зауваження, що формує роботу на наступний спринт. Якщо клієнт повністю задоволений, чи поспішає — може забрати вже цей продукт.
Agile Manifesto
Agile маніфест базується на 10 принципах:
- Задоволення потреб клієнта за допомогою раннього і постійного надання цінного програмного забезпечення.
- Вітаються зміни вимог, навіть на пізніх фазах розробки.
- Робоча програма віддається клієнту часто (тижні, а не місяці).
- Близька, щоденна співпраця між людьми бізнесу та розробниками.
- Проекти будуються навколо мотивованих індивідів, яким довіряють.
- Особиста розмова є найкращою формою спілкування.
- Робоча програма є основним критерієм прогресу.
- Постійна розробка, що в змозі підтримувати сталий темп.
- Постійна увага до технічної досконалості і хорошого дизайну.
- Простота — мистецтво максимізації обсягу роботи, яку не треба робити – важлива!
Слід зазначити, що гнучкі методології Agile спочатку проектувалися для продуктів, вимоги до розробки яких змінюються протягом всього процесу їх створення. В цьому і полягає їх ключова відмінність від класичних методологій, зокрема, моделі Waterfall, для яких характерні довгі узгодження з приводу найменших змін в проекті.
Якщо говорити про переваги і недоліки гнучких методологій в цілому, то головним мінусом стане “плаваюча” оцінка термінів розробки та бюджету, що постійно змінюються паралельно коригування вимог. До плюсів же Agile-методів, безумовно, варто віднести низькі терміни виробництва продукту і відсутність простоїв на час погодження проектної документації.