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

Что представляет собой Agile?

Agile - это ускоряющая методология создания проектов. Она минимизирует риски посредством коротких (2 – 3 недели)циклов, или итераций, разработки.

Agile - гибкая методология разработки

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

  • проектирование;
  • анализ требований;
  • кодирование;
  • тестирование;
  • документирование.

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

Методы Agile

Методы Agile - это такие гибкие методологии, как Lean Development («Бережливая разработка ПО»), Scrum и др. Они были разработаны еще в начале 2000-х как альтернатива малоэффективным традиционным IT методам.

Методы Agile

Практически все аgile-команды сконцентрированы в одном офисе (bullpen). Офис включает product owner – заказчика, который и определяет требования к продукту. В качестве заказчика может выступать бизнес-аналитик, менеджер проекта или клиент. Кроме того, в офис могут входить и дизайнеры интерфейса, тестировщики, технические писатели. То есть методы Agile направлены в первую очередь на непосредственное общение.

Принципы Agile

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

Главные преимущества Agile

Качество web-продукта

Вовлечение заказчика в процесс каждой итерации дает возможность корректировать процесс, что неизменно повышает качество.

Высокая скорость разработки

Итерация длится не более 3-х недель, к концу этого срока обязательно есть результат.

Минимизация рисков

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

преимущества Agile

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

Прозрачность оплаты

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