Agile (Гибкие методологии)

Agile (Семейство гибких методологий) - это семейство подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля.
Четыре ключевые ценности Agile:
- Основное внимание уделяется людям, работающим над проектом, и их взаимодействию, а не жестким правилам и инструментам
- Важнее создать рабочий продукт, чем тратить слишком много времени на документацию
- Постоянное сотрудничество с клиентом и быстрая реакция на его запросы важнее формальных договоренностей
- Быстрая адаптация к изменениям приоритетнее следования первоначальному плану
Если вы заметили, то я преписал, что agile не просто методология, а семейство методологий, которое содержит в себе две основные методологии: это SCRUM и Kanban. Давайте рассмотрим им изх немножечко подробнее.

Scrum
Scrum - это методология гибкой разработки программного обеспечения из семейства методологий Agile. Scrum делает акцент на регулярной демонстрации готового функционала клиенту и быстрой адаптации к изменениям, что сразу закрывает основные минусы Waterfall, но у SCRUM тоже есть свои минусы, которые мы обговорим вместе с плюсами немного позже.
Суть этой методологии заключает в том, что при её использовании проект разбивается на короткие итерации, называемые спринтами (обычно спринт идёт от 1 до 4 недель). В конце каждого спринта команда предоставляет готовую часть продукта, которую уже можно использовать или тестировать. При этом в начале проекта нет полного представления о конечном продукте: требования могут изменяться в процессе разработки, чего при сравнении у Waterfall нет.
Давайте, чтобы понятно было для чего, как и где используют Scrum пройдёмся по основным вопросам относительно него:
Зачем нужен Scrum?
Scrum используют в проектах, где требования могут меняться по ходу работы. Это особенно полезно, когда команда ещё не знает финальный вид продукта на 100% и хочет регулярно сверяться с заказчиком или пользователями. Такой подход позволяет:
- быстрее получить результат
- раньше замечать ошибки
- проще реагировать на изменения, не то что Waterfall)
Как работает Scrum?
Работа в Scrum строится циклично и закономерно, повторяясь:
- Сначала собирается список задач и идей по продукту, его называют backlog (бэклог)
- Затем команда выбирает, что сможет сделать в ближайший спринт (цикл)
- Во время спринта идёт работа над выбранными задачами на шаге 2
- В конце команда показывает результат (пользователям, заказчику, тимлиду или директору проекта)
- После этого обсуждает, что получилось хорошо, а что можно улучшить ещё
- Далее начинается следующий спринт (см. шаг 2)
То есть, Scrum является эдаким циклом while True, который с каждым циклом (итерацией в нашем случае) делает твой проект только лучше. И именно этим он хорош; поэтому SCRUM самая популярная методология среди всех существующих, коих знаем мы не много.
Основные элементы Scrum
Product Backlog
Формально: Product Backlog - это упорядоченный по приоритету список всех задач, улучшений, багов и требований, необходимых для развития продукта. Он служит единым источником информации, определяет планы разработки и постоянно обновляется в соответствии с рынком и обратной связью. Самые важные задачи находятся вверху списка
Неформально: Бэклог - это список всех вещей для проекта, которые будут реализованы
Sprint Backlog
По факту, это задачи, которые команда разработчиков проекта выбрала на созвоне/встрече выбрала по завершению спринта/итерации перед началом нового и для нового спринта
Спринт
Спринт - это промежуток времени, цикл, за время которого должны выполниться поставленный спринт-бэклог. В среднем, спринт проходит от 1 до 4 недель, то бишь 1 месяц зачастую.
Daily Scrum
Daily Scrum (A.K.A Дэйли) - это ежедневный "созвон" разработчиков команды, которые деляться результатами за день и рассказывают что планируют делать завтра и какие препятствия встретили сегодня на пути, нужна ли им в этом помощь. Что-то типо brain-шторма)
Sprint Review
Так называют момент, когда команда разработчиков и сотрудников показывают свои успехи за прошедший спринт. Зачастую отображение сделанного делают для инвестора, начальства или чего-то ещё
Роли в Scrum
Product Owner
Отвечает за то, что именно должно быть сделано. Он управляет бэклогом, определяет приоритеты и следит за тем, чтобы команда работала над действительно важными задачами.
Scrum Master
Следит за тем, чтобы Scrum-процесс работал верно. Помогает команде убирать препятствия, улучшать взаимодействие и соблюдать принципы Scrum, не выходя за его рамки
Команда разработки
Это специалисты, которые выполняют задачи спринта и создают результат. В команде могут быть разработчики, аналитики, тестировщики, дизайнеры и другие участники проекта, которые нужны проекту.
Преимущества и недостатки
- Плюсы
- Минусы
- Быстрый цикл работы, по сравнению с Waterfal
- Гибкость и адаптация к изменениям, происходит от перевода
- Постоянная обратная связь от других разработчиков
- Понятный ритм работы команды
- Требует очень холрошей и сильной дисциплины
- Многое в SCRUM зависит от команды
- При использовании такой стратегии, ежедневные созвоны могут сильно утомлять
- Не всегда удобен для задач с фиксированным планом
Kanban (Канбан)
Kanban - это подход к организации работы, при котором задачи визуализируются на доске и проходят через этапы выполнения.
В отличие от Scrum, в Kanban нет спринтов и жёстких циклов. Работа идёт непрерывно: задачи добавляются, выполняются и завершаются по мере готовности команды.
Зачем нужен Kanban?
Kanban используют, когда задачи поступают постоянно и важно поддерживать стабильный поток работы. Такой подход помогает видеть весь процесс работы, быстрее находить узкие места и не перегружать команду.
Как работает Kanban?
Работа в Kanban строится, как непрерывный поток:
- Все задачи попадают в общий список (НЕ путать с бэклогом)
- Они отображаются на доске
- Команда берёт задачи в работу по мере освобождения
- Задачи проходят через этапы (Например, To Do → In Progress → Done)
- После завершения задача считается готовой
Основные элементы Kanban
Kanban-доска
Это визуальная доска с колонками, которые отражают этапы работы. Всего этих этапов три:
- To Do (Сделать)
- In Progress (В работе)
- Done (Готово)
WIP-лимиты
Ограничение на количество задач в работе. Помогает команде не брать слишком много задач одновременно.
Преимущества и недостатки
- Плюсы
- Минусы
- Простота и понятность доски и процесса
- Гибкость без жёстких рамок по времени и ресурсам
- Помогает выявлять узкие места
- Подходит для постоянного потока задач
- Меньше структуры по сравнению с Scrum
- Сложнее планировать сроки
- Требует самодисциплины команды
- Может возникнуть хаос без правил