Модель прототипирования возникла в 1970-х годах как альтернатива каскадной модели, когда стало очевидно, что многие клиенты не могут точно определить все требования к программному обеспечению на ранних этапах разработки. Барри Боэм (Barry Boehm), один из лидеров в области инженерии программного обеспечения, активно развивал подход к прототипированию, а также предложил использовать его для более точного выявления требований, уменьшения рисков и снижения недопонимания между разработчиками и заказчиками.
Схема прототипирования на русском языке:

Схема прототипирования на английском языке:

Этапы:
- Сбор и анализ требований — на этом этапе собираются первоначальные требования, но в упрощенной форме, чтобы заложить основы для прототипа.
- Проектирование прототипа — разрабатывается начальный макет, который включает основные функции и структуру, но не имеет полной функциональности.
- Создание прототипа — создается работающая модель, которая имитирует основные функции продукта, но может быть упрощенной.
- Оценка прототипа пользователями — пользователи тестируют прототип, дают обратную связь, после чего выявленные проблемы и предложения учитываются.
- Усовершенствование прототипа — прототип дорабатывается с учетом полученной обратной связи, а процесс повторяется, пока прототип не будет отвечать всем требованиям.
Плюсы:
- Улучшение понимания требований — позволяет клиентам и разработчикам видеть реальное представление продукта на раннем этапе, что помогает более точно сформулировать требования.
- Снижение риска ошибок — ошибки, которые могли бы возникнуть на финальных этапах разработки, можно выявить и устранить на этапе прототипа.
- Ранняя обратная связь — пользователи могут тестировать функционал с самого начала и вносить предложения, что приводит к более качественному конечному продукту.
- Сокращение времени на разработку — с учетом ранней обратной связи и исправлений процесс разработки может идти более гладко и быстрее.
- Более высокий уровень удовлетворенности пользователей — прототипирование позволяет создать продукт, максимально отвечающий потребностям и ожиданиям клиентов.
Минусы:
- Высокие затраты на разработку — каждый новый прототип требует времени и ресурсов, что увеличивает общие затраты.
- Проблемы с требованиями — клиенты могут менять требования по ходу работы, видя прототип, что может затруднить завершение проекта в срок.
- Риск чрезмерного увлечения — разработчики могут уделить слишком много времени прототипу, стремясь сделать его полноценным продуктом, что увеличивает сроки проекта.
- Отсутствие фокусировки на документации — процесс прототипирования часто приводит к тому, что документация оказывается неполной или отстает от реального хода разработки.
- Может не подойти для больших проектов — для крупных и сложных проектов процесс прототипирования может оказаться слишком трудоемким и дорогостоящим.