Программу, которая имеет документированную спецификацию перед
началом работ по написанию, тестированию, сопровождению и т.д.,
состоящую не из одной строчки, можно сдавать заказчику по частям.
Ну вот, например, ты нашел какой-нибудь заказ на написание всего ПО
для атомной электростанции. Строиться она будет 10 лет. А кушать
программисту хочется уже сегодня. Берешь бумажку и карандашик и
описываешь в деталях построчно спецификацию узлов и работ. И первое
- продаешь эту бумажку, ибо на неё ты уже потратил своё драгоценное время и мечты о черной икорке. Грубо - заказчик говорит: "хочу чтобы всё было как в лучших домах ландона и парыжу", а ты за него составляешь нормальное ТЗ, спецификацию и смету, контракт на последующую поддержку-обслуживание, и несешь на согласование и подпись.