1. Введение в гибкие подходы

1.1 ЧТО ТАКОЕ AGILE?

Авторы раздела:
Бутвина Н. Л.
Алферов П. А.
Ожаровский А. В.
Данный раздел коротко отвечает на вопрос: «Что представляет собой Agile?» — и раскрывает его основные термины. Дается общее представление о подходах для тех, кто уже слышал такие слова, как Agile, Scrum и спринт, но не имел возможности детально изучить тему
Данный раздел коротко отвечает на вопрос: «Что представляет собой Agile?» — и раскрывает его основные термины. Дается общее представление о подходах для тех, кто уже слышал такие слова, как Agile, Scrum и спринт, но не имел возможности детально изучить тему
Время чтения: 8 мин.
Согласно современному пониманию, Agile (agile software development, от англ. agile — быстрый, проворный) — это набор принципов и подходов, направляющих ресурсы организации на быстрое создание продуктов, нужных клиентам. C 2001 года Agile применялся для создания программного обеспечения и рассматривался как семейство гибких подходов к управлению разработкой.

Agile — это не столько отдельная методология, сколько собирательное название различных методик и подходов к управлению, с помощью которых команда:

  • фокусируется на нуждах и целях клиентов;
  • упрощает оргструктуру и процессы;
  • выполняет работу короткими циклами;
  • максимально быстро создает ценный и необходимый для клиента результат, чтобы получить обратную связь;
  • активно использует обратную связь;
  • принимает полномочия и ответственность и демонстрирует высокий уровень самоорганизации;
  • берет за основу гуманистический подход.

Время чтения: 8 мин.
Согласно современному пониманию, Agile (agile software development, от англ. agile — быстрый, проворный) — это набор принципов и подходов, направляющих ресурсы организации на быстрое создание продуктов, нужных клиентам. C 2001 года Agile применялся для создания программного обеспечения и рассматривался как семейство гибких подходов к управлению разработкой.

Agile — это не столько отдельная методология, сколько собирательное название различных методик и подходов к управлению, с помощью которых команда:
  • фокусируется на нуждах и целях клиентов;
  • упрощает оргструктуру и процессы;
  • выполняет работу короткими циклами;
  • максимально быстро создает ценный и необходимый для клиента результат, чтобы получить обратную связь;
  • активно использует обратную связь;
  • принимает полномочия и ответственность и демонстрирует высокий уровень самоорганизации;
  • берет за основу гуманистический подход.
Дерюшкин А. Что такое Agile-подход и зачем он нужен бизнесу? // Scrum Trek. URL: https://scrumtrek.ru/blog/chto-takoe-agile-podhod-i-zachem-on-nuzhen-biznesu/
Подходы Agile являются не конечным состоянием, а, скорее, образом мышления (mindset) и жизни. Гибкие проекты реализуются в итеративноинкрементальном ключе. Это означает, что реализация проекта (создание продукта) ведется итерациями — небольшими этапами длительностью от 1 до 4 недель.

В конце каждой итерации (как правило, она называется спринтом) достигается конечный результат — создается версия продукта, набор функций и т. д. (см. раздел 3). Готовый результат (инкремент) полагается представить заинтересованным сторонам, возможно, конечным пользователям для получения обратной связи и принятия решения о выпуске или определения направлений улучшения/доработки.
Каждый инкремент должен иметь ценность в первую очередь для пользователей продукта, заказчиков и — в идеальном случае — для всех иных заинтересованных сторон (стейкхолдеров). Более того, каждый последующий инкремент привносит добавленную ценность по сравнению с предыдущим. Инкрементальная разработка помогает максимально быстро создать минимально жизнеспособный продукт (от англ. Minimum Viable Product, MVP) (см. раздел 3.2.6). С его помощью проверяются гипотезы и предположения о требуемых результатах проекта, организуется работа с обратной связью.
Разработчики манифеста: Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas, Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith.

Agile Manifesto был разработан и принят в 2001 году на лыжном курорте The Lodge at Snowbird в горах Юты (США). В разработке этого основополагающего документа Agile-подхода принимали участие 17 экспертов в области разработки ПО.

Agile Manifesto содержит 4 основные ценности и 12 принципов.

Четыре основные ценности Аgile:
  • Люди и взаимодействие важнее процессов и инструментов.
  • Работающий продукт важнее исчерпывающей документации.
  • Сотрудничество с заказчиком важнее согласования условий контракта.
  • Готовность к изменениям важнее следования первоначальному плану.
После перечисления четырех ценностей приводится крайне важное объяснение. При осознании и применении Agile одна из самых распространенных ошибок — отрицать то, что справа (процессы и инструменты, документация, условия контракта, следование плану). Agile не запрещает все это, но задает приоритеты, определяет степень важности, регулирует фокус внимания.

12 основополагающих принципов Agile-манифеста:
1. Наивысшим приоритетом для нас является удовлетворение потребностей заказчика благодаря регулярной и ранней поставке ценного программного обеспечения.

2. Изменение требований приветствуется даже на поздних стадиях разработки. Agile-процессы позволяют использовать изменения для обеспечения заказчику конкурентного преимущества.

3. Работающий продукт следует выпускать как можно чаще, с периодичностью от пары недель до пары месяцев.

4. На протяжении всего проекта разработчики и представители бизнеса должны ежедневно работать вместе.

5. Над проектом должны работать мотивированные профессионалы. Чтобы работа была сделана, создайте условия, обеспечьте поддержку и полностью доверьтесь им.

6. Непосредственное общение является наиболее практичным и эффективным способом обмена информацией как с самой командой, так и внутри команды.

7. Работающий продукт — основной показатель прогресса.

8. Инвесторы, разработчики и пользователи должны иметь возможность поддерживать постоянный ритм бесконечно. Agile помогает наладить такой устойчивый процесс разработки.

9. Постоянное внимание к техническому совершенству и качеству проектирования повышает гибкость проекта.

10. Простота — искусство минимизации лишней работы — крайне необходима.

11. Самые лучшие требования, архитектурные и технические решения рождаются у самоорганизующихся команд.

12. Команда должна систематически анализировать возможные способы улучшения эффективности и, соответственно, корректировать стиль своей работы.

Данные 12 принципов являются своеобразным чек-листом, который позволяет понять, насколько вы соответствуете Agile или даже что делать в сложном случае.

Взаимосвязь ценностей, принципов и конкретных инструментов Agile, которые группируются в тех или иных фреймворках (наборах инструментов и практик по применению гибких подходов), проиллюстрирована на рисунке 1.
Рисунок 1. Взаимосвязь ценностей, принципов и инструментов Agile
Сходство и различие между понятиями «методология» и «фреймворк» рассмотрены в статье: Wood M. Why You're Confusing Frameworks with Methodologies // Project Management. URL: https://www.projectmanagement.com/articles/278600/Why-Youre-Confusing-Frameworks-with-Methodologies.
Зыкова С. Agile, scrum, kanban: в чем разница и для чего использовать? // Rusbase. URL: https://rb.ru/story/agile-scrum-kanban/.
Зыкова С. Agile, scrum, kanban: в чем разница и для чего использовать? // Rusbase. URL: https://rb.ru/story/agile-scrum-kanban/.
Разные гибкие подходы к управлению развиваются под общим названием Agile-подходов, что иногда вызывает определенную путаницу в понимании (см. также раздел 3.1). На иллюстрации выше описана связь всех компонентов Agile, включая наиболее распространенные фреймворки (наборы инструментов и практик по применению гибких подходов) в частности Scrum и Kanban (см. раздел 1.4).

Важно также понять, что подразумевается под продуктом в данном документе, для чего приведем несколько определений.

Продукт проекта
(в понимании большинства классических подходов) — финальный результат проекта, который должен быть объективным, проверяемым и документированным.

Продукт
(в контексте гибких подходов) — материальный или нематериальный объект, услуга или сервис, который предоставляется для удовлетворения потребностей клиента и который можно вывести на рынок. Также предполагается, что продукт должен иметь измеримую ценность для клиента. При сравнении двух определений видно, что продуктом проекта может быть любой «артефакт», то есть результат целенаправленной деятельности человека. В гибком контексте это определение продукта более узкое, фактически содержит дополнительные требования. Далеко не у каждого «артефакта» есть свой клиент, потребности которого «артефакт» удовлетворяет и для которого имеет измеримую ценность, и при этом есть возможность представить его на рынке. Agile равно эффективен в рамках как проектного, так и продуктового подхода, соответственно, в данном документе большинство рекомендаций можно применять и в реализации проекта, и в создании продукта иным, «непроектным» способом. В случае если есть отличия в реализации разных подходов, это будет явно отмечено в тексте.
Куда дальше?
Куда дальше?