Что такое Agile
ПОСЛУГИ
Agile — это просто
Перевод статьи «What is Agile Workflow? (ELI5)»
Давно слышите о том, что Agile — это классная и удобная методология для разработчиков софта, но вас отпугивают внушительные и подробные (иногда даже слишком) мануалы? В этой статье мы коротко и просто объясним, в чём суть этого подхода.
Agile — итеративный подход при работе над проектом. Ваша команда выпускает проект маленькими шагами с самого начала, а не показывает уже готовый продукт в самом конце.
Википедия описывает Agile так:
“Серия подходов к разработке программного обеспечения, ориентированных на использование итеративной разработки, динамическое формирование требований и обеспечение их реализации в результате постоянного взаимодействия внутри самоорганизующихся рабочих групп, состоящих из специалистов различного профиля”.
Почему именно Agile?
TL;DR — чтобы подстраиваться под постоянно меняющиеся требования.
Agile как подход признаёт, что у людей не очень с планированием и оцениванием. И в этом нет ничего плохого. Не имеет значения, насколько вы опытны, всё равно всегда остаётся что-то, что вы не могли предусмотреть или упустили из внимания.
Более традиционные подходы вроде Waterfall (каскадная модель) диктуют тотальное планирование, когда вы ничего не можете сделать, если этого нет в плане.
В любом проекте, будь то программное обеспечение, маркетинговая кампания или рекрутинговая стратегия, появятся дополнительные возможности или поменяются требования. Особенно в случае с крупными проектами. Поэтому новые факторы приходится либо игнорировать (обычно неидеально), либо ужимать план, погружая работу в хаос. Так зачем тогда вообще планировать, правда?
А вот и нет! Предусмотрите всю неизвестность заранее, встроив её в рабочий процесс. Некоторые лучшие идеи не приходят в голову до тех пор, пока вы не зайдёте достаточно далеко.
Что такое Agile?
TL;DR — различные практики, которые помогут вам легче приспосабливаться и убеждать свою команду в том, что она всегда работает над чем-то важным.
Agile — способность меняться легко и быстро.
Agile это про то, как разбить ваш огромный проект на ряд маленьких задач (обычно их называют пользовательскими историями) и определить наиболее приоритетные.
Определение приоритетов очень важно, по сути это и есть самое главное в Agile. Вам нужно убедиться, что команда сфокусирована на одном спринте или на наиболее важном на данный момент результате. Это будет гарантией того, что вы достигнете ваших бизнес-целей. Так ваша команда не потеряется в потоке запросов и требований и будет знать, что каждая подзадача, над которой она работает в данный момент, важна для прогресса всего проекта.
Пользовательские истории поставляются либо непрерывно, либо маленькими циклами, которые называются спринтами.
Как работает Agile?
TL;DR — Требования > План > Работа > Ревью > Повтор
Исходя из требований проекта составьте список всего, что должно произойти. Не переживайте, если забудете что-то, вы сможете добавить это позже.
Оцените каждый этап: по часам или по так называемым story point’ам (относительные оценки, которые выставляются в сравнении и отношении к другим историям). Есть вероятность, что результат будет несколько неточным и даст вам слабое представление о том, сколько времени займёт работа над проектом.
Установите приоритетность задач, самые важные — в начало очереди. Обычно в этой среде всё постоянно меняется, поэтому проверяйте приоритеты быстро и часто. Kanban очень реагирует на эту частоту. Scrum же основан на фиксированных циклах (спринтах), которые обычно длятся две недели.
Проанализируйте уже выполненную работу. Если вы не вписываетесь в план, увеличьте рабочую нагрузку над этим спринтом. Если такое случается постоянно, вы слишком амбициозны.
Scrum vs Kanban
TL;DR — это два основных фреймворка для Agile.
Scrum
· Деление работы на части, которые называются спринтами (обычно в спринте две недели);
· Спринты планируются исходя из требований для этого конкретного момента времени;
· Относительная оценка времени выполнения работ;
· Ревью каждого спринта, чтобы понять, как он прошёл и что можно было бы улучшить;
· Фидбек по поставляемому продукту;
· Ежедневные собрания (очень короткие).
Kanban
· Еженедельные собрания;
· Непрерывная разработка;
· Визуализация процесса на доске;
· Решение сначала самых важных задач;
· Поэтапные улучшения.
Заключение
Самое важное — удовлетворить конечного потребителя, будь то ваш клиент, владелец продукта, ваш босс или вы сами. Охватить все изменяющиеся требования в процессе работы над проектом позволит ранний и многоэтапный выпуск. Это уменьшает риск, потому что вы застрахованы от того, что выпустите неподходящий продукт или в принципе так ничего и не выпустите.