Waterfall или Agile: как выбрать методологию управления проектом?
Когда вы решаете разработать свой продукт, то рано или поздно возникает вопрос, как организовать процесс разработки. Стоит ли жестко распланировать все этапы и делать все шаг за шагом? Или лучше работать короткими итерациями, чтобы чаще отслеживать результат и быстрее вносить правки? Все это определяют методологии разработки продукта. Каждая из них имеет свои преимущества и недостатки. В этой статье рассмотрим наиболее популярные из них. Также я расскажу на что обратить внимание при выборе подходящей методологии и как комбинировать разные подходы.
Краткий ликбез по Waterfall
Waterfall (каскадная) — это методология ведения проекта, когда фазы работ идут последовательно. Следующая фаза начинается только после завершения предыдущей. Наглядно это выглядит так:
Получается, план такой:
- Установили и прояснили требования заказчика и согласовали их с командой;
- Подготовили весь дизайн проекта;
- Разработали программное обеспечение целиком по заданным технологиям;
- Протестировали проект на наличие багов;
- И только после всех предыдущих, последовательных этапов —запустили в эксплуатацию.
В Waterfall можно управлять изменениями требований и рисками, но это скорее исключительные ситуации, которые требуют дополнительных затрат времени и бюджета.
Семейство Agile-методологий: в чем главная особенность
Agile (гибкие) — это семейство методологий, объединенных ценностями и принципами Agile-манифеста.
Ценности Agile:
- Люди и взаимодействие важнее процессов и инструментов.
- Работающий продукт важнее исчерпывающей документации.
- Сотрудничество с заказчиком важнее согласования условий контракта.
- Готовность к изменениям важнее следования первоначальному плану.
Agile стал основой для целого ряда гибких методик, среди которых наиболее известны Scrum, Lean и экстремальное программирование.
В основном это фреймворки, предполагающие итерационную работу над проектом, то есть когда основные фазы разработки циклично повторяются друг за другом. Самый распространенный фреймворк — это Scrum, схематично рабочий процесс по которому можно изобразить тСхема работы по Жизненный цикл проекта в этом случае — это набор итераций, каждая из которых включает в себя мини-версию разработки проекта командами по методу Waterfall. Получается, что итерационные методологии отличаются тем, что результатом каждой итерации является законченный продукт, и каждая последующая итерация наращивает его функциональность. Ещё одна особенность в том, что на этапе аналитики требуется прояснить и зафиксировать не все требования по проекту, а только часть — то, что планируется завершить в текущей итерации. Аналогично с разработкой дизайна — идет отрисовка не итоговых прототипов, а только требуемых для реализации текущего спринта. Waterfall, Scrum и другие гибкие методологии управления проектами имеют преимущества и недостатки. Каждая из методологий хорошо подходит для решения определенных задач и сложнее адаптируется к другим. Характеристики проектов, подходящих под разные методологии можно обозначить так: Если проект характеризуется признаками только из одной колонки — можно смело выбирать соответствующую методологию проекта и не греть голову. Но что, если все сложнее (как и бывает в большинстве случаев)? Тогда на помощь приходят гибридные методологии управления проектами! Мы уже писали про свой опыт работы с ними на примере разработки портала «Спасибо от Сбербанка. Путешествия». Советуем ознакомиться, чтобы узнать подробнее когда и зачем их применять. Большинство проектов Azoft управляются с помощью гибридной, индивидуально подобранной под проект методологии. Для нас важно, чтобы инструменты управления использовались не «для галочки», и не потому, что это декларировано в PMBook, а для того, чтобы решить задачи проекта. Объясняем, когда и как внедрить практики из разных методологий, чтобы в результате собрать актуальный для вашего проекта «гибрид»: 1. По ходу проекта появляются задачи, которые не вписываются в рамки исходной постановки задачи, но когда-нибудь в будущем хочется их сделать? Внедряем backlog (журнал оставшейся работы, которую необходимо выполнить команде), куда складываем все такие задачи. Даже если проект управляется по Waterfall, будет удобно вернуться к задачам после завершения проекта. 2. В проекте много рисков? Внедряем матрицу управления рисками — стандартный артефакт Waterfall-проекта. Даже если проект ведем по Agile-фреймворку, можно параллельно использовать практики каскадной модели управления проектом. 3. Исходная постановка задачи простая и понятная, а вот после выхода на рынок планируется кастомизировать продукт под потребности пользователя? Можно реализовать первый этап проекта по Waterfall, а поддержку и развитие вести спринтами, по гибкой методологии управления. 4. Хочется «протестировать» гибкий подход управления проектом, и потом уже решать, какую методологию выбрать? Тогда можно начать с работ по аналитике и документированию: составить список User Stories (отзывы клиентов), приоритизировать их и прояснять последовательно (это вариант работы с backlog задач в гибких методологиях). При этом целиком проект можно вести по Waterfall, и приступить к разработке только после полного завершения работ по аналитике. К тому же, такой подход дает максимальную вовлеченность заказчика на старте проекта, что сильно снижает вероятность ошибки в процессе дальнейших работ по проекту. Как сделать подходящий к проекту гибрид: Каждый проект — это уникальный коктейль из требований, команды, заказчика и внешних условий. Подходящий к проекту фреймворк управления позволяет использовать ресурсы эффективно, сильно снижая риски ошибиться в процессе. Надеюсь, статья поможет вам настраивать на своих проектах такие системы управления, которые помогут достигать классных результатов! Если вы знаете другие способы добиться идеальной управляемости проекта — пишите в комментариях, будем рады новым инсайтам.
Преимущества и недостатки Waterfall и гибких методологий
Характеристики Waterfall Гибкие методологии В чем подвох Скоуп и требования Понятны и меняться не будут Меняются по ходу работы В Waterfall этап аналитики предполагает полное прояснение всех требований и учет ограничений на ранней стадии проекта. Последующие изменения требований сложнее с т.з. процессов и потребует дополнительных затрат, чтобы исправить реализованный ранее функционал. Новизна задачи Похожая задача уже решалась заказчиком/исполнителем, продукт не инновационный Для заказчика/исполнителя это качественно новая задача, либо продукт инновационный В новой для себя области гораздо проще упустить что-то важное. Для Waterfall будет сложнее вносить изменения в исходные требования. Управление требованиями Требования к проекту в процессе работы не будут значительно меняться Планируется применять Customer development (тестирование идеи или прототипа будущего продукта на потенциальных потребителях), тестировать гипотезы на рынке, в процессе проекта управлять приоритетами, опираясь на фокус-группы По аналогии с первыми пунктами — здесь все упирается в потребность гибко управлять требованиями. Если нет такой потребности — Waterfall ваш вариант. Бюджет Жестко ограничен Можно варьировать в заданных рамках Если в Waterfall все идет по плану, то бюджет и срок проекта можно определить после этапа аналитики по проекту. При этом бюджет первичен, и после завершения аналитики он будет определять срок. То есть последовательность такая: бюджет → аналитика → срок. Срок Жестко ограничен и определен до этапа аналитики Может варьироваться Отличительная особенность гибких методологий — результат каждой итерации в виде работающего продукта. После завершения этапа аналитики можно достаточно точно оценить срок завершения Waterfall-проекта. Как сделать подходящий к проекту гибрид методологий