
Гайд гнучкими методологіями для рекрутерів (оновлено)
Питання різниці між Agile і Waterfall, Scrum і FDD — причина безкінечних суперечок розробників. Деякі з них вибудовують Agile-святилища, дотримуючись мінімальних правил, інші — беруть по шматочку від кожної методології. Ми ж не будемо брати участь у філософському холіварі, але розповімо вам must-have to know знання про гнучкі методології для рекрутерів.
Серед найактуальніших моделей розробки — каскадна та ітеративна. Розглянемо їх детальніше.
Каскадна модель
Суть каскадної моделі (Waterfall) у тому, щоб розбити увесь цикл розробки на етапи зі встановленими дедлайнами та вимогами. Так перехід до нового етапу можливий тільки після завершення попереднього.
Переваги цього підходу: ви будете точно знати, коли відбудеться реліз продукту, скільки коштує розробка, скільки людей варто залучити в команду, процес буде прозорим. Також є чітко оформлене та актуальне ТЗ, яке не бажано змінювати. Звідси й головний мінус цієї моделі: вона недостатньо гнучка та тягне за собою масивну теку документації. Якщо, наприклад, деякі функції стануть непотрібними, то всю програму доведеться переписувати заново.
Продуктові компанії частіше використовують каскадну модель, оскільки вони орієнтовані на результат.
Ітеративна модель
Ітеративні моделі створені, щоб розв’язувати головну проблему каскадної: вони максимально гнучкі. Суть такого підходу — розбити весь процес розробки на окремі ітерації. В кожну ітерацію входить і розробка, і тестування, і погодження, і ретроспектива.
Ітеративні моделі гнучкі та адаптивні до змін, вони орієнтовані на процес, а, отже, зможуть максимально задовольнити всі «забаганки» замовників та створити складний комплексний продукт. Зокрема буквально на перших етапах буде створено ПЗ, яке працює. Водночас такий підхід має багато мінусів: тривалий та розмитий процес розробки, відсутні або неточні ТЗ, часті (чи безглузді?) вступні, які засмучують розробників.
Ітеративні моделі частіше використовують в outsource-компаніях, оскільки вони більш орієнтовані на процес.
Найчастіше ітераційну модель асоціюють з філософією Agile, принципи якої були проголошені в маніфесті від розробників:
- Люди та взаємодія важливіші за процеси та інструменти;
- Продукт, який працює, важливіший, ніж вичерпна документація;
- Співробітництво з замовником важливіше, ніж погодження умов контракту;
- Готовність до змін важливіша за виконання початкового плану.
Серед найактуальніших методологій Agile: Feature Driven Development (FDD), eXtreme programming (XP) і Scrum. Послідовно розглянемо їх.
FDD — це метод систематичної розробки, орієнтований на замовника. Він використовується для великих та довгострокових проєктів. Список завдань розробника – це список «фічів», які потрібно додати в продукт. Так процес розробки розподіляється на ітерації, за які можна написати один блок функціоналу. Передбачається наявність чітких вимог та ведення документації та звітності, що дозволяє, з одного боку, залучати до розробки нових членів команди на будь-якому етапі, а з іншої, мінімізують помилки та непорозуміння.
XP — це метод, який об’єднав та вивів в абсолют усі кращі практики розробки. XP варто використовувати, коли замовник сам не впевнений у тому, який продукт хоче отримати або коли продукт досить складний (наприклад, для нішевих проєктів, де не існує готових рішень). Метод передбачає майже повну відсутність документації, високий рівень залученості замовника, особливу увагу до перевірки помилок, а отже, і знижує ризики, пов’язані з якістю коду. Застосовується тільки в програмуванні.
Scrum — найуніверсальніша адаптивна модель, яка дозволяє перейти до написання коду, навіть коли вимоги ще не до кінця зрозумілі, а на руках є тільки невелике MVP. В ньому розбивка на ітерації відбувається за часом, зазвичай кратна тижням, 1-4 тижні, найчастіше – один. Цей часовий проміжок називається Спринт. Під час планування спринту команда сама ставить собі цілі на цей спринт із загального списку завдань, а в кінці спринту обговорює результати (ретроспектива), дає висновки та будує плани на наступний спринт. Найактуальніше застосовувати Scrum в стартапах.
Kanban — це спосіб організації роботи, з якими стикаються навіть фахівці, далекі від IT. Застосовується в Scrum та інших гнучких методологіях. Головний атрибут Kanban’a (дошка) являє собою набір завдань (стікерів) розподілених за колонками (етапами розробки). Суть цього методу в тому, щоб налаштувати потік завдань, позбутися «простоїв» в процесах та рівномірно розподілити завдання між учасниками та командами. Через зручність та ефективність цей підхід застосовується в багатьох інших сферах: виробництві, маркетингу тощо.
В одному з наших матеріалів ми розповідали, як ми використовуємо принципи FDD в рекрутингу. Тому не обмежуйте свої знання тільки спілкуванням з розробниками: можливо, у вашій роботі також буде ефективним використовувати прийоми однієї з цих методологій.