В разработке программного продукта используется определенная методология. Это проверенные алгоритмы, помогающие создать эффективное ПО. Итеративная разработка — один из таких методов. В статье подробнее рассказываем о том, для каких проектов она подходит и как реализуется.
Что такое итерационная разработка сайта?
Итерация в веб-разработке — часть работы для достижения конечной цели. Например, у нас есть проект по разработке интернет-магазина с личным кабинетом. Мы его декомпозируем на задачи, а каждую большую задачу — на более мелкие. Каждый шаг в этом плане, который приближает нас к итоговой цели, можно назвать итерацией.
Итерационный метод используют в проектировании сложных сервисов или для тестирования идей. Например, стартап разрабатывает базовый функционал мобильного приложения и постепенно его улучшает. А если компания планирует обновить корпоративный сайт, для такого проекта интеграционная система не нужна.
Итерационный метод разработки состоит из четырех этапов жизненного цикла ПО. Продвижение по ним идет последовательно:
- фаза требований. Цикл ПО начинается с анализа заявленных требований, обработки и накопления информации к ПО. Когда данных становится достаточно, наступает следующая ступень;
- фаза дизайна. С учетом заданной спецификации разрабатывается программный продукт. Это может быть новый дизайн или доработка старого;
- фаза внедрения и тестирования. На этом этапе продукт внедряют и тестируют;
- фаза обзора. На заключительном шаге ПО дорабатывается и улучшается.
Как это — делать проект итерациями?
Итерационная разработка хорошо подходит для сложных проектов или для вывода новых цифровых продуктов на рынок. Большим проектом в IT принято называть тот, в котором затраты превышают 6 человеко-месяцев. Человеко-месяц — 20 рабочих дней * 8 часов = 160 человеко-часов, но в некоторых проектах может быть 21 рабочий день.
Вне зависимости от сложности, никакой проект нельзя реализовать за один раз. Например, одним план-графиком раньше велись разработки продуктов по заказам для госпредприятий. Но сейчас и госзаказчики перешли на поэтапную реализацию.
Для стартапов итерационная разработка позволяет адаптироваться к изменяющимся условиям на рынке и реализовывать задуманное быстрее, пусть и в минимальном количестве. Проект будет успешнее, если запуск произойдет с базовым функционалом или услугами, чем с полным набором возможностей, которые очень долго разрабатывали.
Поэтапная разработка дает клиенту возможность получить быстрый результат — работающий сервис в минимальном виде, который уже может генерировать продажи. И постепенно, по мере необходимости, можно наращивать функционал.
Для примера, мы в IT-компании Optimal Group реализовывали интернет-проект для food-tech компании с брендом Geelfood. По договоренности с клиентом, в прототипах интерфейса сервиса по доставке еды сразу был запланирован максимальный функционал: бонусная система начисления баллов, использование промокодов, приглашение друзей, автопродление меню и т.д. Но технически эти возможности реализовывались поэтапно. Иначе проект никогда бы не запустили.
В первую очередь был разработан каталог с продуктами и возможностью сделать заказ. За ним последовал мини-личный кабинет клиента, в котором он мог отслеживать продукты и дни доставки. Поэтапно добавляли остальной "необязательный" функционал.
Описание всех возможностей на начальном этапе проекта позволяет увидеть, как должен выглядеть конечный продукт. Такая цель мотивирует команду разработки.
В итерационной модели используют разные agile-подходы: SCRUM, канбан. А все планы по разработке переносят в облачный софт. Например, в Optimal group мы используем канбан.
Kanban ― это один из методов улучшения процессов разработки и часть agile-философии. В его основе лежит «Манифест гибкой разработки программного обеспечения». Работа над проектом по этому методу всегда начинается с визуализации. Так процессы всегда находятся на виду у команды. Для визуализации используют специальные доски и набор карточек или стикеров.
Преимущества и недостатки итерационной модели разработки сайта
Итеративная модель не идеальна. Она подходит под определенную категорию проектов.
Очевидный плюс метода — реализация сложного продукта, который на момент запуска с основными функциями будет максимально соответствовать рыночным реалиям.
Например, продукт А запустили в работу по методу итерационной модели. На рынок вывели ПО с минимальным функционалом. А потом постепенно дорабатывали новые функции с учетом рыночной ситуации, обратной связи пользователей, изменившихся приоритетов заказчика.
Продукт Б решили разрабатывать сразу с максимальным функционалом. На него было потрачено больше времени. А на этапе запуска стало очевидно, что ПО не соответствует изменившимся реалиям рынка.
Второе преимущество — быстрая реализация продукта: от идеи до рабочей демо-версии.
Главный недостаток подхода — увеличенная стоимость работ. Реализация по классической модели стоит дешевле, чем работа итерациями. Разница в затратах связана с трансакционными издержками. Для web-разработки такими издержками в рамках каждой итерации могут быть: созвоны с командой, работа тестировщика, публикация изменений, управление проектом и пр.
Цена на проект по итеративной модели в Москве у агентств разработки будет стоить дороже.
Заключение
Цель итеративной модели — создание базового продукта и в дальнейшем шаги по его совершенствованию. Этот подход поднимает итоговую стоимость проекта для бизнеса. Но он хорошо подходит для крупных продуктов, стартапов, которые спешат выйти на рынок и начать привлекать клиентов.
Итеративная модель проста и легка в освоении и использовании. Она имеет свои плюсы и минусы.
Мы в Optimal group работаем в итеративной модели над всеми проектами.