Гибкая методология разработки ПО

Рубрика:

Гибкая методология разработки (англ. название - Agile software development) - это общий термин, объединяющий под собой несколько существующих методик. Agile-методология определяет только принципы и ценности, на которые ориентируется команда разработчиков при построении успешного процесса разработки, а также стиль руководства этим процессом.

К гибкой методологии относятся такие эффективные методы разработки, как Feature-Driven Development (FDD), Scrum, Crystal Clear, eXtreme Programming (XP). Свое наименование технология получила благодаря гибкому процессу разработки программного обеспечения в условиях постоянно изменяющихся требований. «Гибкая» разработка программного обеспечения также используется в качестве подстройки RUP или MSF, для придания этим методологиям большей адаптивности.

 Процесс проведения разработки программного обеспечения по гибкой методологии в большинстве случаев предусматривает постоянное взаимодействие с заказчиком и серию коротких итераций, приводящих к выпуску промежуточных работоспособных продуктов, обладающих не полной функциональностью. На каждую итерацию отводится определенное количество времени. Например, по методологии eXtreme Programming (XP) одна итерация длится две-три недели, в Scrum – до одного месяца. По этой причине гибкая методология является ускоренной, облегченной, по сравнению с традиционными моделями («водопад» и т.д.).

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

Наиболее эффективной формой взаимодействия между разработчиками внутри команды и с заказчиками считается личные встречи и устное общение. Поэтому большинство agile-команд располагаются в общем офисе (т.н. bullpen). При разработке проекта в офисе необходимо обязательное присутствие «заказчика» (англ. - product owner), в лице непосредственного заказчика или представителя. Именно заказчиком определяются требования к продукту. Роль product owner'а выполняет чаще всего менеджер проекта либо бизнес-аналитик, реже сам клиент. Офис agile-разработки включает в себя также специалистов в области обеспечения качества (тестировщики), дизайнеров, менеджеров, технических писателей.

Основным объектом agile-модели является рабочий продукт, в процессе разработки которого большее значение отдается общению, чем формализованным правилам и уменьшению объемов проектной документации. По этой причине, по сравнению с другими моделями разработки, agile-методология часто подвергается критике, как недисциплинированной.

Принципы Agile-разработки определяются на основе манифеста о гибкой разработке ПО - Agile Manifesto. Принятие манифеста Agile Manifesto состоялось в середине февраля 2001 года, на горнолыжной базе The Lodge at Snowbird, штат Юта. Данный манифест был одобрен и подписан представителями методологий Extreme programming (XP), Crystal Clear, DSDM, Feature-Driven Development, Scrum, Adaptive Software Development, Pragmatic Programming. Гибкая методология разработки использовалась многими компаниями и до принятия манифеста, однако именно после этого события произошло вхождение Agile-разработки в массы.

Манифест содержит 4 идеи и 12 принципов, при этом практические советы полностью отсутствуют, что определяет саму идеологию Agile.

Основные идеи, представленные в Agile Manifesto, расставляют приоритеты, которым следует команда разработчиков. По ним первичный приоритет отводится на взаимодействие между личностями, работающему программному обеспечению, сотрудничеству с заказчиком, реакции на изменения. При этом выбор инструментов разработки, документирование, следование плану работ, имеет второстепенное значение.

Принципы гибкой разработки, согласно Agile Manifesto:

  1. удовлетворение потребностей клиента за счёт быстрой, без задержек поставки ПО;

  2. приветствие изменений первоначальных требований, на любом этапе разработки;

  3. высокая периодичность поставки рабочего ПО (каждую неделю, месяц);

  4. личное общение заказчика и разработчиков на всех этапах проекта;

  5. повышенное внимание уделяется мотивации проектной команды и обеспечение поддержкой, комфортными условиями работы;

  6. для передачи информации рекомендуется личный разговор;

  7. измерение прогресса разработки предоставлением работающего ПО;

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

  9. постоянное улучшение эргономики и дизайна продукта;

  10. стремление к простоте, без выполнения лишней работы;

  11. стремление к созданию самоорганизованной команды;

  12. непрерывный процесс адаптации к изменениям.

 

Другие статьи по методам разработки программного обеспечения:

1. Итеративная разработка программного обеспечения

2. Спиральная модель разработки ПО 

3. Модель водопада, как модель проектирования программного обеспечения