Тут уж как составишь договор. НО! То, что заказчик не пользовался ПО с момента передачи в течение года, и не обнаружил ошибку - это траблы заказчика. А что, если за этот год ты (программист-исполнитель) улетел на ПМЖ на Гоа, обратился в индуизм, принял имя Олегшавамалинашан и отринул все блага цивилизации, поселившись в пещере? То есть я что хочу сказать: продав программный продукт собственного производства, стоит оговорить сроки сопровождения, входящего в стоимость ПО. Срок начинается с момента продажи, которую можно фиксировать по дате подписания актов приема-передачи, акта ввода продукта в эксплуатацию или по дате оплаты (как пропишешь в договоре). Что касается дальнейшего сопровождения и помощи клиентам, то тут по совести: если исправления мелочевые, и если у тебя есть время на благотворительность, то можешь править бесплатно по устной договоренности. Если же правки требуют существенного количества человеко-часов, то естественно, что эти человеко-часы должны быть кем-то оплачены. В зависимости от объема программного продукта я бы предложил такой график:
1. разработка ТЗ
2. утверждение ТЗ
3. разработка ПО
4. ввод ПО в промышленную эксплуатацию
5. 1-3 месяца тестирование (для выявления багов). Заканчивается актом ввода или актом приема-передачи.
6. еще 1-3 месяца бесплатного сопровождения (для выявления ранее сокрытых багов)
Факт оплаты вставьте в любом месте графика, как договоритесь с заказчиком.
По окончании п. 6 ты уже никому ничего не должен, дальнейшие просьбы за отдельную плату (см. выше). И если после п. 6 прошел 1 год, а программу так и не пустили в полный рост, то это не твои проблемы. Думаю, так.