Из подготовки к защите, но на человеческом #2

Agile немного о гибкости

Agile - это методология, которая подразумевает гибкие процессы, на базе которой основываются методы, объединённые принципом частоты поставки ценности и быстротой обратной связи. Самое популярное ответвление - Scrum.

Основа методологии - краткие итерации, после которых продукт или его часть должны быть к использованию пользователем. Команда сама решает каким путём достичь цели, сохраняя гибкость планирования и исполнения. Методология противопоставляет детальному согласованию и ТЗ живое общение и стремление как можно быстрее достичь желаемого результата.

Проекты, в которых характерно использовать Agile:

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

Инициация проекта (Product Discovery&Roadmapping)

Как было сказано ранее, методология не подразумевает большого этапа создания и утверждения ТЗ. Вместо этого команда договаривается о "виденье продукта" (Vision), которое должно зафиксировать какую проблему решает создаваемый продукт. Также на этапе инициации определяется владелец продукта (Product Owner) - роль, которая будет отвечать за ценность и корректировать направление работ. Создается бэклог продукта (Product Backlog) - динамичный список, с расставленными приоритетами, который включает в себя полный список работ по проекту. По сути это и есть дорожная карта (Roadmap), но не в виде графика, а в виде списка, расположенного в порядке приоритетов. В завершении этапа инициации создается кросс-функциональная команда, которая должна уметь самоорганизовываться.

Цикл спринта

Спринт, длиной две-четыре недели, является отдельным проектом. Спринт команда планирует вместе с владельцем продукта, выбирая задачи из бэклога продукта. Также проводится ежедневный стендап (Daily Scrum), обсуждение в течении пятнадцати-двадцати минут для ответа на вопросы: "что сделал вчера? что сделаю сегодня? какие есть препятствия?". Команда самостоятельно организует работу, синхронизируя работы ежедневно. По завершению спринта команда демонстрирует заинтересованным сторонам (стейкхолдерам) готовый функционал. Живая демонстрация необходима для получения обратной связи, которую заносят в бэклог продукта.

Завершение (Release&Beyond)

В Agile нет единого завершения "по плану". Выпуск продукта (окончание проекта) может произойти в конце любого спринта, когда ценность функционала достигает нужного уровня. Данное решение принимается владельцем продукта, но команда не распускается, а переходит к следующему проекту.