Основные проблемы при разработке программного обеспечения – нарушение сроков и превышение бюджета – не всегда возникают в результате низкого профессионализма программиста. Чаще всего причина их возникновения – ошибочный процесс разработки. В таких случаях просто необходима его оптимизация.
Что представляет собой Agile?
Agile - это ускоряющая методология создания проектов. Она минимизирует риски посредством коротких (2 – 3 недели)циклов, или итераций, разработки.
Отдельная итерация представляет собой миниатюрный программный проект. Она включает все необходимые для выдачи мини-прироста по фукциональности задачи, а именно:
- проектирование;
- анализ требований;
- кодирование;
- тестирование;
- документирование.
Обычно отдельной итерации недостаточно для выпуска новой версии продукта, но подразумевается, что в конце каждой итерации гибкий программный проект готов к выпуску. То есть проект можно разделить на маленькие части, приносящие прибыль уже сразу после разработки. Каждая итерация призвана решать приоритетные на момент итерации задачи. По окончании каждой итерации командой выполняется переоценка приорететных задач разработки.
Методы Agile
Методы Agile - это такие гибкие методологии, как Lean Development («Бережливая разработка ПО»), Scrum и др. Они были разработаны еще в начале 2000-х как альтернатива малоэффективным традиционным IT методам.
Практически все аgile-команды сконцентрированы в одном офисе (bullpen). Офис включает product owner – заказчика, который и определяет требования к продукту. В качестве заказчика может выступать бизнес-аналитик, менеджер проекта или клиент. Кроме того, в офис могут входить и дизайнеры интерфейса, тестировщики, технические писатели. То есть методы Agile направлены в первую очередь на непосредственное общение.
Принципы Agile
Принципы agile заключаются в широком спектре процессов разработки, определяемых Agile Manifesto и направленных на успех команд.
Главные преимущества Agile
Качество web-продукта
Вовлечение заказчика в процесс каждой итерации дает возможность корректировать процесс, что неизменно повышает качество.
Высокая скорость разработки
Итерация длится не более 3-х недель, к концу этого срока обязательно есть результат.
Минимизация рисков
Крупный проект дает возможность заказчику оплатить несколько итераций и в ходе работы понять, что он вовремя получит именно то, что хочет и за приемлемую цену. Водопадные модели (с применением спецификаций и технических заданий) таких возможностей не дают.
Заказчик всегда имеет возможность наблюдать за ходом разработки, корректировать фунуциональность проекта, тестировать или запускать его, даже может остановить его в любой момент.
Прозрачность оплаты
Оплачивается функциональность проекта, соответственно, чем больше функций, тем выше стоимость. Отсюда возможность управлять стоимостью проекта. Минимальное количество необходимых функций позволяет удешевить проект. Завершение каждой итерации дает возможность не только увидеть, за что были заплачены деньги, но и сразу же начать получать доход.