Agile или Waterfall: как выбрать методологию разработки

Agile или Waterfall: как выбрать методологию разработки

Если разрабатывать без методологии, продукт может не получиться и ресурсы будут потрачены впустую. В статье расскажем, зачем Orbitsoft применяет методологии Agile и Waterfall.

Что такое методология

Когда мы говорим «методология», то понимаем инструмент планирования работы для команды разработки. Популярные методологии — Agile и Waterfall. Существуют и другие, но их реже используют, поэтому в статье мы про них говорить не будем.

Waterfall — методика управления проектами, подразумевает последовательный переход с одного этапа на другой без пропусков и возвращений на предыдущие стадии.

Waterfall не предполагает активного участия в разработке заказчика и внесения изменений по ходу работ

Agile — система идей и принципов «гибкого» управления проектами. Ключевой принцип — разработка короткими итерациями. Продукт делится на несколько функций, каждая разрабатывается параллельно.

Agile позволяет корректировать требования, тестировать гипотезы, это снижает риск получить на выходе ненужный продукт.

Критерии выбора методологии

У заказчиков, которые отдают разработку на аутсорс, не всегда есть предпочтения по методологии. В этом случае мы проводим интервью и выясняем потребности бизнеса. Выбираем методолгию по следующим критериям:

Критерий 1: есть четкое техническое задание или нет. Техническое задание нужно для того, чтобы разработчики верно поняли, какой именно продукт бизнес хочет получить. Архитектор, проектировщик или аналитик выясняют у заказчика какие задачи должен решить продукт и описывают функционал в виде требований. Затем рассчитываются сроки, бюджет, проект утверждается с заказчиком.

Watrfall требует точного технического задания: заказчик один раз сформулирует задачу, подробно описывает требования, определяется со сроками, дальше вовлекаться в процесс не нужно.

Пример подробного технического задания для разработки продукта

Agile позволяет начать работу с приблизительным пониманием, но каждую итерацию заказчик должен оценивать достигнутый результат.

Вместо технического задания в Agile применяют User Story — ожидания и предпочтения заказчика о том, как должен работать продукт

Чтобы понять степень неопределенности требований, задаем заказчику вопросы:

  • Как вы можете описать проект — стартап или готовая система?
  • Какие функции нужно создать?
  • Есть ли документированные бизнес-требования?
  • Возможны ли изменения в требованиях?
  • Нужны ли будут улучшения функционала?
Описание проектаПример технического заданияКакая методология подходит
Финтех-стартапРазработать приложение для разных видов платформ, чтобы переводить деньги иностранным партнерамAgile
Функционирующая система, банковское приложениеПодключить дополнительный платежный шлюз для приема оплат по мобильному телефонуWaterfall

Критерий 2: важность сроков и необходимый уровень качества. При выборе методологии нужно понять, что заказчику важнее прямо сейчас — запустить продукт к конкретной дате или качественно доработать функционал без жесткой привязки ко времени.

Waterfall помогает команде создавать полноценный продукт и хорошо держать сроки, если функций для разработки немного и они подробно описаны. Если продукт сложный, реализация требует много времени — есть риск что на выходе проект может устареть и стать ненужным.

Agile позволяет запускать проект в короткие сроки, но с усеченными функциями. Предполагается, что доработка функций будет происходить в процессе использования. Методология заставляет расставлять приоритеты — какая функция важнее других, а какие можно разработать потом.

Разработчики и заказчик расставляют приоритеты в бэклоге — архиве задач. Приоритет задачи можно повысить, понизить, положить в готовое или удалить ее.

Чтобы понять, что важнее — сроки или качество — задаем вопросы:

  • Вам необходимо разработать продукт к определенному сроку?
  • Что именно должно работать к конкретному сроку?
  • Без каких функций запуск проекта невозможен?
  • Какими функциями можно пожертвовать ради быстрого запуска?
  • Что для вас — полностью готовый продукт?
Описание проектаПример соотношения сроков и качестваКакая методология подходит
Приложение для заказа уборкиВажно, чтобы через месяц клиенты могли заказывать уборку, функционал выбора клинера можно добавить позжеAgile
Приложение для цветочных магазиновФункция оформления заказа на телефоны флористов к 8 мартаWaterfall

Критерий 3: бюджет заказчика на разработку. В бюджет входит стоимость услуг специалистов и инструментов для разработки — аренда серверов, облаков, покупка лицензий, оплата консалтинга.

Waterfall может быть для заказчика экономически более выгодным, чем Agile. Как правило, задачи хорошо описаны и понятны — специалисту не нужно часто переключатся между разными задачами, вносить изменения в процесс. Изначально понятно, какие специалисты потребуются для выполнения задачи.

Agile более требователен к бюджету заказчика, чем Watrefall: разработчики должны не только уметь программировать, но и следовать правилам системы, участвовать в митингах, проводить ретроспективы. Так как требования к продукту могут поменяться, есть вероятность, что придется нанимать новых специалистов в процессе разработки.

Так выглядит Scrum-доска с задачами по проекту — специалисты должны уметь пользоваться этим инструментом

Для понимания объема бюджета задаем вопросы:

  • Будут ли участвовать в разработке ваши специалисты?
  • Умеют ли специалисты работать по Agile?
  • Готовы ли вы нанимать специалистов в процессе разработки?
  • Готовы ли вы подробно описывать продукт?

Выбор методологии зависит требований, которые бизнес и пользователи предъявляют к будущему продукту. Для одних проектов подойдет Agile, для других Waterfall.

КритерийAgile Waterfall
ПроектДля стартапов и продуктов с высокой степенью неопределенностиДля небольших проектов с низкой степенью неопределенности
Функциональные требованияНе нужно подробно описать функциональные требования.Нужно составить подробное техническое задание
Тестирование продуктаКаждый спринт тестируются отдельные готовые функцииПосле завершения разработки продукт тестируется комплексно
ДокументацияПо завершению проекта. В процессе разработки вместо документирования используются доски Скрам, КанбанДокументация на этапе проектирования
КомандаНужна кроссфункциональная команда высокого уровняРазработчики среднего уровня
РелизЖизнеспособный инкремент выпускается после каждого спринтаПродукт выпускается полностью, после того, как все функции реализованы

В чем бы вы ни нуждались, мы можем помочь!

Расскажите нам, с какими проблемами вы сталкиваетесь в своем бизнесе. Мы с нетерпением ждем вашего ответа.

Получите ответ по смс

Ваше сообщение успешно отправлено!
Представьтесь пожалуйста
Укажите номер, на который придет ответ
Нажимая на кнопку, вы даете согласие
на обработку персональных данных.