Почему программисты часто не заканчивают работу над проектом?
Причина очевидна - человек не полностью заинтересован и мотивирован для работы с вами. Возможно причина в том, что вы мало платите, есть другие более оплачиваемые заказы.
Выход прост - составлять ТЗ, подписывать договор (включать в него ТЗ) и не делать больше 30% предоплаты вплоть до конца завершения работы. Проверили - оплатили.
Психологически это гм... увы логично.
Программист имеется ввиду же фрилансер? Фрилансеру очень трудно отказываться от заказов - могут больше не обратиться. Поэтому программист должен максимально быстро расправиться с вашим заказом, чтобы приняться за следующий - качество страдает, неочевидные проблемы могут отнять 80% времени - и эффективней становится проект забросить - сам проект же программисту не нужен - ему нужны денежки за него.