Agile (гибкие)

Agile (гибкие)

Гибкие (англ. agile ) методики разработки позволяют сократить затраты на разработку до 40%. Они нацелены на минимизацию рисков неудачи проекта.

Заказать сайт, задать вопрос 

Концепция гибкой разработки родилась в 90х годах прошлого века, под влиянием масштабного кризиса отрасли разработки ПО, когда классическая "водопадная" ("waterfall") модель стала неэффективной и приводила к постоянным срывам сроков проектов, притом, что команды разработчиков работали более 100 (!!!) часов в неделю (!!!!!). В настоящее время "гибкие" методики используются всеми ведущими мировыми компаниям - Google, Microsoft, Intel.

Наша компания применяет гибкие методики в разработке сайтов и порталов с 2004 года.

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

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

  1. планирование,
  2. анализ требований,
  3. проектирование,
  4. кодирование,
  5. тестирование,
  6. документирование.

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

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

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

Принципы Agile

Agile — семейство процессов разработки, а не единственный подход в разработке программного обеспечения, и определяется Agile Manifesto. Agile не включает практик, а определяет ценности и принципы, которыми руководствуются успешные команды.

Agile Manifesto разработан и принят 11-13 февраля 2001 года на лыжном курорте The Lodge at Snowbird в горах Юты. Манифест подписали представители следующих методологий eXtreme Programming (XP), Scrum, DSDM, Adaptive Software Development, Crystal Clear, Feature-Driven Development, Pragmatic Programming. Agile Manifesto cодержит 4 ценности, 12 принципов и не содержит практик.

Подход включает ценности, значимость которых нивелирована:

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

Принципы, которые разъясняет Agile Manifesto:

  • удовлетворение клиента за счёт ранней и бесперебойной поставки ценного ПО;
  • приветствие изменения требований, даже в конце разработки ( это может повысить конкурентоспособность полученного продукта);
  • частая поставка рабочего ПО (каждый месяц или неделю или ещё чаще);
  • тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта;
  • проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием;
  • рекомендуемый метод передачи информации — личный разговор (лицом к лицу);
  • работающее ПО — лучший измеритель прогресса;
  • спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределенный срок;
  • постоянное внимание на улучшение технического мастерства и удобный дизайн;
  • простота — искусство НЕ делать лишней работы;
  • лучшие архитектура, требования и дизайн получаются у самоорганизованной команды;
  • постоянная (частая) адаптация (улучшение эффективности работы) к изменяющимся обстоятельствам.