Итак, какие инкременты, или какие этапы функциональности в плане ее реализации можно выделить в данном случае? В случае требования реализовать такой базовый интернет-магазин. Наверное, самое первое, что приходит в голову — это примитивная форма заказа и только курьерская доставка с оплатой наличными. Это самое первое, самое базовое, так сказать, ядро функциональности. Войти в систему, зарегистрироваться, просмотреть каталог, выполнить заказ, получить подтверждение того, что заказ принят, и дальше курьер связывается с заказчиком, доставляет товар — это самая базовая, самая необходимая функциональность системы. Что можно к этому добавлять? И почему, собственно, задача ставится таким образом? Изначально можно считать, что заказчик, ну так бывает довольно часто, не хочет и, может быть, не имеет средств на реализацию полнофункционального программного продукта. С другой стороны, при реализации вот такого ограниченного программного продуктам у нас как у заказчика уже появляется нечто работоспособное, появляются первые клиенты, появляются первые продажи, появляется первый возврат инвестиций и, соответственно, появляется желание и возможность проект продолжить. При этом ввод новой функциональности происходит поэтапно, плавно и не вызывает больших сопротивлений на стороне заказчика. Естественно, нам такую небольшую функциональность, которая в этом ядре заключена, освоить, как заказчикам, гораздо проще, чем достаточно большую сложную систему внедрять и эксплуатировать. Каким образом можно производить расширение этой системы? Ну следующее, что приходит в голову, — это оплата кредитными картами, специальный платежный шлюз, криптографическая защита, шифрование информации, определенный уровень безопасности и т. д., возможно, использование сторонних средств некого криптопровайдера и т. д. То есть расширение вот этой базовой функциональности, дополнение ее и построение матрешки № 2 вокруг нее, которая включает оплату кредитными картами со специальная платежным шлюзом. Каким образом можно производить расширение системы в дальнейшем? Ну наверное, имеет смысл отслеживать постоянных клиентов, устраивать рекламные кампании, распродажи, какие-то специализированные скидки, акции и тому подобные вещи. Это будет матрешкой № 3, которая обнимает и матрешку № 2, и матрешку № 1, т. е. ту базовую функциональность, о которой мы только что сказали. Что важно отметить? Важно отметить, что каждый из этих продуктов, каждая из этих матрешек является, на самом деле, законченным продуктом. Т. е. это не прототип, о котором мы говорили в предыдущем модуле, а это, на самом деле, полнофункциональный программный продукт, который дает возможность полноценно поддерживать продажи, пусть и с ограниченными возможностями по функционалу.