Работаю на фрилансе и как заказчик и как исполнитель.
Как "заказчик" скажу - мне не нужен "отрыжка" кода. Нужно грамотное решение. Для этого я пишу подробные ТЗ, иначе винить можно только себя. Мне забивали гвозди шляпкой вниз и теоретически работа была выполнена.
Как "исполнитель", - выясняйте все детали до начала работы. Меркантильно, это заказчикам нравится.
Все остальное сказано выше. Предоплата. ТЗ, Оценка своих сил.