спланируйте работы таким образом, чтобы каждый этап вашего проекта мог бы быть финальным
Согласен с
vilinyh. В этом случае у заказчика должен быть человек, который способен управлять разработкой, и быть погружен в тему. К сожалению, на моем опыте это редкость.
В данный момент приходится помогать клиентам выстроить работу с подрядчиками, потому как ни ТЗ написать не могут, ни принять работу. Иногда удается снизить бюджет на задачи до 50-60 % от первоначального бюджета - если тз написано правильно, программист тратит меньше времени на расшифровку идеи заказчика, а значит времени на реализацию уйдет меньше.
По опыту, могу рекомендовать не скупиться на:
- проработку задач
- создание грамотного технического задания
- фиксации условий принятия работы
К сожалению, описанная Вами ситуация имеет место быть, в том числе у компаний, которые имеют имя и репутацию на рынке. Ваша позиция - защищаться, это стратегия которая проверена лично. Ищите лучше, есть компании, которые работают так, как Вам нужно, в том числе и по оплате после тестирования и приемки работ.