В чем заключается ключевое преимущество agile по сравнению с каскадной моделью waterfall
Agile или Waterfall — какойвариант соответствуетвашему бизнесу?
Противостояние Agile и Waterfall не столько теоретическое, сколько практическое. Выбор методики, не подходящей под ваш проект, в лучшем случае существенно затормозит его развитие, в худшем — отправит в список «ТОП-провалов года».
Гибкая и каскадная модели разработки проекта (Agile и Waterfall соответственно) — одни из наиболее популярных среди прочих методологий управления. Изучив особенности конкретно вашего проекта, и вооружившись знаниями из этой статьи, вы сможете с полной уверенностью ответить на вопрос: «Что подойдёт моему бизнесу — Agile или Waterfall?»
Agile — система идей и принципов «гибкого» управления проектами, на основе которых разработаны популярные методы Scrum, Kanban и другие. Ключевой принцип — разработка через короткие итерации (циклы), в конце каждого из которых заказчик (пользователь) получает рабочий код или продукт.
Waterfall — методика управления проектами, которая подразумевает последовательный переход с одного этапа на другой без пропусков и возвращений на предыдущие стадии.
Что такое Agile
Как и другие популярные методологии разработки и управления проектами, Agile появился сравнительно недавно в США. В отличии от CPM и CCPM, за появление гибкой методологии разработки ответственна сразу целая группа людей — 17 американских IT-специалистов из штата Юта. Вместе с «Манифестом гибкой разработки ПО», в котором впервые прозвучал термин «Agile» они прописали 12 принципов Agile-разработки.
Их суть сводится к таким ключевым моментам, определяющим характер гибкой методики разработки:
Scrum — методология гибкой разработки на основе Agile, в основе которого лежит «спринт» — отрезок от 1 до 4 недель, по окончанию которого должна быть получена рабочая версия продукта.
Lean — метод, который вырос на основе системы управления производством Toyota Production System. В его основе — философия постоянного совершенствования на всех уровнях организации, где одно из ключевых понятий — ценность (то, за что готов платить заказчик).
Экстремальное программирование (XP) — одна из Agile-методик, где важная роль отводится периодической игре в планирование с привлечением заказчика. Она позволяет определить недостатки предыдущей итерации, приоритетность задач, желаемую функциональность продукта с учётом пожеланий заказчика.
Преимущества и недостатки метода 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 вошли:
Среди недостатков водопадного метода можно выделить:
Частично недостатки водопадной модели разработки исправлены в модификациях Waterfall: Сашими, Waterfall с субпроектами и водопадная модель разработки с снижением риска.
Сашими или водопадная модель с наслаивающимися фазами — cамая известная среди них. В ней этапы как и в оригинальной методике идут друг за другом, но при этом перекрываются одна другой во времени.
Waterfall с субпроектами — модель, в которой вы работаете с трёмя крупными блоками: концептуализацию, проектирование требований и архитектурная структура продукта. Затем для каждого из них вы проходите стадии (субпроекты) детального проектирования, кодирования и тестирования. В конце проводится интеграция всех компонентов на этапе тестирования системы.
Водопадная модель разработки с снижением риска — модификация классического Waterfall, в который добавлены спирали снижения риска, которые разделяют проект на мини-проекты и корреспондируют их одному или нескольким ключевым рискам.
Вердикт
Agile и Waterfall — две абсолютно разные методики разработки и управления проектами. Каждая из них породила десятки модификаций и методов, «заточенных» под конкретный формат проектов.
Гибкая модель будет идеальной для IT-компаний, стартапов, проектах в инновационных сферах
Каскадная модель не сдаёт позиции в строительных проектах или проектах, где ключевым ограничителем является срок реализации проекта, а не финансы
С учётом особенностей каждой из методик и вашего бизнеса, а также на основе критериев риска, времени и вовлечения заинтересованных лиц вы сможете самостоятельно определить эффективную методологию.
Agile и Waterfall: выбираем методологию управления проектами
Знаете ли вы, что существуют различные методологии управления проектами? Каждый из них включает в себя все основные рабочие циклы:
Сегодня мы поговорим о двух из них. Тех двух, что мы активно используем на своих проектах. Читаем, анализируем, выбираем. Перед вами сравнение двух методологий — Agile и Waterfall.
Agile
Эта методология базируется на 12 принципах (так называемый Agile манифест). Давайте познакомимся с ключевыми практическими постулатами Agile:
В 2015 году было проведено масштабное профессиональное исследование. Под его прицел попал 601 проект из сферы IT. Результат показал, что именно Agile сегодня является самым распространенным подходом к управлению проектами.
Agile: преимущества
Agile: недостатки
Waterfall
Методология Waterfall базируется на принципе последовательного развития. Вкратце, схема управления проектом выглядит следующим образом:
Переход к каждому последующему шагу возможен только после завершения предыдущей стадии. При этом внесение нового функционала допустимо после развертывания проекта и исправления всех багов.
Waterfall: преимущества
Waterfall: недостатки
Что же выбрать?
Ваш выбор это Agile, если:
Ваш выбор это Waterfall, если:
Ну и наконец, обратимся к статистике. Она показывает, что проекты, реализованные с помощью Agile, имеют в три раза больше шансов на успех, чем проекты, управляемые по методологии Waterfall.
Agile и Waterfall: заключение
Вы никогда не найдете серебряную пулю для управления проектами. Методология, способная идеально упорядочить все этапы разработки и сбалансировать все возможные риски, существует только в фантазиях. Самым серьезным недостатком Waterfall является отсутствие гибкости. Используя эту методологию, вы не сможете менять требования к проекту в процессе разработки. А возможность адаптироваться к текущим условиям на современном рынке — огромнейший плюс.
Впрочем, это не означает, что Waterfall плох и о нем стоит забыть. Он отлично подходит для небольших проектов. Ну а если вы научитесь грамотно комбинировать Agile и Waterfall в рамках одного проекта, это откроет новые горизонты и предоставит массу интересных возможностей.
Waterfall или Agile? Битва методологий при разработке ПО
Waterfall или Agile? Битва методологий при разработке ПО
На современном этапе развития менеджмента не придуман универсальный способ, который можно было применить к процессу разработки программного обеспечения. Нет оптимального метода, подходящего под любой проект. Во главе любого метода встали стандарты, определения, процедуры, функции и пр.
Каждая методология, выбираемая руководителем проектной команды, подбирается под определенные задачи, стоящие в проекте, а также сроки, выделенный заказчиком бюджет. К тому же, область IT-компаний характеризуется своей спецификой: сопровождение проектов, техническая поддержка, аутсортинг – все это требует от компаний индивидуальных подходов.
Наиболее популярные и востребованные в современной сфере разработки программных обеспечений методологии – это Waterfall (каскадная) и Agile (гибкая). В данной статье мы кратко опишем каждую из них, выявим достоинства и преимущества, разберемся какая методология и под какой проект подходит наилучшим образом.
Agile
Метод реализации проектов Agile основан на итерациях. Весь процесс разработки нового программного продукта разделяется на несколько циклов протяженностью 1-4 недели. Каждый этап рассматривается как отдельный микропроект, в котором есть подготовительный этап, этап планирования, создания и этапа, на котором происходит проверка совместимости продукта с требованиями заказчика. Результатом каждой итерации становится продукт с определенным набором технических характеристик, который можно показать заказчику для внесения корректировок, если это потребуется.
Вся разработка ПО с использованием методологии Agile подчинена 12 ключевым принципам. Ключевыми же являются:
К гибким методам Agile чаще всего относят такие методы программирования, как Scrum, FDD и другие.
Waterfall
Метод Waterfall, что в переводе с английского означает «водопад», основан на последовательной разработке. Весь процесс делиться на следующие этапы:
Переход от одного этапа к другому происходит только тогда, когда один из этапов полностью завершен. Изменение функционала готового продукта происходит только после его выпуска на потребительский рынок (релиза).
Достоинства методов разработки
Agile
Waterfall
Недостатки методов разработки
Agile
Waterfall
Выбирать внедрение Agile-методологии необходимо, если удовлетворены следующие условия:
Каскадная модель должна применяться в случае, когда:
Каждый из вышеописанных методов может помочь вам в реализации ваших проектов. Важно понимать, что, выбирая методологию, вы должны ориентироваться на высокое качество конечного продукта и собственный бюджет.
В тот момент, когда вы начнете движение по финишной прямой, всех перестанет интересовать выбранный вами метод реализации. Поэтому, даже в том случае, если методология была выбрана неверно, команда должна обладать богатым опытом и компетентностью, чтобы получить высокие результаты в ходе своей работы.
Перед выбором метода, проанализируйте ваш проект, посоветуйтесь с коллегами по цеху, пообщайтесь с заказчиками и подчиненными. Ведь именно от выбранного метода, будь это Agile или Waterfall, зависит скорость реализации, качество, издержки и пр.
Проект с умом. Выбираем между Waterfall и Agile
К сожалению, не существует универсального процесса разработки ПО, полностью подходящего под каждый проект. Во главе угла стоят методологии – системы стандартов, содержащие понятия, методы и способы, которые определяют стиль создания программного обеспечения.
Методология подбирается, во-первых, под конкретные задачи, объемы работ, цели заказчика и бюджет. Во-вторых, не забываем и про специфику деятельности IT-компании. Техподдержка, аутсорсинг и внутренняя разработка своего проекта предполагают разные подходы.
Одни из самых распространенных категорий моделей разработки ПО – Agile и Waterfall, гибкая и каскадная соответственно. Мы дадим краткое описание каждой, рассмотрим их плюсы, минусы и определимся с корректной системой под проект.
Agile
Гибкие методологии придерживаются итеративных принципов разработки. Процесс создания продукта делится на серию коротких циклов по 1-4 недели. Каждая итерация представляет собой отдельный проект с планированием, проектированием, программированием, тестированием и ретроспективой.
При оплате труда разработчиков в рамках Agile обычно выбирают между выделенной командой под проект (Dedicated Team) и системой Time&Materials (T&M). Мы уже сравнили между собой некоторые механизмы построения финансовых отношений с подрядчиком. Наши выводы с позиций клиентов и разработчиков можно найти здесь.
Гибкая модель разработки основана на 12 принципах, из которых определяющими мы считаем следующие:
К классу Agile относятся такие методики, как экстремальное программирование (XP), FDD, DSDM, Scrum и другие.
Waterfall
Принцип каскадной системы состоит в последовательности. Процесс разработки разбит на следующие шаги:
1. Анализ требований
Переход к каждой фазе происходит только после окончания предыдущей. Новые функции добавляются уже после релиза и исправления предыдущих ошибок. Благодаря четкой документации и стабильным требованиям для каскадных проектов лучше подойдет модель финансового взаимодействия с фиксированной ставкой (Fixed price).
А теперь сравним сильные и слабые стороны Agile и Waterfall.
Гибкая модель
Каскадная модель
Гибкая модель
Каскадная модель
Изучив матчасть, мы легко научимся жонглировать Agile и Waterfall в своих проектах!
Гибкая модель разработки действует, если:
1. В проекте задействована опытная команда.
2. Окончательный функционал продукта пока неизвестен, и изменения необходимо вносить максимально оперативно.
3. Конечный пользователь «варится» в проекте с самого начала.
4. Необходимо быстро разработать рабочее ПО.
Выбирайте каскадную модель в случаях, если:
1. Требования к проекту стабильны и практически неизменны;
2. Качество продукта намного важнее затраченного времени и ресурсов;
3. Проект разрабатывается на аутсорсе;
4. Конечный пользователь только принимает результат работы, не участвуя в процессе.
Необходимо сказать, что обе модели помогут реализовать ваш проект. В первую очередь вы выбираете вариант, который позволит вам делать качественные продукты и эффективно управлять своим бюджетом.
Конечно, как только вы на финишной прямой, никого не будет интересовать выбранная методология. Поэтому, даже если модель разработки оказалась неподходящей, команда должна быть достаточно сильной для получения достойных результатов.
А теперь просто идите и сделайте свой проект!
Waterfall или Agile: как выбрать методологию управления проектом?
Когда вы решаете разработать свой продукт, то рано или поздно возникает вопрос, как организовать процесс разработки. Стоит ли жестко распланировать все этапы и делать все шаг за шагом? Или лучше работать короткими итерациями, чтобы чаще отслеживать результат и быстрее вносить правки? Все это определяют методологии разработки продукта. Каждая из них имеет свои преимущества и недостатки. В этой статье рассмотрим наиболее популярные из них. Также я расскажу на что обратить внимание при выборе подходящей методологии и как комбинировать разные подходы.
Краткий ликбез по Waterfall
Waterfall (каскадная) — это методология ведения проекта, когда фазы работ идут последовательно. Следующая фаза начинается только после завершения предыдущей. Наглядно это выглядит так:
Получается, план такой:
В Waterfall можно управлять изменениями требований и рисками, но это скорее исключительные ситуации, которые требуют дополнительных затрат времени и бюджета.
Семейство Agile-методологий: в чем главная особенность
Agile (гибкие) — это семейство методологий, объединенных ценностями и принципами Agile-манифеста.
Agile стал основой для целого ряда гибких методик, среди которых наиболее известны Scrum, Lean и экстремальное программирование.
В основном это фреймворки, предполагающие итерационную работу над проектом, то есть когда основные фазы разработки циклично повторяются друг за другом. Самый распространенный фреймворк — это Scrum, схематично рабочий процесс по которому можно изобразить тСхема работы по
Жизненный цикл проекта в этом случае — это набор итераций, каждая из которых включает в себя мини-версию разработки проекта командами по методу Waterfall.
Получается, что итерационные методологии отличаются тем, что результатом каждой итерации является законченный продукт, и каждая последующая итерация наращивает его функциональность.
Ещё одна особенность в том, что на этапе аналитики требуется прояснить и зафиксировать не все требования по проекту, а только часть — то, что планируется завершить в текущей итерации. Аналогично с разработкой дизайна — идет отрисовка не итоговых прототипов, а только требуемых для реализации текущего спринта.
Преимущества и недостатки Waterfall и гибких методологий
Waterfall, Scrum и другие гибкие методологии управления проектами имеют преимущества и недостатки. Каждая из методологий хорошо подходит для решения определенных задач и сложнее адаптируется к другим.
Характеристики проектов, подходящих под разные методологии можно обозначить так:
Характеристики | Waterfall | Гибкие методологии | В чем подвох | Скоуп и требования | Понятны и меняться не будут | Меняются по ходу работы | В Waterfall этап аналитики предполагает полное прояснение всех требований и учет ограничений на ранней стадии проекта. Последующие изменения требований сложнее с т.з. процессов и потребует дополнительных затрат, чтобы исправить реализованный ранее функционал. | Новизна задачи | Похожая задача уже решалась заказчиком/исполнителем, продукт не инновационный | Для заказчика/исполнителя это качественно новая задача, либо продукт инновационный | В новой для себя области гораздо проще упустить что-то важное. Для Waterfall будет сложнее вносить изменения в исходные требования. | Управление требованиями | Требования к проекту в процессе работы не будут значительно меняться | Планируется применять Customer development (тестирование идеи или прототипа будущего продукта на потенциальных потребителях), тестировать гипотезы на рынке, в процессе проекта управлять приоритетами, опираясь на фокус-группы | По аналогии с первыми пунктами — здесь все упирается в потребность гибко управлять требованиями. Если нет такой потребности — Waterfall ваш вариант. | Бюджет | Жестко ограничен | Можно варьировать в заданных рамках | Если в Waterfall все идет по плану, то бюджет и срок проекта можно определить после этапа аналитики по проекту. При этом бюджет первичен, и после завершения аналитики он будет определять срок. То есть последовательность такая: бюджет → аналитика → срок. | Срок | Жестко ограничен и определен до этапа аналитики | Может варьироваться | Отличительная особенность гибких методологий — результат каждой итерации в виде работающего продукта. После завершения этапа аналитики можно достаточно точно оценить срок завершения Waterfall-проекта. |
Если проект характеризуется признаками только из одной колонки — можно смело выбирать соответствующую методологию проекта и не греть голову. Но что, если все сложнее (как и бывает в большинстве случаев)? Тогда на помощь приходят гибридные методологии управления проектами! Мы уже писали про свой опыт работы с ними на примере разработки портала «Спасибо от Сбербанка. Путешествия». Советуем ознакомиться, чтобы узнать подробнее когда и зачем их применять.
Как сделать подходящий к проекту гибрид методологий
Большинство проектов Azoft управляются с помощью гибридной, индивидуально подобранной под проект методологии.
Для нас важно, чтобы инструменты управления использовались не «для галочки», и не потому, что это декларировано в PMBook, а для того, чтобы решить задачи проекта.
Объясняем, когда и как внедрить практики из разных методологий, чтобы в результате собрать актуальный для вашего проекта «гибрид»:
1. По ходу проекта появляются задачи, которые не вписываются в рамки исходной постановки задачи, но когда-нибудь в будущем хочется их сделать? Внедряем backlog (журнал оставшейся работы, которую необходимо выполнить команде), куда складываем все такие задачи. Даже если проект управляется по Waterfall, будет удобно вернуться к задачам после завершения проекта.
2. В проекте много рисков? Внедряем матрицу управления рисками — стандартный артефакт Waterfall-проекта. Даже если проект ведем по Agile-фреймворку, можно параллельно использовать практики каскадной модели управления проектом.
3. Исходная постановка задачи простая и понятная, а вот после выхода на рынок планируется кастомизировать продукт под потребности пользователя? Можно реализовать первый этап проекта по Waterfall, а поддержку и развитие вести спринтами, по гибкой методологии управления.
4. Хочется «протестировать» гибкий подход управления проектом, и потом уже решать, какую методологию выбрать? Тогда можно начать с работ по аналитике и документированию: составить список User Stories (отзывы клиентов), приоритизировать их и прояснять последовательно (это вариант работы с backlog задач в гибких методологиях). При этом целиком проект можно вести по Waterfall, и приступить к разработке только после полного завершения работ по аналитике. К тому же, такой подход дает максимальную вовлеченность заказчика на старте проекта, что сильно снижает вероятность ошибки в процессе дальнейших работ по проекту.
Каждый проект — это уникальный коктейль из требований, команды, заказчика и внешних условий. Подходящий к проекту фреймворк управления позволяет использовать ресурсы эффективно, сильно снижая риски ошибиться в процессе. Надеюсь, статья поможет вам настраивать на своих проектах такие системы управления, которые помогут достигать классных результатов! Если вы знаете другие способы добиться идеальной управляемости проекта — пишите в комментариях, будем рады новым инсайтам.