Если вы разрабатываете новый продукт аналогов которому на рынке нет, то важно выбрать правильную методологию разработки.
Проект по разработке нового продукта является сложным с высоким уровнем неопределенности, так как команде придется столкнуться с проблемами, с которыми никто не сталкивался раньше. Таким образом методология разработки программного обеспечения для этого проекта должна быть в состоянии справиться с высоким уровнем неопределенности и сложности.
Для этого методология должна отдавать приоритет получению регулярной (и как можно более ранней) обратной связи от заинтересованных сторон (включая пользователей), а также быть достаточно гибкой, чтобы приспособиться к изменениям технологий, рыночных условий и требований пользователей по мере их возникновения.
Учитывая вышесказанное, рекомендуется выбрать методологию из Agile-подходов, а именно фреймворк Scrum, который как раз создан для адаптивных решений комплексных проблем. На многочисленных примерах в индустрии разработки ПО проверено, что Scrum помогает при работе с проектами, в которых требования не полные и могут меняться с течением времени, как это бывает с новыми технологиями.
Процесс работы по Scrum состоит из следующих этапов (подробнее - на scrumguides.org:)
- Создание бэклога продукта: выявление и документирование возможных функций продукта.
- Планирование спринта: создание коротких итеративных периодов разработки (спринтов), обычно продолжительностью от двух до четырех недель.
- Daily scrum: ежедневные встречи команды для обсуждения прогресса и препятствий.
- Обзор спринта: оценка работы, выполненной во время спринта.
- Ретроспектива спринта: размышление о процессе разработки и определение областей для улучшения.
Разработка идет циклично: каждый спринт заканчивается ретроспективой для улучшения процессов команды и обзором спринта, чтобы продемонстрировать работающее программное обеспечение заинтересованным сторонам и получить их отзывы. Эта обратная связь затем будет использоваться для обновления бэклога продукта и планирования следующего спринта. Цикл повторяется до тех пор, пока конечный продукт не будет соответствовать желаемому. На самом деле продуктовая разработка "бесконечна", т.е. продолжается пока продукт востребован на рынке (в позитивном сценарии развития событий) или пока у инвесторов не кончатся деньги на тестирование гипотез (в негативном сценарии разработки продукта).
Ресурсы равномерно распределены на всех этапах процесса Scrum. Разве что можно начать с небольшой основной команды и при необходимости добавлять новых участников при масштабировании разработки продукта.
Плюсы выбора Scrum:
- Гибкость. Scrum допускает изменения и адаптацию, что хорошо подходит для сложных и инновационных проектов с высоким уровнем неопределенности.
- Быстрая обратная связь. Регулярная инспекция и адаптация помогает выявить и исправить недостатки на ранней стадии.
- Акцент на сотрудничество. Scrum подходит для недавно сформированных команд, которым необходимо эффективно работать вместе. Также плотное общение с владельцем продукта важно для обеспечения соответствия разрабатываемого продукта потребностям заинтересованных сторон.
Минусы выбора Scrum:
- "Easy to start, hard to master" - главный минус. :)
Чтобы Scrum "взлетел", требуется вовлеченная и дисциплинированная команда, способная самоорганизоваться и умеющая эффективно работать по Scrum.
Также с самого начала разработки нужно использовать подходящую архитектуру создаваемого ПО и контролировать объем технического долга (в том числе используя специализированные средства, например, SonarQube).
Подписывайтесь на канал и получайте полезную информацию по управлению проектами, системной и бизнес-аналитике.