Как опытный поставщик услуг по разработке программного обеспечения, мы понимаем, что некоторые проекты лучше подходят для agile-разработки программного обеспечения, чем другие. Подходящими для agile-разработки проектами являются инновационные решения или пробные проекты с неопределенным объемом и требованиями.
СРАВНЕНИЕ КАСКАДНОГО ПРОЦЕССА И МЕТОДОЛОГИИ AGILE
Классический каскадный процесс – это документированный, формализованный подход по разработке программного обеспечения, который не подходит для некоторых типов проектов, по крайней мере, по нескольким из следующих причин:
- Постоянные изменения бизнес-среды, которые приводят к появлению новых сложностей.
- Программное обеспечение не статично, его необходимо совершенствовать, для удовлетворения новых требований.
- Не всегда можно с легкостью осуществить комплексный план обновлений.
- Иногда бывает слишком дорого проводить модернизацию программного обеспечения с использованием подхода SDLC.
- Прозрачность проекта не отвечает требованиям клиента и партнеров.
Основные принципы методологии Agile
Итеративный метод. Команда разрабатывает программное обеспечение с помощью коротких итераций, каждая из которых длится от одной до шести недель. Клиент может определить объем и цели следующей итерации в зависимости от результатов предыдущей.
Последовательный подход. Каждая итерация приводит к ценному инкременту продукта. Клиент может определить приоритетные функции продукта на каждую итерацию. Каждый инкремент продукта потенциально возможен.
Самоуправляемые команды. Организация разработчиков в самоуправляемую и хорошо мотивированную команду – это наиболее эффективный способ противостоять постоянно меняющимся требованиям бизнес-среды.
Адаптивный процесс. Команда сама подбирает необходимые процессы и процедуры для достижения поставленных целей.
Приведенный ниже график иллюстрирует стоимость изменений при обычном каскадном процессе:
Самое большое преимущество agile подхода при разработке ПО в том, что он позволяет оперативно реагировать на изменение требований проекта. Внесенные изменения могут быть быстро интегрированы, что, в свою очередь, повышает эффективность процесса разработки.
Постоянное взаимодействие команды и клиента поможет избежать упущений и недопонимания. Благодаря этому в сжатые сроки становится возможным поставить высококачественное программное обеспечение.
SCRUM КАК СИСТЕМА AGILE-РАЗРАБОТКИ
Scrum – одна из самых популярных agile-методик. Это среда разработки с простым набором правил. Они действуют как ограничения, которые заставляют команду стать высокомотивированной и интеллектуальной частью разработки.
Рисунок выше иллюстрирует жизненный цикл Scrum, который включает:
- Бэклог продукта это перечень основных нюансов и пожеланий клиента, функциональных и нефункциональных требований, а также критерии приемки.
- Во время совещания по планированию спринта команда определяет критерии приемки и основные цели.
- Бэклог спринта – это документ, содержащий информацию о том, как команда собирается реализовать функции в предстоящем спринте.
- Ежедневные scrum-совещания – это очень короткие встречи, проводимые каждый день, целью которых является повышение общей ответственности и обеспечение быстрого реагирования на любые сложности и изменения.
- Инкремент продукта – это результаты спринта, продемонстрированные владельцу продукта и/или партнерам во время обзора спринта.
РЕКОМЕНДАЦИИ ТОЧНЫХ РЕШЕНИЙ ПО ИСПОЛЬЗОВАНИЮ AGILE-ПОДХОДА
Agile-разработка – это совершенно ни на что не похожий метод разработки программного обеспечения. Перед использованием методологии agile для разработки программного обеспечения мы советуем вам убедиться, что соблюдены следующие условия:
- Тесное сотрудничество между членами команды и партнерами.
- Активное вовлечение клиентов/пользователей в проект.
- Предоставление полномочий членам команды по принятию решений в рамках проекта.
- Предусмотренные изменения требований к проекту и фиксированные сроки.
- Упрощенная документация и приемлемые требования.
- Разработка должна осуществляться небольшими итерациями с частыми поставками.
- Гарантия непрерывного тестирования на протяжении всего цикла разработки.
- Применение принципа 80/20, согласно которому 20% усилий дают 80% результата.