Что такое Agile
Происходит разбитие продукта на краткосрочные задачи, распределение между сотрудниками. Метод называется спринт. Он помогает команде разработчиков поставлять ценность потребителям быстрее, с минимальными проблемами.
Agile — группа техник по гибкому управлению проектами в команде разработки программного обеспечения.
Вместо выпуска целого продукта, по принципам Agile, выполняется работа в рамках маленьких, но удобных для сотрудников инкрементов. Что сокращает время реакции команды на изменения.
По классической каскадной схеме, один сотрудник завершает работу над задачей и передает ее следующему. Происходит самоустранение первого специалиста от дальнейшего участия в процессе. Метод Agile основан на активном взаимодействии участников команды до закрытия проекта.
Процесс Agile построен на:
-
Открытом диалоге
-
Совместной работе
-
Доверии сотрудников
-
Адаптации
Приоритеты расставляет руководитель проекта, а методы выполнения работы определяет команда. Сотрудники самостоятельно распределяют между собой задачи, обязанности.
Методология Agile не сводится к группе определенных приемов по разработке программного обеспечения. Каждая из методик основана на беспрерывном выполнении цикла обратной связи для улучшения продукта.
Для управления проектами применяются различные фреймворки:
Гибкая методология разработки ПО предполагает постоянное участие заказчиков, проверку процесса работы со стороны клиента, команды разработчиков.
Что входит в Agile?
Гибкая методология управления проектами состоит из групп методик. Рассмортим каждую подробнее.
Agile Modeling
Группа ценностей, практик, принципов для создания модели ПО. Применяют в качестве составляющей полноценной техники разработки программного обеспечения.
Принципы:
-
Взаимодействие стейкхолдеров
-
Мотивация в создании упрощенных решений по ТЗ
-
Обратная связь
-
Ответственность за поиск, принятие решений
Unefied Process
Облегченный вариант другой методологии по созданию программного обеспечения — RUP. Создатель Скотт Амблер определил ключевые принципы AUP:
-
Определение командой целей, задач
-
Упрощение схем работы метода Agile
-
Соответствие правилам методологии
-
Фокусировка на важных активностях
-
Применение удобных инструментов
-
Индивидуальный подгон Unefied Process под потребности продукта
Data Method
Data Method Agile — система методик гибкой разработки ПО с упором на создание требований, поиск решений посредством работы с другими командами.
Суть Agile Data Method выделяется следующими аспектами:
-
Набор данных — фундамент
-
Проблемы — определяются посредством четкого определения цели, концепции задачи
-
Рабочие группы — для поддержки рабочих групп существует enterprise groups
-
Уникальность — комбинация инструментария с разных методов
-
Командная работа — исключается вариант работы в одиночку
-
«Сладкое пятно» — поиск максимально подходящего решения задачи во избежание крайностей
Essential Unified Process
Отвечает за улучшение RUP. Практика состоит из:
-
Создания сценария применения методик, поведения системы
-
Итерационная разработка рабочих групп кода на короткие циклы
-
Работа над сплочением команды для повышения эффективности работы
-
Процессуальные методы
Getting Real
Используется для стартапов. Требует выжимать максимум из особенностей маленьких проектов. Включает десятки инструментов гибкой разработки, основные из них:
-
Возможности проекта
-
Инструментов
-
Набора опций
-
Организации процесса
-
Встреч
-
Собраний
Не пользуется большим спросом, несмотря на обширный перечень инструментария.
OpenUP
Считается независимой методологией от опций. Не имеет четкой структуры. Применяется OpenUP Agile для определения скорости работы рабочей группы, проведения планерок по окончанию итерации, создания концепции микроэтапов, тестирования с применением чеклистов.
Основные принципы
Манифест Agile в 2022 году определяет 12 принципов, которым нужно придерживаться в процессе разработки проектов:
-
Удовлетворение нужд клиента посредством постоянного и быстрого предоставления ценного ПО. Заказчикам нужно регулярно отправлять результаты проделанной работы, интеграциям до закрытия проекта
-
Внесение изменений на всех этапах разработки. Авторы манифеста твердят, что изменения сложно вносить в проект, если они предоставлены в последний момент. Принцип гласит обратное, разработки способны адаптироваться ко всем переменам на любом этапе проектирования
-
Выпуск рабочих частей продукта до завершения работы над проектом. Поскольку проекты, где используется Agile, разбиваются на спринты, готовые интервалы можно сразу запускать в работу
-
Коллективная работа. Все участники должны поддерживать тесную рабочую связь, учувствовать в доработках, вносить изменения, совещаться
-
Мотивация и свобода. Успешно завершенные задачи – результат работы мотивированных сотрудников. Перед ними полностью открыт доступ к выбору инструментария. Нужно создавать команду на основании способностей сотрудников, распределять обязанности по тому же принципу
-
Личное взаимодействие коллектива. Здесь исключаются телефонные переговоры, переписки по Email-почте. Максимальный эффект принесут только очные встречи. В крайнем случае к команде присоединяются удаленные участники проекта посредством видео-конференций
-
Рабочий продукт. Это главный результат прогресса. В плане приоритетов стоит выделить именно данный фактор, а не другие требования
-
Поддержка стабильного ритма работы с инвесторами и командой. Выполнение каждого задание, связь с владельцем проекта должна соответствовать заданному интервалу
-
Цель — совершенство, повышение качества. Простыми словами, каждая новая итерация должна быть лучше предыдущей
-
Минимализм. Делаем ровно столько, сколько требуется для получения успешного результата. Исключаем любые дополнительные этапы, задачи, изменения, не повышающие ценность продукта
-
Самоорганизация. Лучший проект получится у команды, которая самостоятельно распределяет обязанности. Подбирает инструменты, внедряет инновации. Не стоит контролировать каждый шаг
-
Систематичность анализа. Регулярно проводите анализ, выявляйте слабые стороны, ищите оптимальные решения
Преимущества и недостатки
Перечислим основные плюсы и минусы Agile. Преимущества:
-
Беспрерывное взаимодействие с заказчиками — от концепции до разработки
-
Способность адаптации — изменения в проект принимаются на любом этапе, но с минимальным вложением усилий
-
Быстрая сдача результатов — непрерывный процесс и предоставление функционирующих частей проекта не заставят клиента долго ждать, а команда быстрее завершит работу
-
Сокращение или полное исключение рисков — достигается путем регулярного предоставления версий продукта клиенту и скорого получения реакций
Риски применения видов Agile:
Пример
Разберем пример Agile на масштабной корпорации Microsoft.
Направление бизнеса: технологии, компьютерное ПО, аппаратное обеспечение
Количество сотрудников: больше 100000 человек
Ситуация: в период активного развития в компании появилась проблема с подчиненными и клиентами. Возникли вопросы во время запуска Microsoft Vista, в 2007 году. По проведению анализов, принято решение – внедрить методики и принципы Agile.
Что изменилось: выпуск обновлений проводился каждые 7 дней, в результате разработчики получали регулярный и быстрый фидбек.