Статьи
Home
›
News
Agile или Waterfall — какой
вариант соответствует
вашему бизнесу?
29.08.2018
Противостояние Agile и Waterfall не столько теоретическое, сколько практическое. Выбор методики, не подходящей под ваш проект, в лучшем случае существенно затормозит его развитие, в худшем — отправит в список «ТОП-провалов года».
Гибкая и каскадная модели разработки проекта (Agile и Waterfall соответственно) — одни из наиболее популярных среди прочих методологий управления. Изучив особенности конкретно вашего проекта, и вооружившись знаниями из этой статьи, вы сможете с полной уверенностью ответить на вопрос: «Что подойдёт моему бизнесу — Agile или Waterfall?»
Agile — система идей и принципов «гибкого» управления проектами, на основе которых разработаны популярные методы Scrum, Kanban и другие. Ключевой принцип — разработка через короткие итерации (циклы), в конце каждого из которых заказчик (пользователь) получает рабочий код или продукт.
Waterfall — методика управления проектами, которая подразумевает последовательный переход с одного этапа на другой без пропусков и возвращений на предыдущие стадии.
Что такое Agile
Как и другие популярные методологии разработки и управления проектами, Agile появился сравнительно недавно в США. В отличии от CPM и CCPM, за появление гибкой методологии разработки ответственна сразу целая группа людей — 17 американских IT-специалистов из штата Юта. Вместе с «Манифестом гибкой разработки ПО», в котором впервые прозвучал термин «Agile» они прописали 12 принципов Agile-разработки.
Их суть сводится к таким ключевым моментам, определяющим характер гибкой методики разработки:
Люди и взаимодействие важнее процессов и инструментов
Работающий продукт важнее исчерпывающей документации
Сотрудничество с заказчиком важнее согласования условий контракта
Готовность к изменениям важнее следования первоначальному плану.
Agile стал основой для целого ряда гибких методик, среди которых наиболее известны Scrum, Lean и экстремальное программирование.
Scrum — методология гибкой разработки на основе Agile, в основе которого лежит «спринт» — отрезок от 1 до 4 недель, по окончанию которого должна быть получена рабочая версия продукта.
Lean — метод, который вырос на основе системы управления производством Toyota Production System. В его основе — философия постоянного совершенствования на всех уровнях организации, где одно из ключевых понятий — ценность (то, за что готов платить заказчик).
Экстремальное программирование (XP) — одна из Agile-методик, где важная роль отводится периодической игре в планирование с привлечением заказчика. Она позволяет определить недостатки предыдущей итерации, приоритетность задач, желаемую функциональность продукта с учётом пожеланий заказчика.
Преимущества и недостатки метода Agile
К преимуществам метода относятся:
короткие и понятные итерации — циклы разработки длятся от 2 недели до 2 месяцев, по окончанию которых заказчик получает рабочую версию продукта
высокая степень вовлечения исполнителей, организаторов и заказчиков проекта
во главе угла стоит рабочий продукт как основной показатель прогресса — это можно рассматривать как плюс, так и минус, ведь в таком случае к команде проекта выдвигаются высокие требования по самоорганизации
минимизация рисков благодаря гибкой системе внесения изменений.
Не избежала методология и недостатков, которые органично «дополняют» её достоинства:
стимулирование постоянных изменений проекта: гибкость разработки продукта может привести к тому, что он никогда не дойдёт до финальной версии
повышенные требования к квалификации и опыту команды: помимо непосредственно создания продукта команда должна анализировать возможные способы улучшения эффективности собственной работы, беспрерывно обмениваться информацией по проекту, быть мотивированной и самоорганизованной. Далеко не всегда ресурсы проекта позволяют привлечь таких специалистов
философский характер методологии: Agile — это не чёткая инструкция к действию, а целая философская концепция. Команда не может механически применить механики «гибкой» разработки, нужно принять ключевые принципы системы
сложность подсчёта итоговой суммы работы: стимуляция изменений и усовершенствования конечного продукта приводит к плавающему значению стоимости проекта.
Что такое Waterfall
Методика Waterfall (водопадная система разработки) — детище Винстона Уолкера Ройса, директора Lockheed Software Technology Center в Остине (штат Техас, США), пионера в области разработки программного обеспечения.
С методикой Waterfall получилось также, как и с многими изобретениями: свой вклад в создание методологии сделали Герберт Беннингтон в 1956 г. и Хозьер в 1961 г., а Уолкер использовал их наработки, обеспечив себе славу «создателя Waterfall». Победителей не судят...
Водопадная модель разработки подразумевает последовательное прохождение процесса, разбитого на стадии. Переход к новому этапу возможен только после завершения предыдущего.
В оригинальной работе Уолкера «Managing the development of large software systems» описаны 6 стадий разработки продукта, которые в 1985 году Департамент защиты США закрепил в стандартах работы с разработчиками программного обеспечения:
Системные и программные требования : закрепляются в PRD (документе требований к продукту).
Анализ : воплощается в моделях, схемах и бизнес-правилах.
Дизайн : разрабатывается внутренняя архитектура программного обеспечения, способы реализации требований. Это не только об интерфейсе и внешнем виде ПО, но и о его внутренней структурной логике.
Кодинг : непосредственно пишется код программы, идёт интеграция программного обеспечения.
Тестирование : баг-тестеры (тестировщики) проверяют финальный продукт, занося в трекеры сведения о дефектах кода программы или функционала. В случае ошибок и наличия времени/финансов происходит исправление багов.
Операции : продукт адаптируется под разные операционные системы, регулярно обновляется для исправления обнаруженных пользователями багов и добавления функционала. В рамках стадии также осуществляется техническая поддержка клиентов.
Компания Toyota, популяризовавшая методологии Lean и Kanban, до конца 2000-ых пользовалась каскадной моделью разработки ПО для нужд производства.
Преимущества и недостатки Waterfall
В число наибольших преимуществ методики Waterfall вошли:
понятная и простая структура процесса разработки — это снижает порог вхождения для команд
удобная отчётность — можно легко отследить ресурсы, риски, затраченное время и финансы благодаря строгой этапности процесса разработки и детальной документации проекта
стабильность задач — задачи, которые стоят перед продуктом, ясны команде с самого начала разработки, и остаются неизменными на протяжении всего процесса
оценка стоимости и сроков сдачи проекта — сроки выпуска готового продукта, как и его итоговая стоимость могут быть просчитаны до момента запуска разработки.
Среди недостатков водопадного метода можно выделить:
лишенный гибкости процесс — так, если проект требует больше временных и финансовых ресурсов, чем возможно, то под нож пойдёт фаза тестирования. Согласно исследованиям консалт-группы Rothman, стоимость исправления багов после выпуска продукта выше в среднем в 20 раз, чем во время полноценного многоэтапного тестирования в процессе разработки
«стойкость» к изменениям — жёсткий каркас из этапов разработки и условие предоставление только готового продукта определяют невозможность вносить изменения во время разработки
инерционность — на первых стадиях прогноз временных и финансовых трат может измениться в сторону увеличения, но изменить проект в сторону оптимизации затрат, изменения функционала или концепции до выпуска готового продукта невозможно
повышенный риск — классическая система тестирования подразумевает отдельно тестирование каждого из компонентов проекта, в том числе, во взаимодействии с другими. При использовании Waterfall происходит тестирование готового продукта.
Частично недостатки водопадной модели разработки исправлены в модификациях Waterfall: Сашими, Waterfall с субпроектами и водопадная модель разработки с снижением риска.
Сашими или водопадная модель с наслаивающимися фазами — cамая известная среди них. В ней этапы как и в оригинальной методике идут друг за другом, но при этом перекрываются одна другой во времени.
Waterfall с субпроектами — модель, в которой вы работаете с трёмя крупными блоками: концептуализацию, проектирование требований и архитектурная структура продукта. Затем для каждого из них вы проходите стадии (субпроекты) детального проектирования, кодирования и тестирования. В конце проводится интеграция всех компонентов на этапе тестирования системы.
Водопадная модель разработки с снижением риска — модификация классического Waterfall, в который добавлены спирали снижения риска, которые разделяют проект на мини-проекты и корреспондируют их одному или нескольким ключевым рискам.
Сравнительная таблица
Agile
|
Waterfall
|
Суть
|
Гибкая модель разработки, основанная на
итеративных принципах
|
Каскадная система разработки, основанная на жёсткой последовательности процесса разработки
|
Дата создания
|
2001 г.
|
1956 г., 1961 г., 1970 г.
|
Разработчики
|
Группа IT-специалистов (США)
|
Г. Беннингтон, Хозьер, В. Уолкер Ройс
|
Принципы применения
|
наивысший приоритет в удовлетворении потребностей заказчика
на протяжении всего проекта команда и заказчик ежедневно взаимодействуют между собой и друг с другом
работающий продукт — главный показатель прогресса
работу можно доверить только самоорганизованной, мотивированной команде
оптимальные сроки выпуска рабочего продукта — от 2 недель до 2 месяцев.
|
жёсткая последовательность этапов разработки
переход к новому этапу — только после успешного завершения предыдущего
фиксированная стоимость продукта
заказчик не привлекается к непосредственному процессу разработки
изменения могут быть внесены только после завершения всего процесса разработки.
|
Плюсы
|
высокий уровень взаимодействия между членами команды проекта
быстрый результат (рабочий код) в итоге «спринтов»
стимулирование изменения и улучшений продукта во время его разработки
непосредственное вовлечение заказчика к рабочему процессу.
|
понятная и чёткая схема рабочего процесса
возможность просчёта точного количества затраченных на проект ресурсов
не требует затрат по налаживанию коммуникаций между всеми членами команды.
|
Минусы
|
риск бесконечных изменений продукта
большая зависимость от уровня квалификации и опыта команды
практически невозможно точно подсчитать итоговую стоимость проекта.
|
приоритет формального подхода к последовательности процесса работы
невозможность внесения изменений заказчиком до окончания разработки продукта
в случае нехватки ресурсов страдает качество проекта из-за сокращения этапа тестирования.
|
Компании-практики
|
Unilever, ряд банков (Альфа Банк, Home Credit, Райффайзен Банк и т.д.)
|
Cisco Ericsson AB, Toyota (до 2010)
|
Подойдёт вам, если...
|
над проектом работает опытная, высококвалифицированная команда
вы работаете над стартапом
нужно быстро получить рабочую версию продукта
заказчик выступает в качестве партнёра, а не инвестора
продукт разрабатывается в сфере, подверженной постоянным изменениям.
|
большая часть или вся работа над проектом проводится на аутсорсе
у вас есть чёткая концепция продукта, который хотите получить
вы не ограничены во времени и ресурсах создания продукта
создание продукта или бизнеса построено на соблюдении строгой последовательности выполнения задач.
|
Не подойдёт, если...
|
вы не готовы тратить дополнительные ресурсы на налаживание ежедневной стабильной коммуникации между всеми участниками процесса
продукт должен быть создан к конкретному сроку
бюджет проекта строго ограничен
вам нужна детальная документация по всем процессам разработки.
|
вы хотите создать инновационный продукт или крупный проект
вы не уверены в концепции предлагаемого проекта
финансовые ресурсы не являются ключевым ограничителем в вашем проекте.
|
Вердикт
Agile и Waterfall — две абсолютно разные методики разработки и управления проектами. Каждая из них породила десятки модификаций и методов, «заточенных» под конкретный формат проектов.
Гибкая модель будет идеальной для IT-компаний, стартапов, проектах в инновационных сферах
Каскадная модель не сдаёт позиции в строительных проектах или проектах, где ключевым ограничителем является срок реализации проекта, а не финансы
С учётом особенностей каждой из методик и вашего бизнеса, а также на основе критериев риска, времени и вовлечения заинтересованных лиц вы сможете самостоятельно определить эффективную методологию.